Skip to main content

Verification modes

DPay Web EID offers four mode values for a verification session. The appropriate mode depends on your business scenario.

Mode comparison​

POST/api/v1/verificationsComplete session creation contract for each mode: single, sequential, pool and dynamic.Full contract in the API Reference GET/api/v1/providersAvailable providers for the provider and providers fields.Full contract in the API Reference

Allowed purpose × mode combinations​

Purposesinglesequentialpooldynamic
identity_verificationYesYesYesNo
account_dataYesYesNoYes
activation_paymentYesNoNoNo
account_ownershipYesNoNoNo
Purposes without a provider field

For activation_payment and account_ownership you do not send provider - the hub picks the provider from the purpose. Details: Payment and account confirmation.

Automatic mode selection

For purpose=account_data with bank_selection=user_driven (or when it is omitted), the mode is automatically set to dynamic.

Single mode (default)​

One verification provider: the simplest scenario. It is ideal when you know in advance which method you want to use.

curl -X POST https://hub.dpay.pl/api/v1/verifications \
-H "Authorization: Bearer deid_live_xxx" \
-H "Content-Type: application/json" \
-d '{"provider": "bank_transfer"}'

Required field: provider

Sequential mode (multi-step)​

Multi-step verification in which the user completes each step in sequence. Use it when you need stronger verification by combining several methods.

curl -X POST https://hub.dpay.pl/api/v1/verifications \
-H "Authorization: Bearer deid_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"mode": "sequential",
"steps": [
{"provider": "bank_transfer"},
{"provider": "mobywatel"}
]
}'

Required field: steps (an array of 2-10 objects)

The response includes these additional fields:

  • current_step - the current step number
  • total_steps - the total number of steps
  • steps - an array of VerificationStep objects with individual statuses

Pool mode (user choice)​

The user selects one of the available verification methods on the HUB page. This mode provides the best UX when you want to give the customer a choice.

curl -X POST https://hub.dpay.pl/api/v1/verifications \
-H "Authorization: Bearer deid_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"mode": "pool",
"providers": ["bank_transfer", "mobywatel", "demo"]
}'

Required field: providers (an array of 2-10 strings)

The response includes an allowed_providers field with the providers from which the user can choose.

Dynamic mode (AIS/PSD2)​

This mode is designed for account data access. The user can dynamically add more banks during the session.

curl -X POST https://hub.dpay.pl/api/v1/verifications \
-H "Authorization: Bearer deid_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"purpose": "account_data",
"provider": "ais_psd2",
"bank_selection": "user_driven",
"max_banks": 5,
"min_banks": 1
}'

Required field: provider (must be ais_psd2)

Dynamic-mode parameters​

ParameterTypeDefaultDescription
bank_selectionstringuser_drivenfixed (specified in advance) or user_driven (the customer selects banks)
max_banksinteger10Maximum number of banks (1-20)
min_banksinteger1Minimum number of banks (1-20)

The response includes these additional fields:

  • bank_selection_mode - the bank selection mode
  • max_banks / min_banks - bank limits
  • banks_connected - the number of banks already connected
  • current_step / total_steps / steps - step state, where each bank is one step

Which mode should I use?​

ScenarioRecommended mode
Customer onboarding with identity verificationsingle (bank_transfer or mobywatel)
Enhanced KYC with two verification sourcessequential
Let the customer choose a methodpool
Retrieve transaction history from multiple banksdynamic (ais_psd2)