Verifying eID (v1)
Authenticates users using a national electronic identity document
Used when businesses need to authenticate users through government-issued eID schemes. Supports multiple eID providers (e.g. France Identité, Personalausweis, EIDEasy) through a unified step, with routing to the appropriate provider managed by IDnow.
Key features
- Multi-provider support: Routes to the appropriate eID provider backend based on the user's selected method and your organisation's routing configuration. Supported providers include France Identité, IDnow Personalausweis, and EIDEasy (covering 20 European methods).
- OIDC-based authentication: Authenticates users via OpenID Connect with the eID provider.
- Flexible method selection: Works with an upstream Method selector for verifying ID (v2) step, or can be pre-configured to a fixed method.
- Provider-agnostic flow: The flow definition carries no provider reference — routing is resolved at runtime by IDnow.
Configuration
| Option | Type | Required | Description |
|---|---|---|---|
preconfigure | object | No | Pre-selects a fixed eID method, bypassing the need for an upstream Method selector for verifying ID step. When present, the step uses this method directly instead of reading the user's selection from the flow context. |
preconfigure.method | string | Yes (if preconfigure set) | The eID method to use. See Supported methods for the full list of accepted values. |
preconfigure.assuranceLevel | string | No | Required assurance level for the authentication. Accepted values: low, substantial, high. |
preconfigure.trustFramework | string | No | Trust framework governing the assurance level. Accepted values: eidas. |
enableRetry | boolean | No | When true, adds a retry output route that can be used to handle user cancellations. Defaults to false. |
Without preconfigure, the step reads the user's eID method selection produced by an upstream VERIFICATION_METHOD_SELECTOR:v2 step. If neither preconfigure nor an upstream selector is present, the flow is misconfigured and will fail at runtime.
Example configuration
With an upstream Method selector for verifying ID (recommended for multi-method flows):
{}
With preconfigure (single-method flows, no selector needed):
{
"preconfigure": {
"method": "franceIdentite",
"assuranceLevel": "substantial",
"trustFramework": "eidas"
}
}
Supported methods
| Method value | Provider |
|---|---|
franceIdentite | France Identité |
personalausweis | IDnow |
belgiumIdCard | EIDEasy |
chaveMovelDigital | EIDEasy |
edoApp | EIDEasy |
eParakstsMobile | EIDEasy |
estonianIdCard | EIDEasy |
finnishHenkilokortti | EIDEasy |
finnishTrustNetwork | EIDEasy |
frejaEid | EIDEasy |
idAustria | EIDEasy |
idin | EIDEasy |
itsme | EIDEasy |
lIdentiteNumeriqueLaPoste | EIDEasy |
latvianIdCard | EIDEasy |
lithuanianIdCard | EIDEasy |
lithuanianMobileId | EIDEasy |
mitId | EIDEasy |
mojeIdPl | EIDEasy |
norwegianBankId | EIDEasy |
oneId | EIDEasy |
portugueseIdCard | EIDEasy |
serbianIdCard | EIDEasy |
smartId | EIDEasy |
swedishBankId | EIDEasy |
spid | EIDEasy |
Input data blocks
| Data block | Required | Description |
|---|---|---|
eIDMethodSelection | Conditional | Produced by an upstream VERIFICATION_METHOD_SELECTOR:v2 step when the user selects an eID method. Required when preconfigure is not set. |
Routes
| Route | Description |
|---|---|
verified | The user's identity has been successfully authenticated by the eID provider. The OIDC flow completed and the provider returned a valid ID token with verified identity attributes. |
not_verified | The authentication attempt failed. The identity could not be verified — for example, the user entered an incorrect PIN or the eID provider rejected the authentication request. |
retry | Available when enableRetry: true. User cancelled and can retry. |
Output data blocks
| Route | Data blocks produced |
|---|---|
verified | BasicIdentity, ExtendedIdentity, AuthenticationResult |
not_verified | AuthenticationResult |
retry | AuthenticationResult |
AuthenticationResult data block
The AuthenticationResult data block produced by EIDS:v1 contains different fields depending on the route.
verified route
| Field | Type | Description |
|---|---|---|
result | string | Always "success". |
provider | string | The eID provider used (e.g. "sphinx", "eideasy"). Can be null for some methods (e.g. France Identité). |
credentialType | string | Always "eID". |
subjectId | string | Provider-assigned subject identifier for the authenticated user. |
requestId | string | IDnow-assigned transaction reference. |
authenticatedAt | string | ISO 8601 timestamp of the authentication. |
trustFramework and assuranceLevel (e.g. "eidas", "substantial") are not part of the AuthenticationResult data block. They are available in the execution metadata returned by the provider and can be accessed via the session results.
not_verified and retry routes
| Field | Type | Description |
|---|---|---|
result | string | Always "failure". |
provider | string | The eID provider used (e.g. "sphinx", "eideasy"). Can be null for some methods (e.g. France Identité). |
credentialId | string | Unique identifier of the credential attempted. |
credentialType | string | Always "eID". |
requestId | string | IDnow-assigned transaction reference. |
attemptedAt | string | ISO 8601 timestamp of the failed attempt. |
reason.code | string | A provider/method-specific machine-readable code (e.g. timeout, CANCELED, or an OIDC error code). Not a fixed value. |
reason.details | string[] | Human-readable descriptions of the failure. |
Example payloads
BasicIdentity — verified
{
"dataBlockId": "e1698760-9bd5-484c-a493-4fc6c9a5e35f",
"type": "BasicIdentity",
"givenName": "Jean",
"familyName": "Dupont",
"name": "Jean Dupont",
"birthDate": "1985-03-22",
"birthPlace": "Paris"
}
ExtendedIdentity — verified
{
"dataBlockId": "1945e31b-728b-48b4-9ca6-1729d2a38603",
"type": "ExtendedIdentity",
"portrait": null,
"nationality": "FRA",
"personalAdministrativeNumber": null,
"familyNameBirth": "Dupont",
"givenNameBirth": "Jean",
"sex": 1,
"emailAddress": null,
"mobilePhoneNumber": null,
"residentAddress": null,
"residentStreet": null,
"residentHouseNumber": null,
"residentHouseName": null,
"residentCountry": null,
"residentState": null,
"residentCity": null,
"residentPostalCode": null
}
AuthenticationResult — verified
{
"dataBlockId": "d2f55af7-121c-4a45-9071-35e9b63072f1",
"type": "AuthenticationResult",
"result": "success",
"provider": "eideasy",
"credentialId": "eid-cred-7f3a2b1c",
"credentialType": "eID",
"subjectId": "EE-38302290123",
"requestId": "txn-d4e5f6a7b8c9",
"authenticatedAt": "2026-02-10T14:00:01.000Z"
}
AuthenticationResult — not_verified
{
"dataBlockId": "45afb4a7-33e3-4abc-a3a0-9ce60e3e48e0",
"type": "AuthenticationResult",
"result": "failure",
"provider": "eideasy",
"credentialId": "eid-cred-7f3a2b1c",
"credentialType": "eID",
"subjectId": "EE-38302290123",
"requestId": "txn-d4e5f6a7b8c9",
"attemptedAt": "2026-02-10T14:00:01.000Z",
"reason": {
"code": "CANCELED",
"details": "User cancelled the authentication process."
}
}