AIS / PSD2
Provider: ais_psd2
Access a customer's bank account data through Open Banking (PSD2 AIS - Account Information Service). With the customer's explicit consent, you can retrieve balances, account lists and transaction history from their banks.
How it works
- The customer opens
verification_urland selects a bank from the supported list - The HUB redirects the customer to online banking through the PSD2 API
- The customer authorizes access in the banking app using SCA (Strong Customer Authentication)
- The bank returns account and transaction data to the HUB
- A
verification.completedwebhook is sent to your endpoint - You retrieve transactions with
GET /verifications/{id}/transactions
/api/v1/verificationsCreate an AIS/PSD2 session: dynamic-mode parameters, bank selection and error codes.Full contract in the API Reference
When should I use it?
- Credit scoring - analyze the customer's income and expenses
- Fintech onboarding - PFM, BNPL and digital lending
- Anti-fraud - verify sources of income
- Account aggregation - provide a unified view of the customer's finances
Session purpose - account_data
AIS/PSD2 requires purpose=account_data rather than identity_verification. This changes several aspects of the session:
- Session TTL: 60 minutes instead of 30
- Available modes:
single,sequentialanddynamiconly - Result: access to
GET /verifications/{id}/transactions
Dynamic mode - multiple banks
This is the most common mode for AIS. It allows multiple banks to be connected in a single 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,
"external_id": "scoring-12345"
}'
Dynamic-mode parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
bank_selection | string | user_driven | fixed (specified in advance through the API) 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 session completes after this many banks have been connected |
For purpose=account_data with bank_selection=user_driven (or when it is omitted), the mode is automatically set to dynamic.
Retrieving transactions
After the session reaches completed, retrieve the transactions:
curl "https://hub.dpay.pl/api/v1/verifications/{id}/transactions?per_page=50" \
-H "Authorization: Bearer deid_live_xxx"
/api/v1/verifications/{id}/transactionsBank transactions from an AIS session: pagination and sender data fields.Full contract in the API Reference
For complete documentation, see Results - AIS transactions.
Supported banks
DPay Web EID supports the following banks:
- PKO BP (
pl_pko_bp) - Intelligo (
pl_intelligo) - mBank (
pl_mbank) - Erste Bank Polska (
pl_erste) - ING Bank Śląski (
pl_ing) - Pekao SA (
pl_pekao) - Millennium (
pl_millennium) - Alior Bank (
pl_alior) - Citi Handlowy (
pl_citi) - BNP Paribas (
pl_bnp) - Velo Bank (
pl_velo) - Nest Bank (
pl_nest) - Bank Pocztowy (
pl_pocztowy) - Credit Agricole (
pl_credit_agricole) - UniCredit (
pl_unicredit) - BOŚ (
pl_bos) - BOŚ Korpo (
pl_bos_corpo) - Volkswagen Bank (
pl_vwfs) - Toyota Bank (
pl_toyota_bank) - SGB cooperative banks operating within the SGB24 system (
pl_sgb24)
The following international banks and fintech companies are also supported:
- Revolut (
int_revolut) - Wise (
int_wise) - N26 (
de_n26)
Retrieve the complete current list with GET /providers.
Cost and timing
- Customer cost: PLN 0 - no fees
- Verification time: 1-5 minutes, depending on the number of banks and SCA
- Session TTL: 60 minutes from creation
- Data validity: 90 days from authorization, in accordance with PSD2