Open Banking API - Berlin Group
PSD2-compliant Open Banking API based on Berlin Group NextGenPSD2 standard for EU-wide operations.
Overview
Open Banking is a system that allows banks and financial institutions to provide secure access to customer financial data through standardized APIs. Third-party providers (TPPs) can access this data with customer consent to build innovative financial services.
PSD2 (Payment Services Directive 2) is a European regulation that:
- Requires banks to open their APIs to licensed third-party providers
- Mandates Strong Customer Authentication (SCA) for payments
- Regulates Payment Initiation Services (PIS) and Account Information Services (AIS)
- Enhances consumer protection and data security
Berlin Group NextGenPSD2 is a pan-European standard that defines a common API framework for PSD2 compliance across EU member states.
API Version
Berlin Group v1.3.12 (Released: 2022-07-01) - Latest Berlin Group NextGenPSD2 specification for European market.
Base URL: https://open-banking-api.paysera.com/xs2a/berlin/1.3/v1
Specification: Berlin Group NextGenPSD2 XS2A Framework v1.3
For Georgian market integration, visit Open Banking for Georgia documentation.
TPP Requirements
To access the production API, you must have:
QWAC Certificate Requirements:
- Valid QWAC certificate for XS2A from a trusted Open Banking certificate authority
- Certificate must not be suspended or revoked
- Certificate must be validated via OCSP
- All certificate testing mechanisms must comply with international standards
If any QWAC requirements are not met, the connection is closed and returns HTTP 403 (Access forbidden).
General Settings
| SCA Approach | Supported |
|---|---|
| Redirect OAuth 2.0 workflow | ✅ |
| Decoupled workflow | ❌ |
| Embedded workflow | ❌ |
Account Information Service
| Services | Supported | |
|---|---|---|
| Support of multiple consents | ❌ | |
| Support of Signing Baskets | ❌ | |
| Support of Card Accounts Endpoints | ⚠️* | |
| Support display of Account ownerName and ownerNames | ✅ | |
| Support display of Account psuName | ❌ | |
| Owner name always delivered without taking into account the consent scope | ❌ | |
| Support of Trusted Beneficiaries endpoint | ❌ | |
| Support of Multilevel SCA Approach | ✅ | |
| Maximum Frequency Per Day Value Supported on Consent Request | 4 | |
| SCA Validity for a current consent | 180 days | |
| SCA Validity for a one-off consent | 1 hour | |
| Consent establishment Timeout | 1 day | |
| Support of parameter withBalance on APIs | ❌ | |
| Support of parameter combinedServiceIndicator on APIs | ❌ | |
| Supported Account Reference Identifiers | IBAN | ✅ |
| MaskedPan | ❌ | |
| BBAN | ❌ | |
| Consent scope | Dedicated consent (List of accounts) | ✅ |
| Dedicated consent - Support of ownerName in additionalInformation property | ✅ | |
| Dedicated consent - Support of trustedBeneficiaries in additionalInformation property | ❌ | |
| Bank-offered consent | ✅ | |
| Global consent - availableAccounts = allAccounts | ✅ | |
| Global consent - availableAccountsWithBalance = allAccounts | ❌ | |
| Global consent - allPsd2 = allAccounts | ✅ | |
| Global consent - availableAccounts = allAccountsWithOwnerName | ❌ | |
| Global consent - availableAccountsWithBalance = allAccountsWithOwnerName | ❌ | |
| Global consent - allPsd2 = allAccountsWithOwnerName | ❌ | |
| Supported Access for MultiCurrency Accounts | ✅ | |
| Multicurrency level | Aggregation level | ✅ |
| Sub-account level | ✅ | |
| Aggregation & sub-account level | ❌ | |
| Balance Type | closingBooked | ❌ |
| expected | ❌ | |
| openingBooked | ❌ | |
| interimAvailable | ✅ | |
| interimBooked | ✅ | |
| forwardAvailable | ❌ | |
| Supported Transactions Query Parameters | bookingStatus = booked | ✅ |
| bookingStatus = pending | ✅ | |
| bookingStatus = both | ✅ | |
| bookingStatus = all to request all types of transactions (pending, booked and information) at once | ❌ | |
| dateFrom | ✅ | |
| dateTo | ✅ | |
| entryReferenceFrom | ❌ | |
| deltaList | ❌ | |
| Support of Standing orders endpoint (bookingStatus=information) | ❌ | |
| Supported optional transaction information (Standing Orders) | debtorName | ❌ |
| instructionIdentification | ❌ | |
| remittanceInformationUnstructuredArray | ❌ | |
| remittanceInformationStructuredArray | ❌ | |
| creditorAgent | ❌ | |
| debtorAgent | ❌ | |
| balanceAfterTransaction | ❌ | |
* Partially supported
Payment Initiation Service
| Services | Supported |
|---|---|
| Support of Signing Baskets | ❌ |
| Payment initiation timeout | 15 minutes |
| Support of PIS without IBAN - Retrieval of debtor accounts with AIS flow | ✅ |
| Selection of debtor account on CBS pages when payment submission without IBAN | ❌ |
| Funds Availability on Payment Status Information (implicit FCS over PIS) | ❌ |
| Support of TPP-Rejection-NoFunds-Preferred Header | ❌ |
| Support payment status notification (instant payment only) | ❌ |
| Mandatory Authorisation on Payment Cancellation | ❌ |
| Supported Access for MultiCurrency Accounts | ✅ |
| Support display of ownerNames in payment status request | ❌ |
| Support display of psuName in payment status request and SCA status request | ❌ |