Revolut File Payment API
The File Payment API from Revolut — 6 operation(s) for file payment.
The File Payment API from Revolut — 6 operation(s) for file payment.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/revolut-file-payment-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Open Banking File Payment API
description: "The Revolut Open Banking API is the gateway for third-party providers to interact with Revolut customers and products.\n\n:::tip[Before you get started]\nTo learn more about the Open Banking API and its features, check the [**user guides**](https://developer.revolut.com/docs/guides/build-banking-apps/introduction-to-the-open-banking-api/introduction).\n\nYou can reach them at any time from the main navigation bar **→ Guides → Open Banking**.\n:::\n\nYou can take advantage of the Open Banking API to build your banking applications whether you are:\n- A regulated third party provider that wants to get account and transaction information of Revolut customers and initiate different types of payments, or\n- An innovative service provider that is looking to seamlessly integrate Revolut functions into your own applications.\n\nAs such, you can use the Open Banking API to leverage the following features:\n- [Account management](https://developer.revolut.com/docs/api/open-banking#tag-accounts)\n- [Transaction management](https://developer.revolut.com/docs/api/open-banking#tag-transactions)\n- Payment management:\n - Domestic: [Domestic payments](https://developer.revolut.com/docs/api/open-banking#tag-domestic-payment), [Domestic scheduled payments](https://developer.revolut.com/docs/api/open-banking#tag-domestic-scheduled-payment), [Domestic standing orders](https://developer.revolut.com/docs/api/open-banking#tag-domestic-standing-order)\n - International: [International payments](https://developer.revolut.com/docs/api/open-banking#tag-international-payment), [International scheduled payments](https://developer.revolut.com/docs/api/open-banking#tag-international-scheduled-payment), [International standing orders](https://developer.revolut.com/docs/api/open-banking#tag-international-standing-order)\n - Other: [Draft payments](https://developer.revolut.com/docs/api/open-banking#tag-draft-payment), [File payments](https://developer.revolut.com/docs/api/open-banking#tag-file-payment)\n- [Application management](https://developer.revolut.com/docs/api/open-banking#tag-applications)\n\nBrowse the menu on the left to see the reference for the specific endpoints and operations of this API.\nYou can also go to [Updates](https://developer.revolut.com/blog) to learn about upcoming changes and other news related to the Open Banking API.\n\n### Test the Open Banking API\n\nYou can test the Open Banking API in Postman by forking this collection:\n\n[](https://www.postman.com/revolut-api/workspace/revolut-developers/overview)\n\n## Get Access token\n\n### Certificates\n\nYou must use a transport certificate and its private key in order to request an access token.\n\n- For Sandbox testing, you can use the `transport.pem` certificate file which you obtained in [Convert certificates](https://developer.revolut.com/docs/guides/build-banking-apps/get-started/prepare-sandbox-environment#convert-certificates) together with the private key generated in step [Generate a CSR](https://developer.revolut.com/docs/guides/build-banking-apps/get-started/prepare-sandbox-environment#generate-a-csr).\n\n- For Production, you will need to use a valid OBIE or eIDAS transport certificate from a regulated Certificate Authority, and its corresponding private key.\n\n:::note\nRevolut Open Banking API servers use certificates issued by Open Banking Limited.\n\nYou can find the root and issuing certificates [here](https://openbanking.atlassian.net/wiki/spaces/DZ/pages/23494678/Certificates+and+Software+Statements) if you need to add them to your truststore.\n:::\n\n### Headers\n\n- `Content-Type: application/x-www-form-urlencoded`\n\n### Parameters\n\n- `grant_type`: Must be set to `client_credentials` to get the access token.\n- `scope`: Must be set to `accounts`.\n\n### Example\n\n:::note\nThe parameters `-k` or `--insecure` are not necessary if you added Open Banking Root and Issuing certificates to your truststore.\n:::\n\n**For production:**\n\n```shell\ncurl -k --cert transport.pem --key private.key \\\n--location -X POST 'https://oba-auth.revolut.com/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n-d 'grant_type=client_credentials' \\\n-d 'scope=accounts' \\\n```\n\n**For sandbox:**\n\n```shell\ncurl -k --cert transport.pem --key private.key \\\n--location -X POST 'https://sandbox-oba-auth.revolut.com/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n-d 'grant_type=client_credentials' \\\n-d 'scope=accounts' \\\n```\n\n## Response\n\nThe response contains the following JSON object:\n\n```json\n{\n \"access_token\":\"<access token>\",\n \"token_type\":\"Bearer\",\n \"expires_in\":2399\n}\n```\n\n**What's next**\n\nUse this access token as the authentication bearer for all subsequent requests to the API, as described in the [Tutorials](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information) section.\nWhen your certificate expires, repeat the steps above to create a new one."
version: v3.1.0
servers:
- url: https://oba-auth.revolut.com
description: Production server (uses live data)
- url: https://sandbox-oba-auth.revolut.com
description: Sandbox server (uses test data)
tags:
- name: File Payment
paths:
/file-payment-consents/{ConsentId}:
get:
tags:
- File Payment
summary: Retrieve a file payment consent
security:
- AccessToken:
- payments
description: 'Get the details of a file payment consent.
See also [Tutorials: Create a file payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-a-file-payment).'
operationId: GetFilePaymentConsentsConsentId
parameters:
- name: ConsentId
in: path
description: The ID of the account access consent.
required: true
schema:
type: string
- name: x-fapi-financial-id
in: header
description: 'The unique ID of the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) that the request is issued to.
The ID of Revolut is `001580000103UAvAAM`.'
required: true
schema:
type: string
- name: x-fapi-customer-last-logged-time
in: header
description: 'The date and time when the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) last logged in with the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
All dates in the HTTP headers are represented as [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.1.1) Full Dates.
For example: <nobr>`Sun, 10 Sep 2017 19:43:31 UTC`</nobr>.'
schema:
pattern: ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$
type: string
- name: x-fapi-customer-ip-address
in: header
description: The IP address of the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) if the PSU is logged in with the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
schema:
type: string
- name: x-fapi-interaction-id
in: header
description: An [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) UUID used as a correlation ID.
schema:
type: string
- name: Authorization
in: header
description: 'The access token that you''ve generated.
For more information, see [Generate an access token](https://developer.revolut.com/docs/guides/build-banking-apps/get-started/get-access-token).'
required: true
schema:
type: string
- name: x-customer-user-agent
in: header
description: The user agent that the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) is using.
schema:
type: string
responses:
'200':
description: File Payment Consents Read
headers:
x-jws-signature:
description: Header containing a [detached JWS signature](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-json-web-signatures) of the body of the payload.
schema:
type: string
x-fapi-interaction-id:
description: An [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) UUID used as a correlation ID.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/OBWriteFileConsentResponse2'
example:
Data:
Status: AwaitingUpload
StatusUpdateDateTime: '2022-11-22T17:16:28.350197Z'
CreationDateTime: '2022-11-22T17:16:28.350197Z'
ConsentId: 6fb10dd9-xxxx-yyyy-zzzz-430e37f8cea0
Initiation:
FileHash: 7YuW8NQJ78/cHthltcqeJd1234BlATBS92IzoBXqQz0=
FileType: text/csv
FileReference: reference1234
Links:
Self: https://oba-auth.revolut.com/file-payment-consents/6fb10dd9-xxxx-yyyy-zzzz-430e37f8cea0
Meta:
TotalPages: 1
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
'401':
description: Unauthorized
content: {}
'403':
description: Forbidden
content: {}
'405':
description: Method Not Allowed
content: {}
'406':
description: Not Acceptable
content: {}
'429':
description: Too Many Requests
headers:
Retry-After:
description: Time in seconds to wait before you make a new request.
schema:
type: integer
content: {}
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
/file-payment-consents:
post:
tags:
- File Payment
summary: Create a file payment consent
security:
- AccessToken:
- payments
JWS:
- payments
description: 'Create a file payment consent described in the [Open Banking API documentation: Account and Transaction API Specification](https://openbanking.atlassian.net/wiki/spaces/DZ/pages/999622968/Account+and+Transaction+API+Specification+-+v3.1.1).
:::note
File Payments are available only for Revolut Business users.
Currently only the `text/csv` file type is supported for File Payments.
:::
When you make the API call, ensure that you pass the corresponding JSON Web Signature (JWS) in the `x-jws-signature` request header. Note:
- The JWS is generated from the request body with the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) signing key that is specified in the JWS header.
- The JWS consists of a header and a signature in the `<jws_header>..<jws_signature>` format.
To see how to create a JWS, see the guide: [Work with JSON Web Signatures](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-json-web-signatures).
For more information, see [Tutorials: Create a file payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-a-file-payment#4-create-a-file-payment-consent).'
operationId: CreateFilePaymentConsents
parameters:
- name: x-fapi-financial-id
in: header
description: 'The unique ID of the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) that the request is issued to.
The ID of Revolut is `001580000103UAvAAM`.'
required: true
schema:
type: string
- name: x-fapi-customer-last-logged-time
in: header
description: 'The date and time when the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) last logged in with the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
All dates in the HTTP headers are represented as [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.1.1) Full Dates.
For example: <nobr>`Sun, 10 Sep 2017 19:43:31 UTC`</nobr>.'
schema:
pattern: ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$
type: string
- name: x-fapi-customer-ip-address
in: header
description: The IP address of the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) if the PSU is logged in with the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
schema:
type: string
- name: x-fapi-interaction-id
in: header
description: An [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) UUID used as a correlation ID.
schema:
type: string
- name: Authorization
in: header
description: 'The access token that you''ve generated.
For more information, see [Generate an access token](https://developer.revolut.com/docs/guides/build-banking-apps/get-started/get-access-token).'
required: true
schema:
type: string
- name: x-idempotency-key
in: header
description: 'Each request is processed only once per `x-idempotency-key`.
The idempotency key is valid for 24 hours.'
required: true
schema:
maxLength: 40
pattern: ^(?!\s)(.*)(\S)$
type: string
- name: x-jws-signature
in: header
description: A [detached JWS signature](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-json-web-signatures) of the body of the payload.
required: true
schema:
type: string
- name: x-customer-user-agent
in: header
description: The user agent that the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) is using.
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OBWriteFileConsent2'
example:
Data:
Initiation:
FileType: text/csv
FileHash: a31f80c0-4946-11ed-b878-0242ac120002
FileReference: reference1234
required: true
responses:
'201':
description: File Payment Consents Created
headers:
x-jws-signature:
description: Header containing a [detached JWS signature](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-json-web-signatures) of the body of the payload.
schema:
type: string
x-fapi-interaction-id:
description: An [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) UUID used as a correlation ID.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/OBWriteFileConsentResponse2'
example:
Data:
Status: AwaitingUpload
StatusUpdateDateTime: '2022-10-11T13:17:08.140705Z'
CreationDateTime: '2022-10-11T13:17:08.140705Z'
ConsentId: d2ca7407-1234-466e-xxxx-00010770a4ff
Initiation:
FileType: text/csv
FileHash: 7YuW8NQJ78/cHthltcqeJd1234BlATBS92IzoBXqQz0=
FileReference: reference1234
Links:
Self: https://oba-auth.revolut.com/file-payment-consents/d2ca7407-1234-466e-xxxx-00010770a4ff
Meta:
TotalPages: 1
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
'401':
description: Unauthorized
content: {}
'403':
description: Forbidden
content: {}
'405':
description: Method Not Allowed
content: {}
'406':
description: Not Acceptable
content: {}
'415':
description: Unsupported Media Type
content: {}
'429':
description: Too Many Requests
headers:
Retry-After:
description: Time in seconds to wait before you make a new request.
schema:
type: integer
content: {}
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
x-codegen-request-body-name: OBWriteFileConsent2Param
/file-payment-consents/{ConsentId}/file:
get:
tags:
- File Payment
summary: Retrieve an uploaded payment file
security:
- AccessToken:
- payments
description: 'Get the payment file that was uploaded with the given consent.
See also [Tutorials: Create a file payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-a-file-payment).'
operationId: GetFilePaymentConsentsConsentIdFile
parameters:
- name: ConsentId
in: path
description: The ID of the account access consent.
required: true
schema:
type: string
- name: x-fapi-financial-id
in: header
description: 'The unique ID of the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) that the request is issued to.
The ID of Revolut is `001580000103UAvAAM`.'
required: true
schema:
type: string
- name: x-fapi-customer-last-logged-time
in: header
description: 'The date and time when the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) last logged in with the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
All dates in the HTTP headers are represented as [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.1.1) Full Dates.
For example: <nobr>`Sun, 10 Sep 2017 19:43:31 UTC`</nobr>.'
schema:
pattern: ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$
type: string
- name: x-fapi-customer-ip-address
in: header
description: The IP address of the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) if the PSU is logged in with the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
schema:
type: string
- name: x-fapi-interaction-id
in: header
description: An [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) UUID used as a correlation ID.
schema:
type: string
- name: Authorization
in: header
description: 'The access token that you''ve generated.
For more information, see [Generate an access token](https://developer.revolut.com/docs/guides/build-banking-apps/get-started/get-access-token).'
required: true
schema:
type: string
- name: x-customer-user-agent
in: header
description: The user agent that the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) is using.
schema:
type: string
responses:
'200':
description: File Payment Consents Read
headers:
x-jws-signature:
description: Header containing a [detached JWS signature](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-json-web-signatures) of the body of the payload.
schema:
type: string
x-fapi-interaction-id:
description: An [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) UUID used as a correlation ID.
schema:
type: string
content:
text/csv:
schema:
description: The payment file that was uploaded with the specified consent.
type: string
format: binary
examples:
fileExample:
summary: CSV formatted-text
value: 'Name,Recipient type,Account number,Sort code,Routing number,IBAN,BIC,Recipient bank country,Currency,Amount,Payment reference,Recipient country,State or province,Address line 1,Address line 2,City,Postal code
John Smith,INDIVIDUAL,40513598,207409,,,GB,GBP,10,User comment,GB,,Revolutest LTD,Somewhere in London,London,E14 5AB'
'400':
description: Bad request
content:
'*/*':
schema:
$ref: '#/components/schemas/OBErrorResponse1'
'401':
description: Unauthorized
content: {}
'403':
description: Forbidden
content: {}
'405':
description: Method Not Allowed
content: {}
'406':
description: Not Acceptable
content: {}
'429':
description: Too Many Requests
headers:
Retry-After:
description: Time in seconds to wait before you make a new request.
schema:
type: integer
content: {}
'500':
description: Internal Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/OBErrorResponse1'
post:
tags:
- File Payment
summary: Upload a payment file
security:
- AccessToken:
- payments
JWS:
- payments
description: 'Use this endpoint to upload a file for the given file payment consent.
For the format of the CSV file, check the request body details.
:::note
Download an [example CSV file](https://assets.revolut.com/api-docs/oba-api/file-payment-file.csv).
:::
For more information, see [Tutorials: Create a file payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-a-file-payment#5-upload-the-csv-file).'
operationId: CreateFilePaymentConsentsConsentIdFile
parameters:
- name: ConsentId
in: path
description: The ID of the account access consent.
required: true
schema:
type: string
- name: x-fapi-financial-id
in: header
description: 'The unique ID of the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) that the request is issued to.
The ID of Revolut is `001580000103UAvAAM`.'
required: true
schema:
type: string
- name: x-fapi-customer-last-logged-time
in: header
description: 'The date and time when the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) last logged in with the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
All dates in the HTTP headers are represented as [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.1.1) Full Dates.
For example: <nobr>`Sun, 10 Sep 2017 19:43:31 UTC`</nobr>.'
schema:
pattern: ^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} (GMT|UTC)$
type: string
- name: x-fapi-customer-ip-address
in: header
description: The IP address of the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) if the PSU is logged in with the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
schema:
type: string
- name: x-fapi-interaction-id
in: header
description: An [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) UUID used as a correlation ID.
schema:
type: string
- name: Authorization
in: header
description: 'The access token that you''ve generated.
For more information, see [Generate an access token](https://developer.revolut.com/docs/guides/build-banking-apps/get-started/get-access-token).'
required: true
schema:
type: string
- name: x-idempotency-key
in: header
description: 'Each request is processed only once per `x-idempotency-key`.
The idempotency key is valid for 24 hours.'
required: true
schema:
maxLength: 40
pattern: ^(?!\s)(.*)(\S)$
type: string
- name: x-jws-signature
in: header
description: A [detached JWS signature](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-json-web-signatures) of the body of the payload.
required: true
schema:
type: string
- name: x-customer-user-agent
in: header
description: The user agent that the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) is using.
schema:
type: string
requestBody:
content:
text/csv:
schema:
description: 'The CSV payments file.
Provided as CSV-formatted text representing file payments, or as the path to the CSV payments file preceded by `@`.
For the format of the CSV file, check the details below.
<details><summary>The format of the payment file:</summary>
| FIELD | REQUIRED | DESCRIPTION |
|---|---|---|
|`Name`|Yes| Can contain up to 80 characters. If `recipient type` is `INDIVIDUAL`, this field must contain a first and a last name, separated by a space.|
|`Recipient type` |Yes| Can be either `INDIVIDUAL` or `COMPANY`.|
|`Account number` |For UK transfers| Must contain valid account number if provided.|
|`Sort code`| For UK transfers| Must contain valid sort code if provided.|
|`Routing number`| For US transfers| Must contain valid routing number if provided.|
|`IBAN` |For SEPA transfers| Must contain valid IBAN if provided.|
|`BIC` |For SEPA transfers| Must contain valid BIC if provided.|
|`Recipient bank country` |Yes| Must contain valid [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code.|
|`Currency`| Yes |Must contain valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.|
|`Amount` |Yes| Must match the following pattern `[0-9]*(\.[0-9]*)?`.|
|`Payment reference` |Yes| Can contain up to 100 characters.|
|`Recipient country` |No |Must contain valid [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code if provided.|
|`State or province`| No| Can contain up to 50 characters.|
|`Address line 1` |No| Can contain up to 50 characters.|
|`Address line 2` | No |Can contain up to 50 characters.|
|`City` |No| Can contain up to 50 characters.|
|`Postal code` |No| Can contain up to 50 characters.|
</details>'
type: string
examples:
CSV-formatted text-UK:
summary: 'CSV-formatted text: UK local transfer'
value: 'Name,Recipient type,Account number,Sort code,Recipient bank country,Currency,Amount,Payment reference,Payment reference,Recipient country,State or province,Address line 1,Address line 2,City,Postal code
John Smith,INDIVIDUAL,40513598,207409,,,GB,GBP,10,User comment,GB,,Revolutest LTD,Somewhere in London,London,E14 5AB
John Doe,INDIVIDUAL,90352556,600001,GB,GBP,10,Second comment,,,,,,'
CSV-formatted text-US:
summary: 'CSV-formatted text: US local transfer'
value: 'Name,Recipient type,Account number,Routing number,Recipient bank country,Currency,Amount,Payment reference,Recipient country,State or province,Address line 1,Address line 2,City,Postal code
John Smith,INDIVIDUAL,531782059505,024600402,US,USD,10,First comment,US,California,Revolutest LTD,2340 Marietta Street,Oakland,94612
John Doe,INDIVIDUAL,356972945639,118677794,US,USD,10,Second comment,US,Arkansas,Revolutest LTD,3243 Midway Road,Portland,71654'
CSV-formatted text-IBAN:
summary: 'CSV-formatted text: IBAN transfer'
value: 'Name,Recipient type,IBAN,BIC,Recipient bank country,Currency,Amount,Payment reference,Recipient country,State or province,Address line 1,Address line 2,City,Postal code
Jaques Martin,INDIVIDUAL,FR0514508000305251415643Y69,SOGEFRPP,FR,EUR,10,First comment,FR,Bretagne,Revolutest LTD,82 rue Lenotre,RENNES,35000
Michel Dupont,INDIVIDUAL,FR3210057000308845567335Q88,BNPAFRPP,FR,EUR,10,Second comment,FR,Aquitaine,Revolutest LTD,52 rue Jean Vilar,BERGERAC,24100'
CSV file:
summary: Path to a CSV file
value: '@file-payment-file.csv'
required: true
responses:
'200':
description: File Payment CSV Uploaded
headers:
x-fapi-interaction-id:
description: An [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) UUID used as a correlation ID.
schema:
type: string
content:
application/json:
schema:
description: An empty JSON object (`{}`) is returned.
$ref: '#/components/schemas/EmptyBody'
example: {}
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
'401':
description: Unauthorized
content: {}
'403':
description: Forbidden
content: {}
'405':
description: Method Not Allowed
content: {}
'406':
description: Not Acceptable
content: {}
'415':
description: Unsupported Media Type
content: {}
'429':
description: Too Many Requests
headers:
Retry-After:
description: Time in seconds to wait before you make a new request.
schema:
type: integer
content: {}
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/OBErrorResponse1'
x-codegen-request-body-name: FileParam
/file-payments:
post:
tags:
- File Payment
summary: Create a file payment
security:
- AccessToken:
- payments
JWS:
- payments
description: 'Create a file payment.
:::note
As is defined in the Open Banking Specifications, the `/Data/Initiation` and the `/Data/Risk` sections of the request must be an exact match for the related consent passed in `ConsentId`.
:::
For more information, see [Tutorials: Create a file payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-a-file-payment).'
operationId: CreateFilePayments
parameters:
- name: x-fapi-financial-id
in: header
description: 'The unique ID of the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) that the request is issued to.
The ID
# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/revolut/refs/heads/main/openapi/revolut-file-payment-api-openapi.yml