Skip to main content

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

StatusDescriptionTerminal state
createdThe session has been created and is waiting for the user to startNo
pendingThe user has opened the verification linkNo
processingVerification is in progress at the providerNo
completedThe session has completed successfully and result is availableYes
failedThe session ended unsuccessfullyYes
expiredThe session timed out or was cancelledYes
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:

PurposeTTLDescription
identity_verification30 minutesStandard identity verification
account_data60 minutesRetrieve 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

FromToTrigger
createdpendingThe customer opened verification_url
createdexpiredThe TTL elapsed without the link being opened
pendingprocessingThe customer initiated verification with the provider
pendingexpiredThe TTL elapsed or DELETE /verifications/{id} was called
processingcompletedThe provider returned a positive result
processingfailedVerification 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 to completed
  • verification.failed → transition to failed
  • verification.expired → transition to expired

For details, see Webhooks - Events.