🇫🇷 Français | 🇬🇧 English
Scopes and Claims
Objective
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.
Principle
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:
- the data is requested or preconfigured by default
- the data is authorized in the LINLP configuration
- the data is consented to by the user
Key Concepts
| Term | Description |
|---|---|
| Scope | Group of data |
| Claim | Individual data item |
| id_token | Contains claims |
| /userinfo | Returns claims |
⚠️ Unverified Data: Preferred Name
⚠️ The `preferred_username` field (preferred / usage name) is not verified by LINLP.
- This data is freely entered by the user
- It is not checked during identity verification
- It is often missing or outdated on identity documents
👉 As a result:
- it must not be used as reference identity data
- it should be considered informational only
Available Scopes
Scope openid
| Claim | Description | Format | Example |
|---|---|---|---|
| sub | Unique user identifier | UUID | 075ccece-6699-4c08-80ca-27a6af136b68 |
Scope profile
| 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 |
Scope birth
| 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 |
Scope email
| Claim | Description | Format | Example |
|---|---|---|---|
| Email address | jean.dupont@mail.com | ||
| email_verified | Verified email | boolean | true |
Scope phone
| Claim | Description | Format | Example |
|---|---|---|---|
| phone_number | Phone number | +33XXXXXXXXX | +33601020304 |
| phone_number_verified | Verified phone number | boolean | true |
Scope nationality
| Claim | Description | Format | Example |
|---|---|---|---|
| nationality | Nationality | JSON {code, label} | {“code”:“FRA”,“label”:“French”} |
Scope digital_identity_metadata
| 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 |
Scope identity_document_metadata
| 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 |
Additional Data
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 |
Structured Data
Some data is returned as JSON objects:
Nationality
"nationality": {
"code": "FRA",
"label": "French"
}
Structured Phone
"phone": {
"country_prefix": "+33",
"phone_number": "601020304"
}
Detailed Given Names
"splitted_given_name": {
"first_name": "Jean",
"middle_name": "Pierre Louis"
}
Example Response (/userinfo)
{
"sub": "5577832670193",
"given_name": "Jean Pierre",
"family_name": "Dupont",
"preferred_username": "Martin",
"birthdate": "1990-05-10",
"email": "jean.dupont@mail.com",
"phone_number": "+33601020304"
}
Best Practices
⚠️ Request only necessary data Apply the data minimization principle.
⚠️ Do not use preferred name as trusted identity data Use `family_name` as reference.
Points of Attention
⚠️ Scopes must be approved in advance Unauthorized scopes cannot be requested.
⚠️ Formats are standardized Respect expected formats (date, INSEE codes, etc.).
Good to Know
💡 All data:
- is transmitted only after user consent
- may vary depending on partner configuration
Summary
- Data is controlled through scopes
- Claims are individual data items
- Data is returned in JWT and JSON formats
- Preferred name is declarative and unverified data
Next Step
👉 Understand tokens:
