Revolut File Payment API

The File Payment API from Revolut — 6 operation(s) for file payment.

OpenAPI Specification

revolut-file-payment-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  version: '1.0'
  title: Business Accounting File Payment API
  description: "As a Revolut Business customer with a Business Account, you can use the Business API to automate your own business processes.\nSave time, reduce your costs, and avoid errors by using the Business API. \n\n:::tip[Before you get started]\nTo learn more about the Business API and its features, check the [**user guides**](https://developer.revolut.com/docs/guides/manage-accounts/introduction).\n\nYou can reach them at any time from the main navigation bar **→ Guides → Business**.\n:::\n\nYou can view accounts, manage counterparties, make payments or currency exchanges without manual effort in the Web UI:\n\n- Accounting: [Account management](https://developer.revolut.com/docs/api/business#get-account), [Accounting settings](https://developer.revolut.com/docs/api/business#tag-accounting), [Expense management](https://developer.revolut.com/docs/api/business#get-expense), [Transactions](https://developer.revolut.com/docs/api/business#get-transactions) \n- Payments: \n  - [Counterparty management](https://developer.revolut.com/docs/api/business#get-counterparties)\n  - Payment management: [Payment drafts](https://developer.revolut.com/docs/api/business#delete-payment-draft), [Payout links](https://developer.revolut.com/docs/api/business#get-payout-link), [Transfers](https://developer.revolut.com/docs/api/business#tag-transfers)\n  - [Foreign exchange](https://developer.revolut.com/docs/api/business#tag-foreign-exchange)\n- Business team: [Card management](https://developer.revolut.com/docs/api/business#delete-card), [Card invitation management](https://developer.revolut.com/docs/api/business#update-card-invitation), [Team member management](https://developer.revolut.com/docs/api/business#delete-team-member)\n- Developer tools: [Sandbox simulations](https://developer.revolut.com/docs/api/business#tag-simulations), [Webhook management](https://developer.revolut.com/docs/api/business#tag-webhooks-v2)\n\nTo see the reference for the specific endpoints and operations of this API, browse the menu on the left.\n\n### Test the Business API\n\nYou can test the Business API in Postman by forking this collection:\n\n[![View in Postman](https://run.pstmn.io/button.svg)](https://www.postman.com/revolut-api/workspace/revolut-developers/overview)"
  contact: {}
servers:
- url: https://b2b.revolut.com/api/1.0
  description: Production server (uses live data)
- url: https://sandbox-b2b.revolut.com/api/1.0
  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 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/OBWriteFile2'
            example:
              Data:
                ConsentId: 7ffe4969-1234-1234-acab-d24e89855fdd
                Initiation:
                  FileType: text/csv
     

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/revolut/refs/heads/main/openapi/revolut-file-payment-api-openapi.yml