🇫🇷 Français | 🇬🇧 English
The data returned by L’Identité Numérique La Poste is defined through OpenID Connect scopes.
👉 A scope corresponds to a set of data (claims) requested by the partner during authentication.
During the `/authorize` call, the partner specifies the requested data:
scope=openid+profile+email+phone
👉 LINLP returns data only if the following 3 conditions are met:
| Term | Description |
|---|---|
| Scope | Group of data |
| Claim | Individual data item |
| id_token | Contains claims |
| /userinfo | Returns claims |
⚠️ The `preferred_username` field (preferred / usage name) is not verified by LINLP.
👉 As a result:
| Claim | Description | Format | Example |
|---|---|---|---|
| sub | Unique user identifier | UUID | 075ccece-6699-4c08-80ca-27a6af136b68 |
| Claim | Description | Format | Example |
|---|---|---|---|
| given_name | Given names | String | Jean Pierre |
| family_name | Birth name | String | DUPONT |
| preferred_username | Preferred name (unverified) | String | MARTIN |
| gender | Gender (Male / Female) | String | Male |
| Claim | Description | Format | Example |
|---|---|---|---|
| birthdate | Date of birth | YYYY-MM-DD | 1990-05-10 |
| birthplace | INSEE city code | String (5) | 75109 |
| birthplace_label | Label of the city | String | Paris 9e Arrondissement |
| birthdepartment | Department | String | 75 |
| birthcountry | Country of birth | String (5) | 99100 |
| birthcountry_iso | Birth country (ISO format) | String (2) | FR |
| Claim | Description | Format | Example |
|---|---|---|---|
| Email address | jean.dupont@mail.com | ||
| email_verified | Verified email | boolean | true |
| Claim | Description | Format | Example |
|---|---|---|---|
| phone_number | Phone number | +33XXXXXXXXX | +33601020304 |
| phone_number_verified | Verified phone number | boolean | true |
| Claim | Description | Format | Example |
|---|---|---|---|
| nationality | Nationality | JSON {code, label} | {“code”:“FRA”,“label”:“French”} |
| Claim | Description | Format | Example |
|---|---|---|---|
| digital_identity_creation_date | Identity creation date | datetime | 2025-01-17T08:23:27.000Z |
| digital_identity_expiration_date | Expiration date | datetime | 2030-01-17T08:23:27.000Z |
| Claim | Description | Format | Example |
|---|---|---|---|
| identity_document_mrz | Identity document MRZ line | String | IDFRAXXXXXXX005«««««««<999999XXXXXXXXFRA«««««<9XXXXXX«XXXXX««««««««< |
| identity_document_type | Document type | String | ID_CARD |
| identity_document_number | Document number | String | 123BRA456 |
| identity_document_expiration_date | Document expiration date | Date | 2030-01-18 |
| identity_document_emitting_country | Issuing country | String | FRA |
| identity_document_emitting_date | Issue date | Date | 2020-01-18 |
Some data may be returned in addition to scopes:
| Claim | Description | Format | Example |
|---|---|---|---|
| ccu_id | Internal La Poste identifier | String (13) | 5572916534921 |
| splitted_given_name | Split given names | JSON | {“first_name”:“Jean”,“middle_name”:“Pierre”} |
| majority | Adult status | boolean | true |
Some data is returned as JSON objects:
"nationality": {
"code": "FRA",
"label": "French"
}
"phone": {
"country_prefix": "+33",
"phone_number": "601020304"
}
"splitted_given_name": {
"first_name": "Jean",
"middle_name": "Pierre Louis"
}
{
"sub": "5577832670193",
"given_name": "Jean Pierre",
"family_name": "Dupont",
"preferred_username": "Martin",
"birthdate": "1990-05-10",
"email": "jean.dupont@mail.com",
"phone_number": "+33601020304"
}
⚠️ Request only necessary data Apply the data minimization principle.
⚠️ Do not use preferred name as trusted identity data Use `family_name` as reference.
⚠️ Scopes must be approved in advance Unauthorized scopes cannot be requested.
⚠️ Formats are standardized Respect expected formats (date, INSEE codes, etc.).
💡 All data:
👉 Understand tokens: