Transakcje AIS
Dla sesji z purpose=account_data (AIS/PSD2) po zakończeniu weryfikacji możesz pobrać historię transakcji z połączonych banków klienta.
Endpoint
GET /api/v1/verifications/{id}/transactions
Wymagania
- Sesja musi mieć
purpose: account_data - Sesja musi być w stanie
completed - Provider to
ais_psd2
Parametry query
| Parametr | Typ | Opis |
|---|---|---|
bank_key | string | Filtruj po kluczu banku (np. pko_bp, mbank) |
account_id | uuid | Filtruj po ID konkretnego rachunku |
per_page | integer | Wyników na stronę (1-200, domyślnie 50) |
Przykład
curl "https://hub.dpay.pl/api/v1/verifications/a1b2c3d4-e5f6-7890-abcd-ef1234567890/transactions?per_page=50" \
-H "Authorization: Bearer deid_live_xxx"
Odpowiedź (200 OK)
{
"data": [
{
"id": "tx-uuid-1",
"amount": "150.00",
"currency": "PLN",
"category": "DEBIT",
"description": "Przelew do Jan Kowalski",
"booking_date": "2026-04-05",
"trade_date": "2026-04-05",
"counterparty": "Jan Kowalski",
"account_id": "acc-uuid-1"
},
{
"id": "tx-uuid-2",
"amount": "5000.00",
"currency": "PLN",
"category": "CREDIT",
"description": "Wynagrodzenie",
"booking_date": "2026-04-01",
"trade_date": "2026-04-01",
"counterparty": "Firma XYZ Sp. z o.o.",
"account_id": "acc-uuid-1"
}
],
"meta": {
"current_page": 1,
"total": 45,
"per_page": 50,
"last_page": 1
}
}
Schemat transakcji
| Pole | Typ | Opis |
|---|---|---|
id | uuid | Unikalny ID transakcji w HUB |
amount | string | Kwota transakcji (jako string dla dokładności decimal) |
currency | string | Kod waluty (ISO 4217, np. PLN, EUR) |
category | string | CREDIT (wpływ) lub DEBIT (wydatek) |
description | string|null | Opis transakcji z systemu banku |
booking_date | date|null | Data księgowania (YYYY-MM-DD) |
trade_date | date|null | Data operacji (YYYY-MM-DD) |
counterparty | string|null | Kontrahent (nadawca lub odbiorca) |
account_id | uuid | ID konta bankowego, z którego pochodzi transakcja |
Błędy
| Kod | Błąd | Opis |
|---|---|---|
| 403 | TRANSACTIONS_NOT_AVAILABLE | Sesja nie jest typu account_data |
| 404 | SESSION_NOT_COMPLETED | Sesja niezakończona lub nie istnieje |
Przykład błędu 403
{
"error": {
"code": "TRANSACTIONS_NOT_AVAILABLE",
"message": "Transaction data is only available for account_data sessions."
}
}
Filtrowanie
Transakcje z jednego banku
curl "https://hub.dpay.pl/api/v1/verifications/{id}/transactions?bank_key=mbank" \
-H "Authorization: Bearer deid_live_xxx"
Transakcje z konkretnego rachunku
curl "https://hub.dpay.pl/api/v1/verifications/{id}/transactions?account_id=acc-uuid-1" \
-H "Authorization: Bearer deid_live_xxx"
Paginacja
Endpoint zwraca dane paginowane:
- Domyślnie: 50 transakcji na stronę
- Maksymalnie: 200 transakcji na stronę (
per_page=200)
Dla pobrania kolejnych stron użyj parametru page:
curl "https://hub.dpay.pl/api/v1/verifications/{id}/transactions?per_page=100&page=2" \
-H "Authorization: Bearer deid_live_xxx"
Bezpieczeństwo i RODO
Wrażliwe dane finansowe
Dane transakcyjne są szczególnie wrażliwe w rozumieniu RODO. Zobowiązania:
- Przechowuj je zaszyfrowane (AES-256 lub silniejsze)
- Ograniczaj dostęp do niezbędnego minimum (RBAC)
- Prowadź audit log dostępów
- Stosuj ścisłe zasady retencji - usuwaj gdy tylko przestaną być potrzebne
- Jasno informuj klienta w klauzuli informacyjnej jak długo przechowujesz dane finansowe
Patrz również: Dane PII - ogólne wytyczne RODO.