Verification modes
DPay Web EID offers four mode values for a verification session. The appropriate mode depends on your business scenario.
Mode comparison
/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
| Purpose | single | sequential | pool | dynamic |
|---|---|---|---|---|
identity_verification | Yes | Yes | Yes | No |
account_data | Yes | Yes | No | Yes |
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 numbertotal_steps- the total number of stepssteps- an array ofVerificationStepobjects 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
| Parameter | Type | Default | Description |
|---|---|---|---|
bank_selection | string | user_driven | fixed (specified in advance) or user_driven (the customer selects banks) |
max_banks | integer | 10 | Maximum number of banks (1-20) |
min_banks | integer | 1 | Minimum number of banks (1-20) |
The response includes these additional fields:
bank_selection_mode- the bank selection modemax_banks/min_banks- bank limitsbanks_connected- the number of banks already connectedcurrent_step/total_steps/steps- step state, where each bank is one step
Which mode should I use?
| Scenario | Recommended mode |
|---|---|
| Customer onboarding with identity verification | single (bank_transfer or mobywatel) |
| Enhanced KYC with two verification sources | sequential |
| Let the customer choose a method | pool |
| Retrieve transaction history from multiple banks | dynamic (ais_psd2) |