Implementation Guide: Revolut
This page has been created and maintained by the relevant ASPSP, and OBIE takes no liability for the completeness nor accuracy of this data.
Note to ASPSP: Please indicate which brands this applies to and/or duplicate this page per brand if relevant.
ASPSP | Revolut LTD |
|---|---|
Brand | Revolut LTD |
Date | May 26, 2025 |
Developer portal (s) |
Announcements
Please check latest updates on our developer portal: https://developer.revolut.com/updates/tags/open-banking-api
Change to Production:
Please check latest updates on our developer portal: https://developer.revolut.com/updates/tags/open-banking-api
On-boarding
Supports dynamic client registration (Y/N) | Y |
|---|---|
Instructions for manual onboarding | |
OIDC .well-known endpoint | |
Notes on testing | When registering an application in the Developer Portal you will get a user (phone number and pin) to test consent authorisations from a Revolut personal account in Sandbox. You can also test the Business authorisation flow registering a Business Sandbox account: https://sandbox-business.revolut.com/signup |
Other on-boarding notes | Multiple applications can be registered with the same software statement and/or OBWAC/QWAC certificates. Every registration will obtain a unique We highly encourage TPPs to do so when acting as an intermediary of a merchant or other software provider, this provides more clarity to the PSU when reviewing active consents at a later date. Check the documentation links below for more information. |
Documentation URL |
Account Information API
Swagger version | v3.1 |
|---|---|
Base URI | |
General variances to specification |
|
Non-functional limitations |
|
Ref | Area | Field | Available (Y/N) | Exception/Notes (inc details on classification codes, field limits, and field formats) |
|---|---|---|---|---|
Endpoint 1 | POST /account-access-consents |
| Y (Production/Sandbox) |
|
Endpoint 2 | GET /account-access-consents/{AccountConsentId} |
| Y (Production/Sandbox) |
|
Endpoint 3 | DELETE /account-access-consents/{AccountConsentId} |
| Y (Production/Sandbox) |
|
Endpoint 4 | GET /accounts |
| Y (Production/Sandbox) | Only accounts with known SchemaName are returned. |
Endpoint 5 | GET /accounts/{AccountId} |
| Y (Production/Sandbox) | Endpoint only available during 5 minutes after user authorisation. (Article 10A) |
Endpoint 6 | GET /accounts/{AccountId}/balances |
| Y (Production/Sandbox) |
|
Endpoint 7 | GET /accounts/{AccountId}/transactions |
| Y (Production/Sandbox) |
|
Endpoint 8 | GET /accounts/{AccountId}/beneficiaries |
| Y (Production/Sandbox) | Endpoint only available during 5 minutes after user authorisation. (Article 10A) |
Endpoint 9 | GET /accounts/{AccountId}/direct-debits |
| Y (Production/Sandbox) | Endpoint only available during 5 minutes after user authorisation. (Article 10A) |
Endpoint 10 | GET /accounts/{AccountId}/standing-orders |
| Y (Production/Sandbox) | Endpoint only available during 5 minutes after user authorisation. (Article 10A) |
Payment Initiation API
Swagger version | v3.1 |
|---|---|
Base URI | |
General variances to specification |
|
Non-functional limitations |
|
Ref | Area | Field | Available (Y/N) | Exception/Notes (inc details on classification codes, field limits, and field formats) |
|---|---|---|---|---|
Endpoint 1 | POST /domestic-payment-consents |
| Y (Production/Sandbox) | Supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries. |
Endpoint 2 | GET /domestic-payment-consents/{DomesticPaymentConsentId} |
| Y (Production/Sandbox) |
|
Endpoint 3 | GET /domestic-payment-consents/{DomesticPaymentConsentId}/funds-confirmation |
| Y (Production/Sandbox) |
|
Endpoint 4 | POST /domestic-payments |
| Y (Production/Sandbox) | Supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries. |
Endpoint 5 | GET /domestic-payments/{DomesticPaymentId} |
| Y (Production/Sandbox) |
|
Endpoint 6 | POST /domestic-scheduled-payment-consents |
| Y (Production/Sandbox) | Supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries. |
Endpoint 7 | GET /domestic-scheduled-payment-consents/{DomesticScheduledPaymentConsentId} |
| Y (Production/Sandbox) |
|
Endpoint 8 | POST /domestic-scheduled-payments |
| Y (Production/Sandbox) | Supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries. |
Endpoint 9 | GET /domestic-scheduled-payments/{DomesticScheduledPaymentId} |
| Y (Production/Sandbox) |
|
Endpoint 10 | POST /domestic-standing-order-consents |
| Y (Production/Sandbox) | Supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries. Not all frequencies are available, check our documentation for more details https://developer.revolut.com/docs/open-banking/create-domestic-standing-order-consents Standing orders cannot currently be defined with an exit-condition of end date or total number of payments. The PSU should cancel standing orders in the user interface if needed. |
Endpoint 11 | GET /domestic-standing-order-consents/{DomesticStandingOrderConsentId} |
| Y (Production/Sandbox) |
|
Endpoint 12 | POST /domestic-standing-orders |
| Y (Production/Sandbox) | Supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries. |
Endpoint 13 | GET /domestic-standing-orders/{DomesticStandingOrderId} |
| Y (Production/Sandbox) |
|
Endpoint 14 | POST /international-payment-consents |
| Y (Production/Sandbox) | Supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries. |
Endpoint 15 | GET /international-payment-consents/{InternationalPaymentConsentId} |
| Y (Production/Sandbox) |
|
Endpoint 16 | GET /international-payment-consents/{InternationalPaymentConsentId}/funds-confirmation |
| Y (Production/Sandbox) |
|
Endpoint 17 | POST /international-payments |
| Y (Production/Sandbox) |
|
Endpoint 18 | GET /international-payments/{InternationalPaymentId} |
| Y (Production/Sandbox) |
|
Endpoint 19 | POST /international-scheduled-payment-consents |
| Y (Production/Sandbox) |
|
Endpoint 20 | GET /international-scheduled-payment-consents/{InternationalScheduledPaymentConsentId} |
| Y (Production/Sandbox) |
|
Endpoint 21 | POST /international-scheduled-payments |
| Y (Production/Sandbox) |
|
Endpoint 22 | GET /international-scheduled-payments/{InternationalScheduledPaymentId} |
| Y (Production/Sandbox) |
|
Endpoint 23 | POST /international-standing-order-consents |
| Y (Production/Sandbox) | Not all frequencies are available, check our documentation for more details https://developer.revolut.com/docs/open-banking/create-international-standing-order-consents Standing orders cannot currently be defined with an exit-condition of end date or total number of payments. The PSU should cancel standing orders in the user interface if needed. |
Endpoint 24 | GET /international-standing-order-consents/{InternationalStandingOrderConsentId} |
| Y (Production/Sandbox) |
|
Endpoint 25 | POST /international-standing-orders |
| Y (Production/Sandbox) |
|
Endpoint 26 | GET /international-standing-orders/{InternationalStandingOrderId} |
| Y (Production/Sandbox) |
|
Endpoint 27 | POST /file-payment-consents |
| Y (Production/Sandbox) | Only available for business accounts, personal accounts cannot authorise file payments. |
Endpoint 28 | GET /file-payment-consents/{FilePaymentConsentId} |
| Y (Production/Sandbox) |
|
Endpoint 29 | GET /file-payment-consents/{FilePaymentConsentId}/file |
| Y (Production/Sandbox) |
|
Endpoint 30 | POST /file-payment-consents/{FilePaymentConsentId}/file |
| Y (Production/Sandbox) |
|
Endpoint 31 | POST /file-payments |
| Y (Production/Sandbox) |
|
Endpoint 32 | GET /file-payments/{FilePaymentId} |
| Y (Production/Sandbox) |
|
Endpoint 33 | GET /file-payments/{FilePaymentId}/report-file |
| Y (Production/Sandbox) |
|
Open Data API
Swagger version | N/A |
|---|---|
Base URI | N/A |
General variances to specification |
|
Non-functional limitations |
|
Ref | Area | Field | Available (Y/N) | Exception/Notes (inc details on classification codes, field limits, and field formats) |
|---|---|---|---|---|