Open banking standards testing requirements
Open banking standards define the APIs through which banks give licensed third parties access to payment accounts: the UK Open Banking Standard and Berlin Group NextGenPSD2, built on PSD2 and its RTS. Open banking testing verifies consent states, certificates, access limits, idempotency, and interface availability. FintechAssuranceLabs delivers API conformance test results and a consent flow test suite.
- Jurisdiction
- EU and EEA (PSD2 and Delegated Regulation (EU) 2018/389, Berlin Group NextGenPSD2); UK (Open Banking Standard, CMA Retail Banking Market Investigation Order 2017)
- Primary source
- standards.openbanking.org.uk
Engineering interpretation of testing requirements, not compliance advice.
What open banking standards require
The EU legal layer. Directive (EU) 2015/2366 (PSD2) Article 66(3) forbids a payment initiation provider (payment initiation and account information providers are third-party providers, TPPs) to store sensitive payment data or to modify the amount, the payee, or any other feature of the transaction. Article 67(2) limits an account information provider to designated payment accounts and forbids a request for sensitive payment data. Chapter V of Delegated Regulation (EU) 2018/389 (checked on 2026-09-16) sets the interface rules:
- Article 30. The bank documents the interface, gives at least 3 months' notice of a specification change (Article 30(4)), and provides a testing facility for TPPs (Article 30(5)).
- Article 32. A dedicated interface offers the same availability and performance as the customer interface, and the bank publishes quarterly statistics for both.
- Article 33. Unplanned unavailability may be presumed when five consecutive requests get no reply within 30 seconds. Exemption from the fallback mechanism requires, among other conditions, at least 3 months of wide use (Article 33(6)), with criteria in EBA/GL/2018/07 (checked on 2026-09-16).
- Article 34. TPPs identify themselves with qualified eIDAS certificates for website authentication or electronic seals, which carry the PSD2 role and the name of the competent authority.
- Article 36. The bank gives an account information provider the same data the customer sees, and answers funds confirmation in a yes or no format. Errors return a notification message with the reason (Article 36(2)). Without the customer present, an account information provider accesses data no more than four times in 24 hours unless the bank and the provider agree a higher frequency (Article 36(5)(b)).
The UK Open Banking Standard. Open Banking Limited maintains the Open Banking Standard (checked on 2026-09-16): Read/Write API specification version 4.0.1, the security profile, and the Customer Experience and Operational Guidelines. Version 4 of the standard adopted the final FAPI 1 Advanced security profile of the OpenID Foundation. In the Read/Write Data API profile, a bank must treat a POST with the same x-idempotency-key from the same TPP within 24 hours as idempotent, and the key is at most 40 characters. Token expiry should not change the state of a long-lived consent. Pagination has no transaction isolation, so the same transaction can appear on more than one page.
Berlin Group NextGenPSD2. The Berlin Group publishes the NextGenPSD2 Access to Account Framework (checked on 2026-09-16). The Implementation Guidelines are the normative text. The OpenAPI file on the Berlin Group GitLab is version 1.3.16, dated 27 November 2025. It defines redirect, OAuth, decoupled, and embedded SCA approaches and the consent status values received, valid, revokedByPsu, expired, and terminatedByTpp, among others. frequencyPerDay is at most 4 unless agreed bilaterally, and HTTP 429 on account information calls carries the code ACCESS_EXCEEDED.
In the US, the CFPB announced on 8 January 2025 its recognition of Financial Data Exchange (FDX) as a standard-setting body; the rule's status is on the CFPB Section 1033 page. Authentication rules for account access are on the PSD2 SCA page.
What open banking API testing verifies
| Requirement | What we test | Evidence produced |
|---|---|---|
| RTS Article 34: TPP identification with a qualified eIDAS certificate that carries the PSD2 role | Account information calls with a valid certificate, an expired certificate, and a certificate without the account information role | Request and response log per certificate case |
| RTS Article 36(5)(b): at most four account information accesses in 24 hours without the customer present | A fifth background account information request within 24 hours, and a request with the customer present after the limit | Access counter log with the HTTP status of each request |
| PSD2 Article 67(2)(d): account information access only to designated payment accounts | Balance and transaction requests for an account ID outside the consented account list | Access decision table per account ID and permission |
| PSD2 Article 66(3)(h): the payment initiation provider does not modify the amount or the payee | Amount, currency, and creditor account in the payment consent compared with the submitted payment order | Field comparison log from payment consent to payment order |
| RTS Article 36(1)(c): funds confirmation answers yes or no | Funds confirmation requests below, equal to, and above the available balance | Funds confirmation response log per requested amount |
| RTS Article 33(1) and 33(3): five consecutive requests without a reply within 30 seconds presume unavailability, and the problem is reported | A stub bank interface that delays five consecutive responses beyond 30 seconds, and the TPP detection and incident trigger | Timeout log with request timestamps and the incident trigger record |
| RTS Article 32(1): dedicated interface availability and performance equal to the customer interface | Response time and error rate of the dedicated interface and the customer interface under the same load | Latency and availability comparison report per endpoint |
UK Read/Write Data API profile v4.0.1: x-idempotency-key is honoured for 24 hours and is at most 40 characters | A payment resubmitted with the same key, a 41-character key, and a changed body under the same key | Resource ID comparison log per resubmission |
| UK Read/Write Data API profile v4.0.1: token expiry should not change the consent status | Consent status read before and after access token and refresh token expiry, and after a DELETE | Consent status transition log with timestamps |
Berlin Group NextGenPSD2: frequencyPerDay at most 4 and consent status after DELETE | Consent creation with frequencyPerDay 5, then a GET on the consent after a DELETE by the TPP | Consent object snapshot per step |
The consent and token refresh guide lists requests and timings for the consent rows.
Artifacts regulators and bank partners request
- The interface technical documentation and the public summary on the bank's website (RTS Article 30(3)).
- Change notices sent to TPPs at least 3 months before a specification change, and the record of emergency changes (Article 30(4)).
- The testing facility description for TPP connection and functional testing (Article 30(5)).
- Key performance indicators and service level targets for the dedicated interface, with the quarterly availability and performance statistics (Articles 32(2) and 32(4)).
- The contingency strategy and communication plan (Articles 33(1) and 33(2)).
- For a fallback exemption: stress test results for the dedicated interface (Article 32(2)), evidence of wide use for at least 3 months, and the problem resolution record (Article 33(6) and EBA/GL/2018/07).
- In the UK, the self-attestation answers of the Operational Guidelines Checklist from Open Banking Limited.
- For a TPP that used the fallback interface: logs of the data accessed, provided to the competent authority on request (Article 33(5)(c)).
- API conformance test results against the implemented specification version, such as UK Read/Write API v4.0.1 or NextGenPSD2 1.3.16.
Common findings in open banking API testing
- Background refresh above the access limit. An aggregator refreshes every connected account every 4 hours without the customer present, which makes six unattended requests a day. The defect breaks RTS Article 36(5)(b), and on a NextGenPSD2 bank the fifth call can return
ACCESS_EXCEEDED, which the connector reports as a broken connection. - Consent expired on token expiry. The bank sets a consent to
EXPDwhen the refresh token expires, so customers re-authenticate before the consent end date. The defect departs from the Read/Write Data API profile v4.0.1 guidance that token expiry should not change the consent status. - Duplicate payment on retry. A TPP retries a payment after a gateway timeout with the same
x-idempotency-key, and the bank creates a second payment because it keeps keys for one hour. The defect breaks the 24-hour idempotency window of the Read/Write Data API profile v4.0.1. - Duplicate transactions from pagination. A TPP joins transaction pages without de-duplication and counts one card payment twice in a cash flow model. The defect ignores the Read/Write Data API profile v4.0.1 pagination rule that one transaction can appear on more than one page.
- Consent kept after revocation. A customer revokes access in the TPP app, and the TPP never sends DELETE for the account access consent. The defect breaks the Account Access Consents rule that the TPP deletes the resource as soon as practically possible.
- Certificate role not checked. The bank accepts a certificate without the payment initiation role on payment endpoints, which breaks RTS Articles 30(1)(a) and 34(3)(a).
- Error without a reason. The bank returns HTTP 500 with an empty body for a consent with an unsupported permission, which breaks the notification message rule in RTS Article 36(2).
How we cover open banking standards
Open banking API testing produces the consent and reauthorisation flow test suite, the bank connector coverage report, data normalisation accuracy checks, and API conformance test results against the UK Read/Write API or the NextGenPSD2 version a bank implements. A stub bank interface covers timeout and error cases that a bank sandbox may not reproduce. Test data is synthetic; any real payment account data stays under our security controls.
We test open banking flows for open banking and data aggregation providers and for neobank, lending, accounting, and business banking products that read account information or initiate payments. Performance testing measures the Article 32 latency and availability comparison under load. Changes that the EU payments package brings to access interfaces are tracked on the PSD3 and PSR page.
Related
Services
Segments
Questions
What is open banking?
How does open banking work?
Who regulates open banking?
Scope your testing
Send FintechAssuranceLabs your product, segment, money flows, and the standards that need evidence, and get a proposed test scope with its deliverables.
Scope your testing