Revolut International payment API

*International payments*, which you can use for international SWIFT payments in all currencies that Revolut supports. As a regulated third party provider, you can use the provided endpoints to initiate a payment in the following high-level workflow: - Create a consent. - Get the consent. - Create a payment. - Get the payment. Before you begin, ensure that you've registered your application with the `payments` scope. For more information, see [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment). :::tip See also [International scheduled payments](https://developer.revolut.com/docs/api/open-banking#tag-international-scheduled-payment) and [International standing orders](https://developer.revolut.com/docs/api/open-banking#tag-international-standing-order). :::

Operations 5

POST /international-payment-consents Create an international payment consent #
GET /international-payment-consents/{ConsentId} Retrieve an international payment consent #
GET /international-payment-consents/{ConsentId}/funds-confirmation Get funds confirmation for an international payment consent #
POST /international-payments Create an international payment #
GET /international-payments/{InternationalPaymentId} Retrieve an international payment #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/revolut-international-payment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

revolut-international-payment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Open Banking International 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[![View in Postman](https://run.pstmn.io/button.svg)](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: International payment
  description: '*International payments*, which you can use for international SWIFT payments in all currencies that Revolut supports.


    As a regulated third party provider, you can use the provided endpoints to initiate a payment in the following high-level workflow:


    - Create a consent.

    - Get the consent.

    - Create a payment.

    - Get the payment.


    Before you begin, ensure that you''ve registered your application with the `payments` scope.

    For more information, see [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment).


    :::tip

    See also [International scheduled payments](https://developer.revolut.com/docs/api/open-banking#tag-international-scheduled-payment) and [International standing orders](https://developer.revolut.com/docs/api/open-banking#tag-international-standing-order).

    :::'
paths:
  /international-payment-consents:
    post:
      tags:
      - International payment
      summary: Create an international payment consent
      security:
      - AccessToken:
        - payments
        JWS:
        - payments
      description: 'Create an international 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).


        Use international payments for international SWIFT payments in all currencies supported by Revolut.


        :::note

        Only the payments with `InstructedAmount` in the same currency as `CurrencyOfTransfer` are supported.


        However, users can select which account they want to be charged in the consent authorization UI even if the selected account is in a different currency.


        In such a case, the `ExchangeRateInformation` response field contains information about the `ExchangeRate` between `SourceCurrency` and `CurrencyOfTransfer`.

        If the user doesn''t have enough funds on the selected account, the consent authorization is rejected.

        :::


        :::note

        For international payment initiation consents, we recommend including the creditor''s name and address.

        Otherwise, the API may return the error `Address is required for this beneficiary` if the address is not provided for international 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).


        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment#2-create-a-domestic-payment-consent).

        '
      operationId: CreateInternationalPaymentConsents
      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/OBWriteInternationalConsent2'
            example:
              Data:
                Initiation:
                  InstructionIdentification: Reference1234
                  EndToEndIdentification: E2E1234
                  CurrencyOfTransfer: EUR
                  InstructedAmount:
                    Amount: '10.0'
                    Currency: EUR
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: International 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/OBWriteInternationalConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-26T09:07:30.952882Z'
                  CreationDateTime: '2022-09-26T09:07:30.952882Z'
                  ConsentId: 3446d4b6-xxxx-4e4f-xxxx-6605eeff5d1f
                  Initiation:
                    InstructionIdentification: Reference1234
                    EndToEndIdentification: E2E1234
                    CurrencyOfTransfer: EUR
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: EUR
                    CreditorAccount:
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                      Name: Receiver Co.
                  ExchangeRateInformation:
                    UnitCurrency: EUR
                    RateType: Indicative
                    ExchangeRate: '1.0000'
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/international-payment-consents/3446d4b6-xxxx-4e4f-xxxx-6605eeff5d1f
                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: OBWriteInternationalConsent2Param
  /international-payment-consents/{ConsentId}:
    get:
      tags:
      - International payment
      summary: Retrieve an international payment consent
      security:
      - AccessToken:
        - payments
      description: 'Get the details of an international payment consent.


        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment).'
      operationId: GetInternationalPaymentConsentsConsentId
      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: International 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/OBWriteInternationalConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-26T09:07:30.952882Z'
                  CreationDateTime: '2022-09-26T09:07:30.952882Z'
                  ConsentId: 3446d4b6-xxxx-4e4f-xxxx-6605eeff5d1f
                  Initiation:
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: EUR
                    CurrencyOfTransfer: EUR
                    EndToEndIdentification: E2E1234
                    InstructionIdentification: Reference1234
                  ExchangeRateInformation:
                    UnitCurrency: EUR
                    RateType: Indicative
                    ExchangeRate: '1.0000'
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/international-payment-consents/3446d4b6-xxxx-4e4f-xxxx-6605eeff5d1f
                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'
  /international-payment-consents/{ConsentId}/funds-confirmation:
    get:
      tags:
      - International payment
      summary: Get funds confirmation for an international payment consent
      security:
      - AccessToken:
        - payments
      description: 'Check the funds for an international payment with the given consent.

        You can get the information only if the user has authorized the related consent.


        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment).'
      operationId: GetInternationalPaymentConsentsConsentIdFundsConfirmation
      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: International 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/OBWriteFundsConfirmationResponse1'
              example:
                Data:
                  FundsAvailableResult:
                    FundsAvailableDateTime: '2022-09-26T14:13:46.585307Z'
                    FundsAvailable: true
                Links:
                  Self: https://oba-auth.revolut.com/international-payment-consents/323673db-babc-xxxx-xxxx-148cd24c390e/funds-confirmation
                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'
  /international-payments:
    post:
      tags:
      - International payment
      summary: Create an international payment
      security:
      - AccessToken:
        - payments
        JWS:
        - payments
      description: 'Create an international 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`.

        :::


        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment#6-initiate-the-domestic-payment).

        '
      operationId: CreateInternationalPayments
      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/OBWriteInternational2'
            example:
              Data:
                ConsentId: 65067c5d-e752-410d-a922-c9da2aeb8e6b
                Initiation:
                  InstructionIdentification: Reference1234
                  EndToEndIdentification: E2E1234
                  CurrencyOfTransfer: EUR
                  InstructedAmount:
                    Amount: '10.0'
                    Currency: EUR
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: International Payments 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/OBWriteInternationalResponse2'
              examples:
                Pending:
                  value:
                    Data:
                      ConsentId: 2373df19-xxxx-43a9-xxxx-b5fd14e5920f
                      CreationDateTime: '2022-09-26T09:29:10.152499Z'
                      Initiation:
                        CreditorAccount:
                          Identification: '11223321325698'
                          Name: Receiver Co.
                          SchemeName: UK.OBIE.SortCodeAccountNumber
                        CurrencyOfTransfer: GBP
                        EndToEndIdentification: E2E1234
                        InstructedAmount:
                          Amount: '10.0'
                          Currency: GBP
                        InstructionIdentification: Reference1234
                        DebtorAccount:
                          SchemeName: UK.OBIE.IBAN
                          Identification: GB95REVO00997053872360
                          Name: John Doe
                      InternationalPaymentId: 633170e6-xxxx-xxxx-xxxx-e90e7f88abee
                      Status: Pending
                      StatusUpdateDateTime: '2022-09-26T09:29:10.152499Z'
                    Links:
                      Self: https://oba-auth.revolut.com/international-payments/633170e6-xxxx-xxxx-xxxx-e90e7f88abee
                    Meta:
                      TotalPages: 1
                AcceptedSettlementInProcess:
                  value:
                    Data:
                      ConsentId: 2373df19-xxxx-43a9-xxxx-b5fd14e5920f
                      CreationDateTime: '2022-09-26T09:29:10.152499Z'
                      Initiation:
                        CreditorAccount:
                          Identifica

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