User data (Scopes and Claims)

What data you receive is decided by scopes. The same claims are returned in the id_token and by /userinfo. The id_token reflects the moment of sign-in; /userinfo reflects the current state.

Scopes

Scope Description Claims
openid Required. Enables OpenID Connect and the id_token. sub
profile First name, last name and language. given_name, family_name, name, locale
email Email and whether it is confirmed. email, email_verified
phone Phone and whether it is confirmed. phone_number, phone_number_verified
The scopes available to your client are fixed when it is registered. Asking for more or fewer in the request still returns exactly the list configured for you. Contact us if you need another scope.

Claims

Claim Type Description
sub string (UUID) The customer's permanent, unique identifier. Use it as receiver.inexUserId when creating a parcel.
given_name string First name (Latin letters).
family_name string Last name (Latin letters).
name string Full name.
locale string|null Preferred language: ka, en or ru.
email string|null Email. One email = one INEX account.
email_verified boolean Whether the email is confirmed.
phone_number string|null Phone in international format, e.g. 995599123456.
phone_number_verified boolean Whether the phone is confirmed.
auth_time integer (id_token only) Unix time of the customer's last authentication.
nonce string (id_token only) The nonce sent in the authorize request.

/userinfo

GET {issuer}/userinfo

GET {issuer}/userinfo with the header Authorization: Bearer {access_token} returns the customer's current data as a JSON object (only the claims whose scope the token holds). Use it to refresh a stored name, email or phone.

Rules for identifying the customer

  • Link a local user by sub only.
  • Email and phone may change; a phone is not unique (one number can belong to several accounts). Do not use them as an identity key.
  • If you link an existing local account by email, first check email_verified = true.

Personal number

The personal number is not issued as a claim — it is personal data and you do not need it: INEX already has it. To create a parcel the sub (receiver.inexUserId) is enough; we attach the personal number and everything customs needs ourselves.
Next Next: logout