https://developer.ing.com/openbanking/inspiration/news/breaking-change-announced-for-psd2-apisBreaking Change Announced for PSD2 APIs
23 Mar 2026
Mandatory Endpoint Migration for Third Party Providers; Enhanced Security with JWS Signing
Introduction
ING is introducing new endpoints for the Account Information Services (AIS) API, Payment Initiation API (PIS), Confirmation on Availability of Funds (CAF) API and the Real-Time Reporting API affecting all PSD2 licensed Third Party Providers (TPPs) and all users of the Real-Time Reporting API.
The current endpoints will be decommissioned per September 1st 2026 and requires all users to migrate from the existing endpoints to new ones that offer advanced security features.
Why are we implementing this breaking change?
The new endpoints support JSON Web Signature (JWS) headers, delivering a higher standard of message integrity and aligning with Open Banking Europe’s specifications.
We have introduced new fields in the Payment Initiation Service that are compliant with changes to the SEPA Rules and NextGen messaging standards.
What do you need to do before 1 September 2026?
We hereby request you to migrate your connection to the new endpoints as per the steps below.
To maintain connectivity, we ask you to review the updated API References of the PSD2 APIs and Real-Time Reporting API and our Get Started Guide on implementing JWS:
Steps to perform:
PUT /oauth2/applications/{id} - to update the registered application's metadata to ensure that your application is correctly registered in ING’s administration for operational purposesTake your time to familiarize yourself with the changes and reach out to us if you have any questions or concerns.
Current endpoints will be deprecated by 1 September 2026?
Until 1 September 2026, both the current and new endpoints are working in parallel. After this date the current endpoints supporting HTTPS signing will be decommissioned and the breaking change will be enforced. In order to maintain connectivity, please take action as described above.
Details of Endpoint Changes
To ensure a smooth transition, below is a table listing the current (old) endpoints and their new replacements:
| API | Old endpoints | New | Status |
|---|---|---|---|
| PIS API | Single Payment: | ||
POST /v1/payments/{payment-product} | POST /v2/payments/{payment-product} | Live | |
GET /v1/payments/{payment-product}/{paymentId} | GET /v2/payments/{payment-product}/{paymentId} | Live | |
DELETE /v1/payments/{payment-product}/{paymentId} | DELETE /v2/payments/{payment-product}/{paymentId} | Live | |
GET /v1/payments/{payment-product}/{paymentId}/status | GET /v2/payments/{payment-product}/{paymentId}/status | Live | |
POST /v1/payments/pain.001-{payment-product} | POST /v2/payments/pain.001-{payment-product} | Expected in Q2 2026 | |
GET /v2/payments/pain.001-{payment-product}/{paymentId}/status | GET /v3/payments/pain.001-{payment-product}/{paymentId}/status | Expected in Q2 2026 | |
| PIS API | Periodic Payments: | ||
POST /v1/periodic-payments/{payment-product} | POST /v2/periodic-payments/{payment-product} | Live | |
GET /v1/periodic-payments/{payment-product}/{paymentId} | GET /v2/periodic-payments/{payment-product}/{paymentId} | Live | |
DELETE /v1/periodic-payments/{payment-product}/{paymentId} | DELETE /v2/periodic-payments/{payment-product}/{paymentId} | Live | |
GET /v1/periodic-payments/{payment-product}/{paymentId}/status | GET /v2/periodic-payments/{payment-product}/{paymentId}/status | Live | |
POST /v1/periodic-payments/pain.001-{payment-product} | POST /v2/periodic-payments/pain.001-{payment-product} | Expected in Q2 2026 | |
GET /v1/periodic-payments/pain.001-{payment-product}/{paymentId} | GET /v2/periodic-payments/pain.001-{payment-product}/{paymentId} | Expected in Q2 2026 | |
| PIS API | Bulk Payments: | ||
POST /v1/bulk-payments/{payment-product}POST /v2/bulk-payments/{payment-product} | POST /v3/bulk-payments/{payment-product} | Live | |
GET /v1/bulk-payments/{payment-product}/{paymentId}GET /v2/bulk-payments/{payment-product}/{paymentId} | GET /v3/bulk-payments/{payment-product}/{paymentId} | Live | |
DELETE /v1/bulk-payments/{payment-product}/{paymentId} | DELETE /v3/bulk-payments/{payment-product}/{paymentId} | Live | |
GET /v1/bulk-payments/{payment-product}/{paymentId}/status | GET /v3/bulk-payments/{payment-product}/{paymentId}/status | Live | |
New: GET /v1/bulk-payments/{payment-product}/{paymentId}/extended-status | Live | ||
| API | Old endpoints | New | Status |
|---|---|---|---|
| AIS API | Account Information Service: | ||
GET /v3/accounts | GET /v4/accounts | Live | |
GET /v3/accounts/{account-id}/balances | GET /v4/accounts/{account-id}/balances | Live | |
GET /v3/accounts/{account-id}/transactions | GET /v4/accounts/{account-id}/transactions | Live | |
GET /v1/card-accounts/{account-id}/transactions | GET /v2/card-accounts/{account-id}/transactions | Live | |
| API | Old endpoints | New | Status |
|---|---|---|---|
| CAF API | Confirmation Availability of Funds: | ||
POST /v2/funds-confirmations | POST /v3/funds-confirmations | Live | |
POST /v2/funds-confirmations/accounts | POST /v3/funds-confirmations/accounts | Live | |
| API | Old endpoints | New | Status |
|---|---|---|---|
| Real-Time Reporting API | Real-Time Reporting: | ||
GET /v1/openbanking/accounts | GET /v2/openbanking/accounts | Live | |
GET /v1/openbanking/accounts/{account-id}/balances | GET /v2/openbanking/accounts/{account-id}/balances | Live | |
GET /v1/openbanking/accounts/{account-id}/transactions | GET /v3/openbanking/accounts/{account-id}/transactions_standard | Live | |
GET /v1/openbanking/accounts/{account-id}/transactions | GET /v3/openbanking/accounts/{account-id}/transactions_extended | Live | |
GET /v1/openbanking/card-accounts/{account-id}/transactions | GET /v2/openbanking/card-accounts/{account-id}/transactions | Live | |
https://developer.ing.com/openbanking/inspiration/news/breaking-change-announced-for-psd2-apis---updatedBreaking Change Announced for PSD2 APIs - UPDATED
23 Mar 2026
Mandatory Endpoint Migration for Third Party Providers; Enhanced Security with JWS Signing
Update on 26 August 2026:
The current signing mechanisms of the PSD2 API will be updated. This change was initially scheduled for 1 September 2026.
The implementation would impact ING customers, to mitigate the impact we want to extend the deadline. We will come back with a new date by the end of August 2026.
Introduction
ING is introducing new endpoints for the Account Information Services (AIS) API, Payment Initiation API (PIS), Confirmation on Availability of Funds (CAF) API and the Real-Time Reporting API affecting all PSD2 licensed Third Party Providers (TPPs) and all users of the Real-Time Reporting API.
The current endpoints will be decommissioned and requires all users to migrate from the existing endpoints to new ones that offer advanced security features. We will come back with a new deadline end of August 2026.
Why are we implementing this breaking change?
The new endpoints support JSON Web Signature (JWS) headers, delivering a higher standard of message integrity and aligning with Open Banking Europe’s specifications.
We have introduced new fields in the Payment Initiation Service that are compliant with changes to the SEPA Rules and NextGen messaging standards.
What do you need to do?
We hereby request you to migrate your connection to the new endpoints as per the steps below.
To maintain connectivity, we ask you to review the updated API References of the PSD2 APIs and Real-Time Reporting API and our Get Started Guide on implementing JWS:
Steps to perform:
PUT /oauth2/applications/{id} - to update the registered application's metadata to ensure that your application is correctly registered in ING's administration for operational purposesTake your time to familiarize yourself with the changes and reach out to us if you have any questions or concerns.
Current endpoints will be deprecated
Both the current and new endpoints are working in parallel. After the new end date the current endpoints supporting HTTPS signing will be decommissioned and the breaking change will be enforced. In order to maintain connectivity, please take action as described above.
Is there any impact on existing consents that ING customers have granted for the Account Information Service (AIS), Check Availability of Funds (CAF) and Real-Time Reporting API?
Yes, existing OAuth 2.0 tokens effectively become unusable for the new JWS-enabled endpoints. Tokens issued under the HTTP-signing model cannot be used when calling endpoints that require JWS.
The customer consent itself remains valid. However, because the existing OAuth 2.0 tokens are not compatible with the new JWS-enabled endpoints, end users will need to perform a new Strong Customer Authentication (SCA). This allows new OAuth 2.0 tokens to be issued that can be used with the JWS-enabled endpoints.
Details of Endpoint Changes
To ensure a smooth transition, below is a table listing the current (old) endpoints and their new replacements:
| API | Old endpoints | New | Status |
|---|---|---|---|
| PIS API | Single Payment: | ||
POST /v1/payments/{payment-product} | POST /v2/payments/{payment-product} | Live | |
GET /v1/payments/{payment-product}/{paymentId} | GET /v2/payments/{payment-product}/{paymentId} | Live | |
DELETE /v1/payments/{payment-product}/{paymentId} | DELETE /v2/payments/{payment-product}/{paymentId} | Live | |
GET /v1/payments/{payment-product}/{paymentId}/status | GET /v2/payments/{payment-product}/{paymentId}/status | Live | |
POST /v1/payments/pain.001-{payment-product} | POST /v2/payments/pain.001-{payment-product} | Expected in Q2 2026 | |
GET /v2/payments/pain.001-{payment-product}/{paymentId}/status | GET /v3/payments/pain.001-{payment-product}/{paymentId}/status | Expected in Q2 2026 | |
| PIS API | Periodic Payments: | ||
POST /v1/periodic-payments/{payment-product} | POST /v2/periodic-payments/{payment-product} | Live | |
GET /v1/periodic-payments/{payment-product}/{paymentId} | GET /v2/periodic-payments/{payment-product}/{paymentId} | Live | |
DELETE /v1/periodic-payments/{payment-product}/{paymentId} | DELETE /v2/periodic-payments/{payment-product}/{paymentId} | Live | |
GET /v1/periodic-payments/{payment-product}/{paymentId}/status | GET /v2/periodic-payments/{payment-product}/{paymentId}/status | Live | |
POST /v1/periodic-payments/pain.001-{payment-product} | POST /v2/periodic-payments/pain.001-{payment-product} | Expected in Q2 2026 | |
GET /v1/periodic-payments/pain.001-{payment-product}/{paymentId} | GET /v2/periodic-payments/pain.001-{payment-product}/{paymentId} | Expected in Q2 2026 | |
| PIS API | Bulk Payments: | ||
POST /v1/bulk-payments/{payment-product}POST /v2/bulk-payments/{payment-product} | POST /v3/bulk-payments/{payment-product} | Live | |
GET /v1/bulk-payments/{payment-product}/{paymentId}GET /v2/bulk-payments/{payment-product}/{paymentId} | GET /v3/bulk-payments/{payment-product}/{paymentId} | Live | |
DELETE /v1/bulk-payments/{payment-product}/{paymentId} | DELETE /v3/bulk-payments/{payment-product}/{paymentId} | Live | |
GET /v1/bulk-payments/{payment-product}/{paymentId}/status | GET /v3/bulk-payments/{payment-product}/{paymentId}/status | Live | |
New: GET /v1/bulk-payments/{payment-product}/{paymentId}/extended-status | Live | ||
| API | Old endpoints | New | Status |
|---|---|---|---|
| AIS API | Account Information Service: | ||
GET /v3/accounts | GET /v4/accounts | Live | |
GET /v3/accounts/{account-id}/balances | GET /v4/accounts/{account-id}/balances | Live | |
GET /v3/accounts/{account-id}/transactions | GET /v4/accounts/{account-id}/transactions | Live | |
GET /v1/card-accounts/{account-id}/transactions | GET /v2/card-accounts/{account-id}/transactions | Live | |
| API | Old endpoints | New | Status |
|---|---|---|---|
| CAF API | Confirmation Availability of Funds: | ||
POST /v2/funds-confirmations | POST /v3/funds-confirmations | Live | |
POST /v2/funds-confirmations/accounts | POST /v3/funds-confirmations/accounts | Live | |
| API | Old endpoints | New | Status |
|---|---|---|---|
| Real-Time Reporting API | Real-Time Reporting: | ||
GET /v1/openbanking/accounts | GET /v2/openbanking/accounts | Live | |
GET /v1/openbanking/accounts/{account-id}/balances | GET /v2/openbanking/accounts/{account-id}/balances | Live | |
GET /v1/openbanking/accounts/{account-id}/transactions | GET /v3/openbanking/accounts/{account-id}/transactions_standard | Live | |
GET /v1/openbanking/accounts/{account-id}/transactions | GET /v3/openbanking/accounts/{account-id}/transactions_extended | Live | |
GET /v1/openbanking/card-accounts/{account-id}/transactions | GET /v2/openbanking/card-accounts/{account-id}/transactions | Live | |
Comentariile trebuie aprobate, deci nu vor apărea imediat pe site. E o soluție de moment împotriva spam-urilor.