Verification session lifecycle
Every verification session in DPay Web EID passes through a defined set of states. Understanding this lifecycle is essential to handling the integration correctly.
State diagram
GET
/api/v1/verifications/{id}Check the current session status: state fields, TTL and timestamps.Full contract in the API Reference
Session statuses
| Status | Description | Terminal state |
|---|---|---|
created | The session has been created and is waiting for the user to start | No |
pending | The user has opened the verification link | No |
processing | Verification is in progress at the provider | No |
completed | The session has completed successfully and result is available | Yes |
failed | The session ended unsuccessfully | Yes |
expired | The session timed out or was cancelled | Yes |
Terminal states
A session in completed, failed or expired is permanently closed. It can no longer be cancelled or changed. A DELETE /verifications/{id} attempt returns a 409 error with the SESSION_ALREADY_TERMINAL code.
Session TTL
A session expires automatically after a period determined by its purpose:
| Purpose | TTL | Description |
|---|---|---|
identity_verification | 30 minutes | Standard identity verification |
account_data | 60 minutes | Retrieve account data through AIS/PSD2 |
When the TTL is exceeded, the session status changes automatically to expired. A verification.expired webhook is sent to the configured endpoints.
State transitions
| From | To | Trigger |
|---|---|---|
created | pending | The customer opened verification_url |
created | expired | The TTL elapsed without the link being opened |
pending | processing | The customer initiated verification with the provider |
pending | expired | The TTL elapsed or DELETE /verifications/{id} was called |
processing | completed | The provider returned a positive result |
processing | failed | Verification failed, for example because of rejection or a provider error |
Webhooks for status changes
Every transition to a terminal state generates the corresponding webhook, if configured:
verification.completed→ transition tocompletedverification.failed→ transition tofailedverification.expired→ transition toexpired
For details, see Webhooks - Events.