openapi: 3.0.1
info:
  title: Open Banking API
  description: |-
    The Revolut Open Banking API is the gateway for third-party providers to interact with Revolut customers and products.

    :::tip[Before you get started]
    To learn more about the Open Banking API and its features, check the [**user guides**](https://developer.revolut.com/docs/build-banking-apps/).

    You can reach them at any time from the main navigation bar **→ Guides → Open Banking**.
    :::

    You can take advantage of the Open Banking API to build your banking applications whether you are:
    - A regulated third party provider that wants to get account and transaction information of Revolut customers and initiate different types of payments, or
    - An innovative service provider that is looking to seamlessly integrate Revolut functions into your own applications.

    As such, you can use the Open Banking API to leverage the following features:
    - [Account management](https://developer.revolut.com/docs/open-banking/accounts)
    - [Transaction management](https://developer.revolut.com/docs/open-banking/transactions)
    - Payment management:
      - Domestic: [Domestic payments](https://developer.revolut.com/docs/open-banking/domestic-payment), [Domestic scheduled payments](https://developer.revolut.com/docs/open-banking/domestic-scheduled-payment), [Domestic standing orders](https://developer.revolut.com/docs/open-banking/domestic-standing-order)
      - International: [International payments](https://developer.revolut.com/docs/open-banking/international-payment), [International scheduled payments](https://developer.revolut.com/docs/open-banking/international-scheduled-payment), [International standing orders](https://developer.revolut.com/docs/open-banking/international-standing-order)
      - Other: [Draft payments](https://developer.revolut.com/docs/open-banking/draft-payment), [File payments](https://developer.revolut.com/docs/open-banking/file-payment)
    - [Application management](https://developer.revolut.com/docs/open-banking/applications)

    Browse the menu on the left to see the reference for the specific endpoints and operations of this API.
    You can also go to [Updates](https://developer.revolut.com/updates/tags/open-banking-api) to learn about upcoming changes and other news related to the Open Banking API.

    ### Test the Open Banking API

    You can test the Open Banking API in Postman by forking this collection:

    [![View in Postman](https://run.pstmn.io/button.svg)](https://www.postman.com/revolut-api/workspace/revolut-developers/overview)

    ## Get Access token

    ### Certificates

    You must use a transport certificate and its private key in order to request an access token.

    - 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).

    - For Production, you will need to use a valid OBIE or eIDAS transport certificate from a regulated Certificate Authority, and its corresponding private key.

    :::note
    Revolut Open Banking API servers use certificates issued by Open Banking Limited.

    You 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.
    :::

    ### Headers

    - `Content-Type: application/x-www-form-urlencoded`

    ### Parameters

    - `grant_type`: Must be set to `client_credentials` to get the access token.
    - `scope`: Must be set to `accounts`.

    ### Example

    :::note
    The parameters `-k` or `--insecure` are not necessary if you added Open Banking Root and Issuing certificates to your truststore.
    :::

    **For production:**

    ```shell
    curl -k --cert transport.pem --key private.key \
    --location -X POST 'https://oba-auth.revolut.com/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    -d 'grant_type=client_credentials' \
    -d 'scope=accounts' \
    ```

    **For sandbox:**

    ```shell
    curl -k --cert transport.pem --key private.key \
    --location -X POST 'https://sandbox-oba-auth.revolut.com/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    -d 'grant_type=client_credentials' \
    -d 'scope=accounts' \
    ```

    ## Response

    The response contains the following JSON object:

    ```json
    {
        "access_token":"<access token>",
        "token_type":"Bearer",
        "expires_in":2399
    }
    ```

    **What's next**

    Use 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.
    When 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: Applications
    description: |-
      These endpoints let you manage your applications.

      Applications can also be created in the [Developer Portal](https://developer.revolut.com/portal/).

      For more information, see:
      - [Register your application using DCR](https://developer.revolut.com/docs/guides/build-banking-apps/register-your-application-using-dcr/)
      - [Manage your applications](https://developer.revolut.com/docs/guides/build-banking-apps/manage-your-applications/get-an-application)
  - name: Accounts
    description: |-
      Open Banking Accounts API is implemented as specified 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).

      See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
  - name: Transactions
    description: |-
      Open Banking Transactions API is implemented as specified 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).

      See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
  - name: Domestic payment
    description: |-
      *Domestic payments*, which you can use for local payments in the local currency of the user.

      :::note
      Revolut supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries.
      :::

      As a regulated third party provider, you can use the provided endpoints to initiate a domestic 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 [Domestic scheduled payments](https://developer.revolut.com/docs/open-banking/domestic-scheduled-payment) and [Domestic standing orders](https://developer.revolut.com/docs/open-banking/domestic-standing-order).
      :::
  - name: Domestic scheduled payment
    description: |-
      *Domestic scheduled payments*, which you can use for local payments in the local currency of the user.

      :::note
      Revolut supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries.
      :::

      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 [Domestic payments](https://developer.revolut.com/docs/open-banking/domestic-payment) and [Domestic standing orders](https://developer.revolut.com/docs/open-banking/domestic-standing-order).
      :::
  - name: Domestic standing order
    description: |-
      *Domestic standing orders*, which you can use for local payments in the local currency of the user.

      :::note
      Revolut supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries.
      :::

      As a regulated third party provider, you can use the provided endpoints to initiate a domestic 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 [Domestic payments](https://developer.revolut.com/docs/open-banking/domestic-payment) and [Domestic scheduled payments](https://developer.revolut.com/docs/open-banking/domestic-scheduled-payment).
      :::
  - name: File payment
    description: |-
      *File payments*, which you can use to process all individual payments in an uploaded CSV file that you specify.

      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: Create a file payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-a-file-payment).
  - 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/open-banking/international-scheduled-payment) and [International standing orders](https://developer.revolut.com/docs/open-banking/international-standing-order).
      :::
  - name: International scheduled payment
    description: |-
      *International scheduled 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 payments](https://developer.revolut.com/docs/open-banking/international-payment) and [International standing orders](https://developer.revolut.com/docs/open-banking/international-standing-order) .
      :::
  - name: International standing order
    description: |-
      *International standing orders*, 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 payments](https://developer.revolut.com/docs/open-banking/international-payment) and [International scheduled payments](https://developer.revolut.com/docs/open-banking/international-scheduled-payment).
      :::
  - name: Draft payment
    description: |-
      You can create a draft payment to initiate a payment on behalf of a user, and request the approval for the draft payment in the user account.

      Then, you can retrieve or delete a draft payment.

      :::note
      The draft payments API is available only for Revolut Business customers.
      If you'd like to use this endpoint, reach out to us.
      :::

      For more information, see [Tutorials: Work with draft payments](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-draft-payments).
paths:
  /account-access-consents:
    post:
      tags:
        - Accounts
      summary: Create an account access consent
      operationId: CreateAccountAccessConsents
      description: |-
        Before you can access any data from a Revolut user, you must create an access consent to read data from the user's profile.

        :::note
        When you create an account access consent, you must include a specific permission that follows the rules in the table below; otherwise, you get a `400 Bad request` error.
        :::

        **Request Permissions**

        | PERMISSIONS | DEPENDENCIES |
        |--|--|
        | ReadAccountsBasic | None |
        | ReadAccountsDetail |None|
        | ReadBalances |None|
        | ReadBeneficiariesBasic |None|
        | ReadBeneficiariesDetail |None|
        | ReadDirectDebits |None|
        | ReadScheduledPaymentsBasic |None|
        | ReadScheduledPaymentsDetail |None|
        | ReadStandingOrdersBasic |None|
        | ReadStandingOrdersDetail |None|
        | ReadTransactionsBasic |None|
        | ReadTransactionsCredits |ReadTransactionsBasic OR ReadTransactionsDetail|
        |ReadTransactionsDebits |ReadTransactionsBasic OR ReadTransactionsDetail|
        | ReadTransactionsDetail | None |

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information#2-create-an-account-access-consent).
      parameters:
        - $ref: '#/components/parameters/x-fapi-financial-id-Param'
        - $ref: '#/components/parameters/x-fapi-customer-last-logged-time-Param'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address-Param'
        - $ref: '#/components/parameters/x-fapi-interaction-id-Param'
        - $ref: '#/components/parameters/AuthorizationParam'
        - $ref: '#/components/parameters/x-customer-user-agent-Param'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OBReadConsent1'
            example:
              Data:
                Permissions:
                  - ReadAccountsBasic
                  - ReadAccountsDetail
                ExpirationDateTime: '2022-12-02T00:00:00+00:00'
                TransactionFromDateTime: '2022-09-03T00:00:00+00:00'
                TransactionToDateTime: '2022-12-03T00:00:00+00:00'
              Risk: {}
        required: true
      responses:
        '201':
          description: Account Access Consents Created
          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:
                $ref: '#/components/schemas/OBReadConsentResponse1'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-22T11:47:10.366163Z'
                  CreationDateTime: '2022-09-22T11:47:10.366163Z'
                  TransactionToDateTime: '2022-12-03T00:00:00+00:00'
                  ExpirationDateTime: '2022-12-02T00:00:00+00:00'
                  Permissions:
                    - ReadAccountsBasic
                    - ReadAccountsDetail
                  ConsentId: e0bdfd78-2388-xxxx-xxxx-acc0b84c9210
                  TransactionFromDateTime: '2022-09-03T00:00:00+00:00'
                Risk: {}
                Links:
                  Self: https://oba-auth.revolut.com/account-access-consents
                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'
      security:
        - AccessToken:
            - accounts
      x-codegen-request-body-name: OBReadConsent1Param
  /account-access-consents/{ConsentId}:
    get:
      tags:
        - Accounts
      summary: Retrieve an account access consent
      operationId: GetAccountAccessConsentsConsentId
      description: |-
        Get the details of the account access consent as described in the Open Banking [official documentation](https://openbanking.atlassian.net/wiki/spaces/DZ/pages/999622968/Account+and+Transaction+API+Specification+-+v3.1.1).

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
      parameters:
        - name: ConsentId
          in: path
          description: The ID of the account access consent.
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/x-fapi-financial-id-Param'
        - $ref: '#/components/parameters/x-fapi-customer-last-logged-time-Param'
        - $ref: '#/components/parameters/x-fapi-customer-ip-address-Param'
        - $ref: '#/components/parameters/x-fapi-interaction-id-Param'
        - $ref: '#/components/parameters/AuthorizationParam'
        - $ref: '#/components/parameters/x-customer-user-agent-Param'
      responses:
        '200':
          description: Account Access Consents Read
          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:
                $ref: '#/components/schemas/OBReadConsentResponse1'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-22T11:47:10.366163Z'
                  CreationDateTime: '2022-09-22T11:47:10.366163Z'
                  TransactionToDateTime: '2022-12-03T00:00:00+00:00'
                  ExpirationDateTime: '2022-12-02T00:00:00+00:00'
                  Permissions:
                    - ReadAccountsBasic
                    - ReadAccountsDetail
                  ConsentId: e0bdfd78-2388-xxxx-xxxx-acc0b84c9210
                  TransactionFromDateTime: '2022-09-03T00:00:00+00:00'
                Risk: {}
                Links:
                  Self: https://oba-auth.revolut.com/account-access-consents/e0bdfd78-2388-xxxx-xxxx-acc0b84c9210
                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'
      security:
        - AccessToken:
            - accounts
    delete:
      tags:
        - Accounts
      summary: Delete an account access consent
      security:
        - AccessToken:
            - accounts
      description: |-
        Use this endpoint to:

        - Reject a consent if it is in the `AwaitingAuthorisation` state or any error occurs while the consent is being authorised.
        - Revoke a consent if it is in the `Authorised` state.

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
      operationId: DeleteAccountAccessConsentsConsentId
      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:
        '204':
          description: Account Access Consent Deleted
          headers:
            x-fapi-interaction-id:
              description: An [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) UUID used as a correlation ID.
              schema:
                type: string
        '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'
  /accounts:
    get:
      tags:
        - Accounts
      summary: Retrieve all accounts
      security:
        - AccessToken:
            - accounts
      description: |-
        Get a list of user accounts.

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information#6-get-the-list-of-accounts).
      operationId: GetAccounts
      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-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: Accounts Read
          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:
                $ref: '#/components/schemas/OBReadAccount3'
              examples:
                uk-accounts:
                  summary: UK Accounts
                  value:
                    Data:
                      Account:
                        - AccountId: d3779729-xxxx-xxxx-bb43-fb5159b7c166
                          Currency: GBP
                          AccountType: Personal
                          AccountSubType: CurrentAccount
                          Account:
                            - SchemeName: UK.OBIE.IBAN
                              Identification: GB95REVO00997053872360
                              Name: John Smith
                            - SchemeName: UK.OBIE.SortCodeAccountNumber
                              Identification: '00000001611667'
                              Name: John Smith
                    Links:
                      Self: https://oba-auth.revolut.com/accounts
                    Meta:
                      TotalPages: 1
                savings-account:
                  summary: Savings Account
                  value:
                    Data:
                      Account:
                        - AccountId: be2249e6-xxxx-xxxx-b9d1-0242ac120002
                          Currency: GBP
                          AccountType: Personal
                          AccountSubType: Savings
                          Account:
                            - SchemeName: UK.Revolut.InternalAccountId
                              Identification: be2249e6-xxxx-xxxx-b9d1-0242ac120002
                              Name: John Smith
                    Links:
                      Self: https://oba-auth.revolut.com/accounts
                    Meta:
                      TotalPages: 1
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '401':
          description: |-
            Unauthorized

            Returned when the access token has expired or is invalid, for example, when the consent has been revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                consent_revoked:
                  $ref: '#/components/examples/Error401InvalidRevokedOrExpiredToken'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                sca_expired:
                  $ref: '#/components/examples/Error403ForbiddenAccess'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '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'
  /accounts/{AccountId}:
    get:
      tags:
        - Accounts
      summary: Retrieve an account
      security:
        - AccessToken:
            - accounts
      description: |-
        Get the information about a specific account by ID.

        :::note
        In compliance with PSD2 SCA regulations, access to this endpoint is only allowed within the first 5 minutes after the Revolut user has authorised the consent.
        After those 5 minutes, access to this endpoint is denied, and an HTTP `403` error is returned.
        :::

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
      operationId: GetAccountsAccountId
      parameters:
        - name: AccountId
          in: path
          description: The ID of the account.
          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: Accounts Read
          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:
                $ref: '#/components/schemas/OBReadAccount3'
              examples:
                uk-accounts:
                  summary: UK Accounts
                  value:
                    Data:
                      Account:
                        - AccountId: d3779729-xxxx-xxxx-bb43-fb5159b7c166
                          Currency: GBP
                          AccountType: Personal
                          AccountSubType: CurrentAccount
                          Account:
                            - SchemeName: UK.OBIE.IBAN
                              Identification: GB95REVO00997053872360
                              Name: John Smith
                            - SchemeName: UK.OBIE.SortCodeAccountNumber
                              Identification: '00000001611667'
                              Name: John Smith
                    Links:
                      Self: https://oba-auth.revolut.com/accounts/d3779729-xxxx-xxxx-bb43-fb5159b7c166
                    Meta:
                      TotalPages: 1
                savings-account:
                  summary: Savings Account
                  value:
                    Data:
                      Account:
                        - AccountId: be2249e6-xxxx-xxxx-b9d1-0242ac120002
                          Currency: GBP
                          AccountType: Personal
                          AccountSubType: Savings
                          Account:
                            - SchemeName: UK.Revolut.InternalAccountId
                              Identification: be2249e6-xxxx-xxxx-b9d1-0242ac120002
                              Name: John Smith
                    Links:
                      Self: https://oba-auth.revolut.com/accounts/be2249e6-xxxx-xxxx-b9d1-0242ac120002
                    Meta:
                      TotalPages: 1
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '401':
          description: |-
            Unauthorized

            Returned when the access token has expired or is invalid, for example, when the consent has been revoked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                consent_revoked:
                  $ref: '#/components/examples/Error401InvalidRevokedOrExpiredToken'
        '403':
          description: |-
            Forbidden

            Returned, for example, when the 5-minute [SCA](https://www.openbanking.org.uk/glossary/strong-customer-authentication/) session has expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                sca_expired:
                  $ref: '#/components/examples/Error403ForbiddenAccess'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              description: Time in seconds to wait before you make a new request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
  /accounts/{AccountId}/balances:
    get:
      tags:
        - Accounts
      summary: Retrieve an account balance
      security:
        - AccessToken:
            - accounts
      description: |-
        Get the balance of an account.

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
      operationId: GetAccountsAccountIdBalances
      parameters:
        - name: AccountId
          in: path
          description: The ID of the account.
          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: Balances Read
          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:
                $ref: '#/components/schemas/OBReadBalance1'
              example:
                Data:
                  Balance:
                    - AccountId: d3779729-xxxx-xxxx-bb43-fb5159b7c166
                      Amount:
                        Amount: '970.49'
                        Currency: GBP
                      CreditDebitIndicator: Credit
                      Type: InterimAvailable
                      DateTime: '2022-09-22T08:32:02.775972Z'
                Links:
                  Self: https://oba-auth.revolut.com/accounts/d3779729-xxxx-xxxx-bb43-fb5159b7c166/balances
                Meta:
                  TotalPages: 1
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '401':
          description: |-
            Unauthorized

            Returned, for instance, when the access token has expired or is invalid, for example, when the consent has been revoked, or when the consent lacks necessary permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                consent_revoked:
                  $ref: '#/components/examples/Error401InvalidRevokedOrExpiredToken'
                no_permissions:
                  $ref: '#/components/examples/Error401ConsentLacksPermissions'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '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'
  /accounts/{AccountId}/beneficiaries:
    get:
      tags:
        - Accounts
      summary: Retrieve all account's beneficiaries
      security:
        - AccessToken:
            - accounts
      description: |-
        Get all the beneficiaries of a specific user account.

        :::note
        In compliance with PSD2 SCA regulations, access to this endpoint is only allowed within the first 5 minutes after the Revolut user has authorised the consent.
        After those 5 minutes, access to this endpoint is denied, and an HTTP `403` error is returned.
        :::

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
      operationId: GetAccountsAccountIdBeneficiaries
      parameters:
        - name: AccountId
          in: path
          description: The ID of the account.
          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: Beneficiaries Read
          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:
                $ref: '#/components/schemas/OBReadBeneficiary3'
              example:
                Data:
                  Beneficiary:
                    - AccountId: d3779729-xxxx-xxxx-1234-fb5159b7c166
                      BeneficiaryId: 619e270c-989f-44ca-1234-a161be65d5f4
                      CreditorAccount:
                        SchemeName: UK.OBIE.SortCodeAccountNumber
                        Identification: '11223321325698'
                        Name: Receiver Co.
                Links:
                  Self: https://oba-auth.revolut.com/accounts/d3779729-xxxx-xxxx-1234-fb5159b7c166/beneficiaries
                Meta:
                  TotalPages: 1
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '401':
          description: |-
            Unauthorized

            Returned, for instance, when the access token has expired or is invalid, for example, when the consent has been revoked, or when the consent lacks necessary permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                consent_revoked:
                  $ref: '#/components/examples/Error401InvalidRevokedOrExpiredToken'
                no_permissions:
                  $ref: '#/components/examples/Error401ConsentLacksPermissions'
        '403':
          description: |-
            Forbidden

            Returned, for example, when the 5-minute [SCA](https://www.openbanking.org.uk/glossary/strong-customer-authentication/) session has expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                sca_expired:
                  $ref: '#/components/examples/Error403ForbiddenAccess'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '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'
  /accounts/{AccountId}/direct-debits:
    get:
      tags:
        - Transactions
      summary: Retrieve all account's direct debits
      security:
        - AccessToken:
            - accounts
      description: |-
        Get a list of all the direct debits for a specific user account.

        :::note
        In compliance with PSD2 SCA regulations, access to this endpoint is only allowed within the first 5 minutes after the Revolut user has authorised the consent.
        After those 5 minutes, access to this endpoint is denied, and an HTTP `403` error is returned.
        :::

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
      operationId: GetAccountsAccountIdDirectDebits
      parameters:
        - name: AccountId
          in: path
          description: The ID of the account.
          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/tutorials/get-account-and-transaction-information).
          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: Direct Debits Read
          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:
                $ref: '#/components/schemas/OBReadDirectDebit1'
              example:
                Data:
                  DirectDebit:
                    - AccountId: d48e9496-xxxx-4af1-xxxx-8b20fc362bd3
                      DirectDebitId: 631b8ea1-5678-48d1-1234-25ccba25eb40
                      MandateIdentification: a028-45ee
                      DirectDebitStatusCode: Active
                      Name: DirectDebit name
                      PreviousPaymentAmount:
                        Amount: '50.00'
                        Currency: EUR
                Links:
                  Self: https://oba-auth.revolut.com/accounts/d48e9496-xxxx-4af1-xxxx-8b20fc362bd3/direct-debits
                Meta:
                  TotalPages: 1
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '401':
          description: |-
            Unauthorized

            Returned, for instance, when the access token has expired or is invalid, for example, when the consent has been revoked, or when the consent lacks necessary permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                consent_revoked:
                  $ref: '#/components/examples/Error401InvalidRevokedOrExpiredToken'
                no_permissions:
                  $ref: '#/components/examples/Error401ConsentLacksPermissions'
        '403':
          description: |-
            Forbidden

            Returned, for example, when the 5-minute [SCA](https://www.openbanking.org.uk/glossary/strong-customer-authentication/) session has expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                sca_expired:
                  $ref: '#/components/examples/Error403ForbiddenAccess'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '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'
  /accounts/{AccountId}/standing-orders:
    get:
      tags:
        - Transactions
      summary: Retrieve all account's standing orders
      security:
        - AccessToken:
            - accounts
      description: |-
        Get a list of all the standing orders for a specific user account.

        :::note
        In compliance with PSD2 SCA regulations, access to this endpoint is only allowed within the first 5 minutes after the Revolut user has authorised the consent.
        After those 5 minutes, access to this endpoint is denied, and an HTTP `403` error is returned.
        :::

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
      operationId: GetAccountsAccountIdStandingOrders
      parameters:
        - name: AccountId
          in: path
          description: The ID of the account.
          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: Standing Orders Read
          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:
                $ref: '#/components/schemas/OBReadStandingOrder4'
              example:
                Data:
                  StandingOrder:
                    - AccountId: d48e9496-xxxx-4af1-xxxx-8b20fc362bd3
                      StandingOrderId: fb02306c-1234-4260-5678-371ea6dc6ea3
                      Frequency: EvryDay
                      Reference: Reference1234
                      FirstPaymentAmount:
                        Amount: 3.48
                        Currency: GBP
                      FirstPaymentDateTime: 2023-09-24T00:00
                      NextPaymentAmount:
                        Amount: 3.48
                        Currency: GBP
                      StandingOrderStatusCode: Active
                      CreditorAccount:
                        SchemeName: UK.OBIE.SortCodeAccountNumber
                        Identification: '11223321325698'
                        Name: Receiver Co.
                Links:
                  Self: https://oba-auth.revolut.com/accounts/d48e9496-xxxx-4af1-xxxx-8b20fc362bd3/standing-orders
                Meta:
                  TotalPages: 1
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '401':
          description: |-
            Unauthorized

            Returned, for instance, when the access token has expired or is invalid, for example, when the consent has been revoked, or when the consent lacks necessary permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                consent_revoked:
                  $ref: '#/components/examples/Error401InvalidRevokedOrExpiredToken'
                no_permissions:
                  $ref: '#/components/examples/Error401ConsentLacksPermissions'
        '403':
          description: |-
            Forbidden

            Returned, for example, when the 5-minute [SCA](https://www.openbanking.org.uk/glossary/strong-customer-authentication/) session has expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                sca_expired:
                  $ref: '#/components/examples/Error403ForbiddenAccess'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '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'
  /accounts/{AccountId}/transactions:
    get:
      tags:
        - Transactions
      summary: Retrieve all transactions
      security:
        - AccessToken:
            - accounts
      description: |
        Get all the recent transactions for an account.

        :::note
        In compliance with PSD2 SCA regulations, full transaction history can only be accessed within the first 5 minutes after the Revolut user has authorised the consent.
        After those 5 minutes, transaction history is restricted to the last 90 days counting from the moment the API request is made, and older transactions are not returned.

        Additionally, after those 5 minutes, unless the user is present and actively requesting data, you should not retrieve transaction data of an individual account more than 4 times within a 24-hour period.
        :::

        See also [Tutorials: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information).
      operationId: GetAccountsAccountIdTransactions
      parameters:
        - name: AccountId
          in: path
          description: The ID of the account.
          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: fromBookingDateTime
          in: query
          $ref: '#/components/parameters/FromBookingDateTimeParam'
        - name: toBookingDateTime
          in: query
          $ref: '#/components/parameters/ToBookingDateTimeParam'
        - 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: Transactions Read
          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:
                $ref: '#/components/schemas/OBReadTransaction4'
              examples:
                transfer-out:
                  summary: Outgoing Transfers
                  value:
                    Data:
                      Transaction:
                        - AccountId: c362263a-xxxx-xxxx-xxxx-70ee3d4fede9
                          Amount:
                            Amount: '20.54'
                            Currency: GBP
                          Balance:
                            Amount:
                              Amount: '2088.55'
                              Currency: GBP
                            CreditDebitIndicator: Credit
                            Type: InterimBooked
                          BookingDateTime: '2024-12-27T06:05:20.625880Z'
                          ValueDateTime: '2024-12-27T06:05:21.162872Z'
                          CreditDebitIndicator: Debit
                          CurrencyExchange:
                            InstructedAmount:
                              Amount: '20.54'
                              Currency: GBP
                            SourceCurrency: GBP
                            TargetCurrency: EUR
                            UnitCurrency: GBP
                            ExchangeRate: '1.07123405660663439638574742941974304'
                          CreditorAccount:
                            SchemeName: UK.OBIE.IBAN
                            Identification: LT111111111111111111
                            Name: Receiver Co.
                          DebtorAccount:
                            SchemeName: UK.OBIE.IBAN
                            Identification: GB95REVO00997053872360
                            Name: John Doe
                          ProprietaryBankTransactionCode:
                            Code: TRANSFER
                            Issuer: Revolut
                          Status: Booked
                          TransactionId: 676e43a0-a0e9-ad9a-xxxx-a0e99aea6678
                          TransactionInformation: To Receiver Co.
                          SupplementaryData:
                            UserComments: test
                        - AccountId: c362263a-xxxx-xxxx-xxxx-70ee3d4fede9
                          Amount:
                            Amount: '11.00'
                            Currency: GBP
                          Balance:
                            Amount:
                              Amount: '2109.09'
                              Currency: GBP
                            CreditDebitIndicator: Credit
                            Type: InterimBooked
                          BookingDateTime: '2024-12-27T06:01:57.925579Z'
                          ValueDateTime: '2024-12-27T06:01:58.958920Z'
                          CreditDebitIndicator: Debit
                          CreditorAccount:
                            SchemeName: UK.OBIE.SortCodeAccountNumber
                            Identification: '11223300000000'
                            Name: Receiver Co.
                          DebtorAccount:
                            SchemeName: UK.OBIE.IBAN
                            Identification: GB95REVO00997053872360
                            Name: John Doe
                          ProprietaryBankTransactionCode:
                            Code: TRANSFER
                            Issuer: Revolut
                          Status: Booked
                          TransactionId: 67972281-bed3-a4dc-xxxx-81447ebe5717
                          TransactionInformation: To Water Company LIMITED
                          SupplementaryData:
                            UserComments: Some other test 2
                    Links:
                      Self: https://oba-auth.revolut.com/accounts/c362263a-xxxx-xxxx-xxxx-70ee3d4fede9/transactions?toBookingDateTime=2024-12-27T06:05:21.259576Z'
                      Next: https://oba-auth.revolut.com/accounts/c362263a-xxxx-xxxx-xxxx-70ee3d4fede9/transactions?fromBookingDateTime=2024-10-30T15:28:17.173&toBookingDateTime=2024-12-25T06:09:34.558291'
                    Meta: {}
                transfer-in:
                  summary: Incoming Transfer
                  value:
                    Data:
                      Transaction:
                        - AccountId: c362263a-xxxx-xxxx-xxxx-70ee3d4fede9
                          Amount:
                            Amount: '12.00'
                            Currency: GBP
                          Balance:
                            Amount:
                              Amount: '10122.55'
                              Currency: GBP
                            CreditDebitIndicator: Credit
                            Type: InterimBooked
                          BookingDateTime: '2024-12-27T06:05:20.625880Z'
                          ValueDateTime: '2024-12-27T06:05:21.162872Z'
                          CreditDebitIndicator: Credit
                          CreditorAccount:
                            SchemeName: UK.OBIE.IBAN
                            Identification: GB95REVO00997053872360
                            Name: John Doe
                          DebtorAccount:
                            SchemeName: UK.OBIE.IBAN
                            Identification: LT111111111111111111
                            Name: World Co.
                          ProprietaryBankTransactionCode:
                            Code: TRANSFER
                            Issuer: Revolut
                          Status: Booked
                          TransactionId: 677fca51-9299-add5-xxxx-e8d5492991ac
                          TransactionInformation: From World Co.
                          SupplementaryData:
                            UserComments: Reference A11002D
                    Links:
                      Self: https://oba-auth.revolut.com/accounts/c362263a-xxxx-xxxx-xxxx-70ee3d4fede9/transactions?toBookingDateTime=2024-12-27T06:05:21.259576Z'
                      Next: https://oba-auth.revolut.com/accounts/c362263a-xxxx-xxxx-xxxx-70ee3d4fede9/transactions?fromBookingDateTime=2024-10-30T15:28:17.173&toBookingDateTime=2024-12-25T06:09:34.558291'
                    Meta: {}
                exchange:
                  summary: Foreign Exchange
                  value:
                    Data:
                      Transaction:
                        - AccountId: c362263a-xxxx-xxxx-xxxx-70ee3d4fede9
                          Amount:
                            Amount: '2.21'
                            Currency: EUR
                          Balance:
                            Amount:
                              Amount: '24.48'
                              Currency: EUR
                            CreditDebitIndicator: Credit
                            Type: InterimBooked
                          BookingDateTime: '2024-12-27T06:05:20.625880Z'
                          ValueDateTime: '2024-12-27T06:05:21.162872Z'
                          CreditDebitIndicator: Credit
                          CurrencyExchange:
                            InstructedAmount:
                              Amount: '2.21'
                              Currency: EUR
                            SourceCurrency: GBP
                            TargetCurrency: EUR
                            UnitCurrency: GBP
                            ExchangeRate: '1.1072646654'
                          ProprietaryBankTransactionCode:
                            Code: EXCHANGE
                            Issuer: Revolut
                          Status: Booked
                          TransactionId: 12345678-af30-a241-xxxx-ad09076be3b1
                          TransactionInformation: To EUR
                    Links:
                      Self: https://oba-auth.revolut.com/accounts/c362263a-xxxx-xxxx-xxxx-70ee3d4fede9/transactions?toBookingDateTime=2024-12-27T06:05:21.259576Z'
                      Next: https://oba-auth.revolut.com/accounts/c362263a-xxxx-xxxx-xxxx-70ee3d4fede9/transactions?fromBookingDateTime=2024-10-30T15:28:17.173&toBookingDateTime=2024-12-25T06:09:34.558291'
                    Meta: {}
                card-payment:
                  summary: Card payment
                  value:
                    Data:
                      Transaction:
                        - AccountId: dab95f8b-xxxx-xxxx-xxxx-8129e75c789f
                          Amount:
                            Amount: '12.34'
                            Currency: GBP
                          BookingDateTime: '2024-12-26T09:32:15.111112Z'
                          CreditDebitIndicator: Debit
                          MerchantDetails:
                            MerchantName: John-Lewis Direct
                          ProprietaryBankTransactionCode:
                            Code: CARD_PAYMENT
                            Issuer: Revolut
                          Status: Pending
                          TransactionId: 67a4819f-f349-a1a3-xxxx-e2835336f69c
                          TransactionInformation: John-Lewis Direct
                          SupplementaryData:
                            StartedDate: '2024-12-25T11:23:04.322739Z'
                          CardInstrument:
                            Identification: '2252'
                            CardSchemeName: MASTERCARD
                            Name: Anna Gloss
                    Links:
                      Self: https://oba-auth.revolut.com/accounts/c362263a-xxxx-xxxx-xxxx-70ee3d4fede9/transactions?toBookingDateTime=2024-12-27T06:05:21.259576Z'
                      Next: https://oba-auth.revolut.com/accounts/c362263a-xxxx-xxxx-xxxx-70ee3d4fede9/transactions?fromBookingDateTime=2024-10-30T15:28:17.173&toBookingDateTime=2024-12-25T06:09:34.558291'
                    Meta: {}
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '401':
          description: |-
            Unauthorized

            Returned, for instance, when the access token has expired or is invalid, for example, when the consent has been revoked, or when the consent lacks necessary permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                consent_revoked:
                  $ref: '#/components/examples/Error401InvalidRevokedOrExpiredToken'
                no_permissions:
                  $ref: '#/components/examples/Error401ConsentLacksPermissions'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
        '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'
  /domestic-payment-consents:
    post:
      tags:
        - Domestic payment
      summary: Create a domestic payment consent
      security:
        - AccessToken:
            - payments
          JWS:
            - payments
      description: |-
        Create a domestic 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 domestic payments for local payments in the local currency of the user.

        :::note
        Revolut supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries.
        :::

        Because Revolut Business users can have multiple accounts in the same currency, they can choose which account they want to be charged in the consent authorization UI.

        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: CreateDomesticPaymentConsents
      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/OBWriteDomesticConsent2'
            example:
              Data:
                Initiation:
                  InstructionIdentification: ID412
                  EndToEndIdentification: E2E123
                  InstructedAmount:
                    Amount: '10.0'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
                  RemittanceInformation:
                    Unstructured: Shipment fee
              Risk:
                PaymentContextCode: EcommerceGoods
                MerchantCategoryCode: '5967'
                MerchantCustomerIdentification: '1238808123123'
                DeliveryAddress:
                  AddressLine:
                    - '7'
                  StreetName: Apple Street
                  BuildingNumber: '1'
                  PostCode: E2 7AA
                  TownName: London
                  Country: UK
        required: true
      responses:
        '201':
          description: Domestic 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/OBWriteDomesticConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-23T08:34:43.275221Z'
                  CreationDateTime: '2022-09-23T08:34:43.275221Z'
                  ConsentId: 0d4b6692-xxxx-4938-xxxx-99e125231cf9
                  Initiation:
                    InstructionIdentification: ID412
                    EndToEndIdentification: E2E123
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    CreditorAccount:
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                      Name: Receiver Co.
                    RemittanceInformation:
                      Unstructured: Shipment fee
                Risk:
                  PaymentContextCode: EcommerceGoods
                  MerchantCategoryCode: '5967'
                  MerchantCustomerIdentification: '1238808123123'
                  DeliveryAddress:
                    AddressLine:
                      - '7'
                    StreetName: Apple Street
                    BuildingNumber: '1'
                    PostCode: E2 7AA
                    TownName: London
                    Country: UK
                Links:
                  Self: https://oba-auth.revolut.com/domestic-payment-consents/0d4b6692-xxxx-4938-xxxx-99e125231cf9
                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: OBWriteDomesticConsent2Param
  /domestic-payment-consents/{ConsentId}:
    get:
      tags:
        - Domestic payment
      summary: Retrieve a domestic payment consent
      security:
        - AccessToken:
            - payments
      description: |-
        Get the details of a domestic payment consent.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment).
      operationId: GetDomesticPaymentConsentsConsentId
      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: Domestic 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/OBWriteDomesticConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-23T08:34:43.275221Z'
                  CreationDateTime: '2022-09-23T08:34:43.275221Z'
                  ConsentId: 0d4b6692-xxxx-4938-xxxx-99e125231cf9
                  Initiation:
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    RemittanceInformation:
                      Unstructured: Shipment fee
                    EndToEndIdentification: E2E123
                    InstructionIdentification: ID412
                Risk:
                  DeliveryAddress:
                    Country: UK
                    PostCode: E2 7AA
                    TownName: London
                    StreetName: Apple Street
                    AddressLine:
                      - '7'
                    BuildingNumber: '1'
                  PaymentContextCode: EcommerceGoods
                  MerchantCategoryCode: '5967'
                  MerchantCustomerIdentification: '1238808123123'
                Links:
                  Self: https://oba-auth.revolut.com/domestic-payment-consents/0d4b6692-xxxx-4938-xxxx-99e125231cf9
                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'
  /domestic-payment-consents/{ConsentId}/funds-confirmation:
    get:
      tags:
        - Domestic payment
      summary: Get funds confirmation for a domestic payment consent
      security:
        - AccessToken:
            - payments
      description: |-
        Check the funds for a domestic 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: GetDomesticPaymentConsentsConsentIdFundsConfirmation
      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: Domestic Payment Consents Funds Confirmation 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-23T09:08:27.508922Z'
                    FundsAvailable: true
                Links:
                  Self: https://oba-auth.revolut.com/domestic-payment-consents/e3884854-be36-xxxx-xxxx-9ce807ab1335/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'
  /domestic-payments:
    post:
      tags:
        - Domestic payment
      summary: Create a domestic payment
      security:
        - AccessToken:
            - payments
          JWS:
            - payments
      description: |-
        Create a domestic 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: CreateDomesticPayments
      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/OBWriteDomestic2'
            example:
              Data:
                ConsentId: ec62477b-xxxx-41e2-xxxx-4d760c425a3e
                Initiation:
                  InstructionIdentification: ID412
                  EndToEndIdentification: E2E123
                  InstructedAmount:
                    Amount: '10.0'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
                  RemittanceInformation:
                    Unstructured: Shipment fee
              Risk:
                PaymentContextCode: EcommerceGoods
                MerchantCategoryCode: '5967'
                MerchantCustomerIdentification: '1238808123123'
                DeliveryAddress:
                  AddressLine:
                    - '7'
                  StreetName: Apple Street
                  BuildingNumber: '1'
                  PostCode: E2 7AA
                  TownName: London
                  Country: UK
        required: true
      responses:
        '201':
          description: Domestic Payment 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/OBWriteDomesticResponse2'
              examples:
                Pending:
                  value:
                    Data:
                      ConsentId: ec62477b-xxxx-41e2-xxxx-4d760c425a3e
                      CreationDateTime: '2022-09-23T14:57:45.899155Z'
                      DomesticPaymentId: 632dc969-xxxx-ae29-xxxx-50cefc4ceae7
                      Initiation:
                        CreditorAccount:
                          Identification: '11223321325698'
                          Name: Receiver Co.
                          SchemeName: UK.OBIE.SortCodeAccountNumber
                        EndToEndIdentification: E2E123
                        InstructedAmount:
                          Amount: '10.0'
                          Currency: GBP
                        InstructionIdentification: ID412
                        RemittanceInformation:
                          Unstructured: Shipment fee
                        DebtorAccount:
                          SchemeName: UK.OBIE.IBAN
                          Identification: GB95REVO00997053872360
                          Name: John Doe
                      Status: Pending
                      StatusUpdateDateTime: '2022-09-23T14:57:45.899155Z'
                    Links:
                      Self: https://oba-auth.revolut.com/domestic-payments/632dc969-xxxx-ae29-xxxx-50cefc4ceae7
                    Meta:
                      TotalPages: 1
                AcceptedSettlementInProcess:
                  value:
                    Data:
                      ConsentId: ec62477b-xxxx-41e2-xxxx-4d760c425a3e
                      CreationDateTime: '2022-09-23T14:57:45.899155Z'
                      DomesticPaymentId: 632dc969-xxxx-ae29-xxxx-50cefc4ceae7
                      Initiation:
                        CreditorAccount:
                          Identification: '11223321325698'
                          Name: Receiver Co.
                          SchemeName: UK.OBIE.SortCodeAccountNumber
                        EndToEndIdentification: E2E123
                        InstructedAmount:
                          Amount: '10.0'
                          Currency: GBP
                        InstructionIdentification: ID412
                        RemittanceInformation:
                          Unstructured: Shipment fee
                        DebtorAccount:
                          SchemeName: UK.OBIE.IBAN
                          Identification: GB95REVO00997053872360
                          Name: John Doe
                      Status: AcceptedSettlementInProcess
                      StatusUpdateDateTime: '2022-09-23T14:57:45.899155Z'
                    Links:
                      Self: https://oba-auth.revolut.com/domestic-payments/632dc969-xxxx-ae29-xxxx-50cefc4ceae7
                    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: OBWriteDomestic2Param
  /domestic-payments/{DomesticPaymentId}:
    get:
      tags:
        - Domestic payment
      summary: Retrieve a domestic payment
      security:
        - AccessToken:
            - payments
      description: |-
        Get the status of a domestic payment.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment#7-check-the-status-of-the-payment).
      operationId: GetDomesticPaymentsDomesticPaymentId
      parameters:
        - name: DomesticPaymentId
          in: path
          description: The ID of the domestic payment.
          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: Domestic Payments 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/OBWriteDomesticResponse2'
              examples:
                Pending:
                  value:
                    Data:
                      DomesticPaymentId: 632dce07-xxxx-xxxx-9950-6614f70f0009
                      Status: Pending
                      StatusUpdateDateTime: '2022-09-23T15:17:27.904903Z'
                      CreationDateTime: '2022-09-23T15:17:27.904903Z'
                      ConsentId: e6c8ea6c-xxxx-42ec-xxxx-aeab34c33f4a
                      Initiation:
                        CreditorAccount:
                          Name: Receiver Co.
                          SchemeName: UK.OBIE.SortCodeAccountNumber
                          Identification: '11223321325698'
                        DebtorAccount:
                          SchemeName: UK.OBIE.IBAN
                          Identification: GB95REVO00997053872360
                          Name: John Doe
                        InstructedAmount:
                          Amount: '10.0'
                          Currency: GBP
                        RemittanceInformation:
                          Unstructured: Shipment fee
                        EndToEndIdentification: E2E123
                        InstructionIdentification: ID412
                    Links:
                      Self: https://oba-auth.revolut.com/domestic-payments/632dce07-xxxx-xxxx-9950-6614f70f0009
                    Meta:
                      TotalPages: 1
                AcceptedSettlementInProcess:
                  value:
                    Data:
                      DomesticPaymentId: 632dce07-xxxx-xxxx-9950-6614f70f0009
                      Status: AcceptedSettlementInProcess
                      StatusUpdateDateTime: '2022-09-23T15:17:28.924522Z'
                      CreationDateTime: '2022-09-23T15:17:27.904903Z'
                      ConsentId: e6c8ea6c-xxxx-42ec-xxxx-aeab34c33f4a
                      Initiation:
                        CreditorAccount:
                          Name: Receiver Co.
                          SchemeName: UK.OBIE.SortCodeAccountNumber
                          Identification: '11223321325698'
                        InstructedAmount:
                          Amount: '10.0'
                          Currency: GBP
                        RemittanceInformation:
                          Unstructured: Shipment fee
                        EndToEndIdentification: E2E123
                        InstructionIdentification: ID412
                    Links:
                      Self: https://oba-auth.revolut.com/domestic-payments/632dce07-xxxx-xxxx-9950-6614f70f0009
                    Meta:
                      TotalPages: 1
                AcceptedSettlementCompleted:
                  value:
                    Data:
                      DomesticPaymentId: 632dce07-xxxx-xxxx-9950-6614f70f0009
                      Status: AcceptedSettlementCompleted
                      StatusUpdateDateTime: '2022-09-23T15:17:31.965961Z'
                      CreationDateTime: '2022-09-23T15:17:27.904903Z'
                      ConsentId: e6c8ea6c-xxxx-42ec-xxxx-aeab34c33f4a
                      Initiation:
                        CreditorAccount:
                          Name: Receiver Co.
                          SchemeName: UK.OBIE.SortCodeAccountNumber
                          Identification: '11223321325698'
                        InstructedAmount:
                          Amount: '10.0'
                          Currency: GBP
                        RemittanceInformation:
                          Unstructured: Shipment fee
                        EndToEndIdentification: E2E123
                        InstructionIdentification: ID412
                    Links:
                      Self: https://oba-auth.revolut.com/domestic-payments/632dce07-xxxx-xxxx-9950-6614f70f0009
                    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'
  /domestic-scheduled-payment-consents:
    post:
      tags:
        - Domestic scheduled payment
      summary: Create a domestic scheduled payment consent
      security:
        - AccessToken:
            - payments
          JWS:
            - payments
      description: |-
        Create a scheduled payment consent as 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 domestic scheduled payments for local scheduled payments in the local currency of the user.

        :::note
        Revolut supports only GBP as local in the UK and EUR in SEPA countries.
        :::

        Because Revolut Business users can have multiple accounts in the same currency, they can select which account they want to be charged in the consent authorization UI.

        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).

        :::note
        The domestic scheduled payments API is in beta.
        :::

        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: CreateDomesticScheduledPaymentConsents
      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/OBWriteDomesticScheduledConsent2'
            example:
              Data:
                Permission: Create
                Initiation:
                  InstructionIdentification: ID412
                  EndToEndIdentification: E2E123
                  RequestedExecutionDateTime: '2023-08-24T14:15:22Z'
                  InstructedAmount:
                    Amount: '10.0'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
                  RemittanceInformation:
                    Unstructured: Shipment fee
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: Domestic Scheduled 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/OBWriteDomesticScheduledConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-23T16:24:44.538265Z'
                  CreationDateTime: '2022-09-23T16:24:44.538265Z'
                  Permission: Create
                  ConsentId: 334fxxxx-e6e8-xxxx-a823-acaf8c93a6af
                  Initiation:
                    InstructionIdentification: ID412
                    EndToEndIdentification: E2E123
                    RequestedExecutionDateTime: '2023-08-24T14:15:22Z'
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    CreditorAccount:
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                      Name: Receiver Co.
                    RemittanceInformation:
                      Unstructured: Shipment fee
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/domestic-scheduled-payment-consents/334fxxxx-e6e8-xxxx-a823-acaf8c93a6af
                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: OBWriteDomesticScheduledConsent2Param
  /domestic-scheduled-payment-consents/{ConsentId}:
    get:
      tags:
        - Domestic scheduled payment
      summary: Retrieve a domestic scheduled payment consent
      security:
        - AccessToken:
            - payments
      description: |-
        Get the details of a domestic scheduled payment consent.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment).
      operationId: GetDomesticScheduledPaymentConsentsConsentId
      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>.

            See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment).
          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: Domestic Scheduled 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/OBWriteDomesticScheduledConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-23T16:30:48.724988Z'
                  CreationDateTime: '2022-09-23T16:30:48.724988Z'
                  Permission: Create
                  ConsentId: 9709f508-xxxx-44bd-xxxx-94cb8d574d2f
                  Initiation:
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    RemittanceInformation:
                      Unstructured: Shipment fee
                    EndToEndIdentification: E2E123
                    InstructionIdentification: ID412
                    RequestedExecutionDateTime: '2023-08-24T14:15:22Z'
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/domestic-scheduled-payment-consents/9709f508-xxxx-44bd-xxxx-94cb8d574d2f
                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'
  /domestic-scheduled-payments:
    post:
      tags:
        - Domestic scheduled payment
      summary: Create a domestic scheduled payment
      security:
        - AccessToken:
            - payments
          JWS:
            - payments
      description: |
        Create a domestic scheduled 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: CreateDomesticScheduledPayments
      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/OBWriteDomesticScheduled2'
            example:
              Data:
                ConsentId: 9709f508-xxxx-44bd-xxxx-94cb8d574d2f
                Initiation:
                  InstructionIdentification: ID412
                  EndToEndIdentification: E2E123
                  RequestedExecutionDateTime: '2023-08-24T14:15:22Z'
                  InstructedAmount:
                    Amount: '10.0'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
                  RemittanceInformation:
                    Unstructured: Shipment fee
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: Domestic Scheduled 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/OBWriteDomesticScheduledResponse2'
              example:
                Data:
                  ConsentId: 163cefc8-830b-xxxx-xxxx-34022a19a556
                  CreationDateTime: '2022-09-23T16:36:48.416214Z'
                  DomesticScheduledPaymentId: 12345678-xxxx-422b-9270-482770c42379
                  Initiation:
                    CreditorAccount:
                      Identification: '11223321325698'
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                    EndToEndIdentification: E2E123
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    InstructionIdentification: ID412
                    RemittanceInformation:
                      Unstructured: Shipment fee
                    RequestedExecutionDateTime: '2023-08-24T14:15:22Z'
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                  Permission: Create
                  Status: InitiationPending
                  StatusUpdateDateTime: '2022-09-23T16:36:48.416214Z'
                Links:
                  Self: https://oba-auth.revolut.com/domestic-scheduled-payments/12345678-xxxx-422b-9270-482770c42379
                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: OBWriteDomesticScheduled2Param
  /domestic-scheduled-payments/{DomesticScheduledPaymentId}:
    get:
      tags:
        - Domestic scheduled payment
      summary: Retrieve a domestic scheduled payment
      security:
        - AccessToken:
            - payments
      description: |-
        Get the status of a domestic scheduled payment.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment#7-check-the-status-of-the-payment).
      operationId: GetDomesticScheduledPaymentsDomesticScheduledPaymentId
      parameters:
        - name: DomesticScheduledPaymentId
          in: path
          description: The ID of the domestic scheduled payment.
          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: Domestic Scheduled Payments 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/OBWriteDomesticScheduledResponse2'
              example:
                Data:
                  Status: InitiationPending
                  StatusUpdateDateTime: '2022-09-23T16:36:48.416214Z'
                  CreationDateTime: '2022-09-23T16:36:48.416214Z'
                  Permission: Create
                  DomesticScheduledPaymentId: 12345678-xxxx-422b-9270-482770c42379
                  ConsentId: 163cefc8-830b-xxxx-xxxx-34022a19a556
                  Initiation:
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    RemittanceInformation:
                      Unstructured: Shipment fee
                    EndToEndIdentification: E2E123
                    InstructionIdentification: ID412
                    RequestedExecutionDateTime: '2023-08-24T14:15:22Z'
                Links:
                  Self: https://oba-auth.revolut.com/domestic-scheduled-payments/12345678-xxxx-422b-9270-482770c42379
                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'
  /domestic-standing-order-consents:
    post:
      tags:
        - Domestic standing order
      summary: Create a domestic standing order consent
      security:
        - AccessToken:
            - payments
          JWS:
            - payments
      description: |-
        Create a domestic standing order 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 domestic standing orders for local recurring payments in the local currency of the user.

        :::note
        Revolut supports only GBP as local in the UK and EUR in Single Euro Payments Area (SEPA) countries.
        :::

        Because Revolut Business users can have multiple accounts in the same currency, they can choose which account they want to be charged in the consent authorization UI.

        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).


        The following types of standing orders frequency are supported:

        |  FREQUENCY |  EXAMPLE | DETAILS  |
        |---|---|---|
        |  `EvryDay` | EvryDay  | daily, supported only for personal accounts  |
        | `IntrvlWkDay`  | IntrvlWkDay:01:03  | weekly on a specified week day, only 1 week interval is supported  |
        | `IntrvlMnthDay`  | IntrvlMnthDay:01:03  |  monthly on a specified day of month, only 1 month interval is supported |

        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: CreateDomesticStandingOrderConsents
      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/OBWriteDomesticStandingOrderConsent2'
            example:
              Data:
                Permission: Create
                Initiation:
                  Frequency: EvryDay
                  Reference: Reference1234
                  FirstPaymentDateTime: '2022-09-23T14:15:22Z'
                  FirstPaymentAmount:
                    Amount: '1.00'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: Domestic Standing Order 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/OBWriteDomesticStandingOrderConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-23T17:29:11.18491Z'
                  CreationDateTime: '2022-09-23T17:29:11.18491Z'
                  Permission: Create
                  ConsentId: a8987204-xxxx-4c26-xxxx-f7a3effea6f3
                  Initiation:
                    Frequency: EvryDay
                    Reference: Reference1234
                    FirstPaymentDateTime: '2022-09-24T14:15:22Z'
                    FirstPaymentAmount:
                      Amount: '1.00'
                      Currency: GBP
                    CreditorAccount:
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                      Name: Receiver Co.
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/domestic-standing-order-consents/a8987204-xxxx-4c26-xxxx-f7a3effea6f3
                Meta:
                  TotalPages: 1
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              examples:
                FirstPaymentDateTime-and-Frequency-mismatch:
                  summary: Unsupported frequency - FirstPaymentDateTime and Frequency date mismatch
                  value:
                    Code: 400 Bad Request
                    Message: Invalid request parameters
                    Id: 2CIH72EKKPW2
                    Errors:
                      - ErrorCode: UK.OBIE.Field.Invalid
                        Message: Unsupported frequency
                FirstPaymentDateTime-in-the-past:
                  summary: FirstPaymentDateTime is in the past
                  value:
                    Code: 400 Bad Request
                    Message: Invalid request parameters
                    Id: S62D6M5AC9DZ
                    Errors:
                      - ErrorCode: UK.OBIE.Field.Invalid
                        Message: FirstPaymentDateTime has to be in the future
        '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: OBWriteDomesticStandingOrderConsent2Param
  /domestic-standing-order-consents/{ConsentId}:
    get:
      tags:
        - Domestic standing order
      summary: Retrieve a domestic standing order consent
      security:
        - AccessToken:
            - payments
      description: |-
        Get the details of a domestic standing order consent.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment).
      operationId: GetDomesticStandingOrderConsentsConsentId
      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: Domestic Standing Order 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/OBWriteDomesticStandingOrderConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-23T17:29:11.18491Z'
                  CreationDateTime: '2022-09-23T17:29:11.18491Z'
                  Permission: Create
                  ConsentId: a8987204-xxxx-4c26-xxxx-f7a3effea6f3
                  Initiation:
                    Frequency: EvryDay
                    Reference: Reference1234
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    FirstPaymentAmount:
                      Amount: '1.00'
                      Currency: GBP
                    FirstPaymentDateTime: '2022-09-24T14:15:22Z'
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/domestic-standing-order-consents/a8987204-xxxx-4c26-xxxx-f7a3effea6f3
                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'
  /domestic-standing-orders:
    post:
      tags:
        - Domestic standing order
      summary: Create a domestic standing order
      security:
        - AccessToken:
            - payments
          JWS:
            - payments
      description: |
        Create a domestic standing order.

        :::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: CreateDomesticStandingOrders
      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/OBWriteDomesticStandingOrder2'
            example:
              Data:
                ConsentId: a8987204-xxxx-4c26-xxxx-f7a3effea6f3
                Initiation:
                  Frequency: EvryDay
                  Reference: Reference1234
                  FirstPaymentDateTime: '2022-09-24T14:15:22Z'
                  FirstPaymentAmount:
                    Amount: '1.00'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: Domestic Standing Orders 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/OBWriteDomesticStandingOrderResponse2'
              example:
                Data:
                  ConsentId: a8987204-xxxx-4c26-xxxx-f7a3effea6f3
                  CreationDateTime: '2022-09-23T17:37:46.190063Z'
                  DomesticStandingOrderId: 4c31965f-3de0-xxxx-8946-2f4f0e50dcda
                  Initiation:
                    CreditorAccount:
                      Identification: '11223321325698'
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                    FirstPaymentAmount:
                      Amount: '1.00'
                      Currency: GBP
                    FirstPaymentDateTime: '2022-09-24T14:15:22Z'
                    Frequency: EvryDay
                    Reference: Reference1234
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                  Permission: Create
                  Status: InitiationCompleted
                  StatusUpdateDateTime: '2022-09-23T17:37:46.190063Z'
                Links:
                  Self: https://oba-auth.revolut.com/domestic-standing-orders/4c31965f-3de0-xxxx-8946-2f4f0e50dcda
                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: OBWriteDomesticStandingOrder2Param
  /domestic-standing-orders/{DomesticStandingOrderId}:
    get:
      tags:
        - Domestic standing order
      summary: Retrieve a domestic standing order
      security:
        - AccessToken:
            - payments
      description: |-
        Get the status of a domestic standing order.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment#7-check-the-status-of-the-payment).
      operationId: GetDomesticStandingOrdersDomesticStandingOrderId
      parameters:
        - name: DomesticStandingOrderId
          in: path
          description: The ID of the domestic standing order.
          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: Domestic Standing Orders 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) UID used as a correlation id.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBWriteDomesticStandingOrderResponse2'
              example:
                Data:
                  Status: InitiationCompleted
                  StatusUpdateDateTime: '2022-09-23T17:37:46.190063Z'
                  CreationDateTime: '2022-09-23T17:37:46.190063Z'
                  Permission: Create
                  DomesticStandingOrderId: 4c31965f-3de0-xxxx-8946-2f4f0e50dcda
                  ConsentId: a8987204-xxxx-4c26-xxxx-f7a3effea6f3
                  Initiation:
                    Frequency: EvryDay
                    Reference: Reference1234
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                    FirstPaymentAmount:
                      Amount: '1.00'
                      Currency: GBP
                    FirstPaymentDateTime: '2022-09-24T14:15:22Z'
                Links:
                  Self: https://oba-auth.revolut.com/domestic-standing-orders/4c31965f-3de0-xxxx-8946-2f4f0e50dcda
                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}:
    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/{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
                  FileHash: 7YuW8NQJ78/cHthltcqeJdJKX3BlATBS92IzoBXqQz0=
                  FileReference: reference1234
        required: true
      responses:
        '201':
          description: File 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/OBWriteFileResponse2'
              example:
                Data:
                  ConsentId: 7ffe4969-1234-1234-acab-d24e89855fdd
                  CreationDateTime: '2022-10-12T14:06:27.883606Z'
                  FilePaymentId: 6036c4d7-b311-xxxx-xxxx-b37a0a1395e0
                  Initiation:
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                    FileHash: 7YuW8NQJ78/cHthltcqeJd1234BlATBS92IzoBXqQz0=
                    FileReference: reference1234
                    FileType: text/csv
                  Status: InitiationCompleted
                  StatusUpdateDateTime: '2022-10-12T14:06:27.883606Z'
                Links:
                  Self: https://oba-auth.revolut.com/file-payments/6036c4d7-b311-xxxx-xxxx-b37a0a1395e0
                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: OBWriteFile2Param
  /file-payments/{FilePaymentId}:
    get:
      tags:
        - File payment
      summary: Retrieve a file payment
      security:
        - AccessToken:
            - payments
      description: |-
        Get the state of a file payment.

        For more information, see [Tutorials: Create a file payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-a-file-payment#10-check-the-file-payment-status).
      operationId: GetFilePaymentsFilePaymentId
      parameters:
        - name: FilePaymentId
          in: path
          description: The ID of the file payment.
          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 Payments 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/OBWriteFileResponse2'
              example:
                Data:
                  Status: InitiationCompleted
                  StatusUpdateDateTime: '2022-10-12T14:06:28.48358Z'
                  CreationDateTime: '2022-10-12T14:06:27.883606Z'
                  FilePaymentId: 6036c4d7-b311-xxxx-xxxx-b37a0a1395e0
                  ConsentId: 7ffe4969-1234-1234-acab-d24e89855fdd
                  Initiation:
                    FileHash: 7YuW8NQJ78/cHthltcqeJd1234BlATBS92IzoBXqQz0=
                    FileType: text/csv
                    FileReference: reference1234
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                Links:
                  Self: https://oba-auth.revolut.com/file-payments/6036c4d7-b311-xxxx-xxxx-b37a0a1395e0
                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-payments/{FilePaymentId}/report-file:
    get:
      tags:
        - File payment
      summary: Retrieve all payments of a file payment
      security:
        - AccessToken:
            - payments
      description: |
        Get the state of all individual payments for the given file payment.

        :::note
        Currently only the `JSON` format is supported.
        :::

        For more information, see [Tutorials: Create a file payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-a-file-payment#11-check-the-status-of-all-payments).
      operationId: GetFilePaymentsFilePaymentIdReportFile
      parameters:
        - name: FilePaymentId
          in: path
          description: The ID of the file payment.
          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 Payments 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/OBReportFileResponse'
              example:
                Payments:
                  - Amount:
                      Amount: '10.00'
                      Currency: GBP
                    Reference: First of my two payments in the file
                    Status: Created
                  - Amount:
                      Amount: '213.00'
                      Currency: GBP
                    Reference: Second of my two payments in the file
                    Status: Created
        '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:
            '*/*':
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
  /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:
                          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: AcceptedSettlementInProcess
                      StatusUpdateDateTime: '2022-09-26T09:29:10.152499Z'
                    Links:
                      Self: https://oba-auth.revolut.com/international-payments/633170e6-xxxx-xxxx-xxxx-e90e7f88abee
                    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: OBWriteInternational2Param
  /international-payments/{InternationalPaymentId}:
    get:
      tags:
        - International payment
      summary: Retrieve an international payment
      security:
        - AccessToken:
            - payments
      description: |-
        Get the state of an international payment.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment#7-check-the-status-of-the-payment).
      operationId: GetInternationalPaymentsInternationalPaymentId
      parameters:
        - name: InternationalPaymentId
          in: path
          description: The ID of the international payment.
          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 Payments 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/OBWriteInternationalResponse2'
              examples:
                Pending:
                  value:
                    Data:
                      Status: Pending
                      StatusUpdateDateTime: '2022-09-26T14:28:00.178343Z'
                      CreationDateTime: '2022-09-26T14:28:00.178343Z'
                      InternationalPaymentId: 12345678-6992-a81e-xxxx-01f9c376f047
                      ConsentId: dd8b3bc7-xxxx-498e-xxxx-72d31ca13970
                      Initiation:
                        CreditorAccount:
                          Name: Receiver Co.
                          SchemeName: UK.OBIE.SortCodeAccountNumber
                          Identification: '11223321325698'
                        DebtorAccount:
                          SchemeName: UK.OBIE.IBAN
                          Identification: GB95REVO00997053872360
                          Name: John Doe
                        InstructedAmount:
                          Amount: '10.0'
                          Currency: GBP
                        CurrencyOfTransfer: GBP
                        EndToEndIdentification: E2E1234
                        InstructionIdentification: Reference1234
                    Links:
                      Self: https://oba-auth.revolut.com/international-payments/12345678-6992-a81e-xxxx-01f9c376f047
                    Meta:
                      TotalPages: 1
                AcceptedSettlementInProcess:
                  value:
                    Data:
                      Status: AcceptedSettlementInProcess
                      StatusUpdateDateTime: '2022-09-26T14:28:02.127734Z'
                      CreationDateTime: '2022-09-26T14:28:00.178343Z'
                      InternationalPaymentId: 12345678-6992-a81e-xxxx-01f9c376f047
                      ConsentId: dd8b3bc7-xxxx-498e-xxxx-72d31ca13970
                      Initiation:
                        CreditorAccount:
                          Name: Receiver Co.
                          SchemeName: UK.OBIE.SortCodeAccountNumber
                          Identification: '11223321325698'
                        InstructedAmount:
                          Amount: '10.0'
                          Currency: GBP
                        CurrencyOfTransfer: GBP
                        EndToEndIdentification: E2E1234
                        InstructionIdentification: Reference1234
                    Links:
                      Self: https://oba-auth.revolut.com/international-payments/12345678-6992-a81e-xxxx-01f9c376f047
                    Meta:
                      TotalPages: 1
                AcceptedSettlementCompleted:
                  value:
                    Data:
                      Status: AcceptedSettlementCompleted
                      StatusUpdateDateTime: '2022-09-26T14:28:04.342276Z'
                      CreationDateTime: '2022-09-26T14:28:00.178343Z'
                      InternationalPaymentId: 12345678-6992-a81e-xxxx-01f9c376f047
                      ConsentId: dd8b3bc7-xxxx-498e-xxxx-72d31ca13970
                      Initiation:
                        CreditorAccount:
                          Name: Receiver Co.
                          SchemeName: UK.OBIE.SortCodeAccountNumber
                          Identification: '11223321325698'
                        InstructedAmount:
                          Amount: '10.0'
                          Currency: GBP
                        CurrencyOfTransfer: GBP
                        EndToEndIdentification: E2E1234
                        InstructionIdentification: Reference1234
                    Links:
                      Self: https://oba-auth.revolut.com/international-payments/12345678-6992-a81e-xxxx-01f9c376f047
                    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-scheduled-payment-consents:
    post:
      tags:
        - International scheduled payment
      summary: Create an international scheduled payment consent
      security:
        - AccessToken:
            - payments
      description: |
        Create an international scheduled 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 scheduled 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.

        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: CreateInternationalScheduledPaymentConsents
      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/OBWriteInternationalScheduledConsent2'
            example:
              Data:
                Permission: Create
                Initiation:
                  InstructionIdentification: Reference1234
                  EndToEndIdentification: E2E1234
                  RequestedExecutionDateTime: '2022-10-01T14:15:22Z'
                  CurrencyOfTransfer: GBP
                  InstructedAmount:
                    Amount: '10.0'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: International Scheduled 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/OBWriteInternationalScheduledConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-27T07:21:28.523356Z'
                  CreationDateTime: '2022-09-27T07:21:28.523356Z'
                  Permission: Create
                  ConsentId: 4c31ba68-aea8-xxxx-xxxx-12349fa9a975
                  Initiation:
                    InstructionIdentification: Reference1234
                    EndToEndIdentification: E2E1234
                    RequestedExecutionDateTime: '2022-10-01T14:15:22Z'
                    CurrencyOfTransfer: GBP
                    InstructedAmount:
                      Amount: '12.0'
                      Currency: GBP
                    CreditorAccount:
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                      Name: Receiver Co.
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/international-scheduled-payment-consents/4c31ba68-aea8-xxxx-xxxx-12349fa9a975
                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: OBWriteInternationalScheduledConsent2Param
  /international-scheduled-payment-consents/{ConsentId}:
    get:
      tags:
        - International scheduled payment
      summary: Retrieve an international scheduled payment consent
      security:
        - AccessToken:
            - payments
      description: |-
        Get the details of an international scheduled payment consent.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment).
      operationId: GetInternationalScheduledPaymentConsentsConsentId
      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 Scheduled 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/OBWriteInternationalScheduledConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-27T07:21:28.523356Z'
                  CreationDateTime: '2022-09-27T07:21:28.523356Z'
                  Permission: Create
                  ConsentId: 4c31ba68-aea8-xxxx-xxxx-12349fa9a975
                  Initiation:
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    InstructedAmount:
                      Amount: '12.0'
                      Currency: GBP
                    CurrencyOfTransfer: GBP
                    EndToEndIdentification: E2E1234
                    InstructionIdentification: Reference1234
                    RequestedExecutionDateTime: '2022-10-01T14:15:22Z'
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/international-scheduled-payment-consents/4c31ba68-aea8-xxxx-xxxx-12349fa9a975
                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-scheduled-payment-consents/{ConsentId}/funds-confirmation:
    get:
      tags:
        - International scheduled payment
      summary: Get funds confirmation for an international scheduled payment
      security:
        - AccessToken:
            - payments
      description: |-
        Check the funds for an international scheduled 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: GetInternationalScheduledPaymentConsentsConsentIdFundsConfirmation
      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-27T07:45:59.760463Z'
                    FundsAvailable: true
                Links:
                  Self: https://oba-auth.revolut.com/international-scheduled-payment-consents/0e3c0734-fb1c-4d9d-a275-123412341111/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-scheduled-payments:
    post:
      tags:
        - International scheduled payment
      summary: Create an international scheduled payment
      security:
        - AccessToken:
            - payments
          JWS:
            - payments
      description: |-
        Create an international scheduled 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: CreateInternationalScheduledPayments
      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/OBWriteInternationalScheduled2'
            example:
              Data:
                ConsentId: 50335ba3-xxxx-4874-xxxx-2191f1fe1114
                Initiation:
                  InstructionIdentification: Reference1234
                  EndToEndIdentification: E2E1234
                  RequestedExecutionDateTime: '2022-10-01T14:15:22Z'
                  CurrencyOfTransfer: GBP
                  InstructedAmount:
                    Amount: '12.0'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: International Scheduled 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/OBWriteInternationalScheduledResponse2'
              example:
                Data:
                  Status: InitiationPending
                  StatusUpdateDateTime: '2022-09-27T07:35:53.474112Z'
                  CreationDateTime: '2022-09-27T07:35:53.474112Z'
                  InternationalScheduledPaymentId: 12345678-a0de-466a-1234-e9fc413d0916
                  Permission: Create
                  ConsentId: 14aee295-xxxx-4147-xxxx-a397c3e5ff9d
                  Initiation:
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    InstructedAmount:
                      Amount: '12.0'
                      Currency: GBP
                    CurrencyOfTransfer: GBP
                    EndToEndIdentification: E2E1234
                    InstructionIdentification: Reference1234
                    RequestedExecutionDateTime: '2022-10-01T14:15:22Z'
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                Links:
                  Self: https://oba-auth.revolut.com/international-scheduled-payments/12345678-a0de-466a-1234-e9fc413d0916
                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: OBWriteInternationalScheduled2Param
  /international-scheduled-payments/{InternationalScheduledPaymentId}:
    get:
      tags:
        - International scheduled payment
      summary: Retrieve an international scheduled payment
      security:
        - AccessToken:
            - payments
      description: |-
        Get the status of an international scheduled payment.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment#7-check-the-status-of-the-payment).
      operationId: GetInternationalScheduledPaymentsInternationalScheduledPaymentId
      parameters:
        - name: InternationalScheduledPaymentId
          in: path
          description: The ID of the international schedule payment.
          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 Scheduled Payments 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/OBWriteInternationalScheduledResponse2'
              example:
                Data:
                  Status: InitiationPending
                  StatusUpdateDateTime: '2022-09-27T07:35:53.474112Z'
                  CreationDateTime: '2022-09-27T07:35:53.474112Z'
                  InternationalScheduledPaymentId: 12345678-a0de-466a-1234-e9fc413d0916
                  Permission: Create
                  ConsentId: 14aee295-xxxx-4147-xxxx-a397c3e5ff9d
                  Initiation:
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                    InstructedAmount:
                      Amount: '12.0'
                      Currency: GBP
                    CurrencyOfTransfer: GBP
                    EndToEndIdentification: E2E1234
                    InstructionIdentification: Reference1234
                    RequestedExecutionDateTime: '2022-10-01T14:15:22Z'
                Links:
                  Self: https://oba-auth.revolut.com/international-scheduled-payments/12345678-a0de-466a-1234-e9fc413d0916
                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-standing-order-consents:
    post:
      tags:
        - International standing order
      summary: Create an international standing order consent
      security:
        - AccessToken:
            - payments
          JWS:
            - payments
      description: |-
        Creating an international standing order 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 standing orders 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.

        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).

        :::note
        Only the following types of standing orders frequency are supported:

        |  FREQUENCY |  EXAMPLE | DETAILS  |
        |---|---|---|
        |  `EvryDay` | `EvryDay`  | daily, supported only for personal accounts  |
        | `IntrvlWkDay`  | `IntrvlWkDay:01:03`  | weekly on a specified week day, only 1 week interval is supported  |
        | `IntrvlMnthDay`  | `IntrvlMnthDay:01:03`  |  monthly on a specified day of month, only 1 month interval is supported |
        :::

        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: CreateInternationalStandingOrderConsents
      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/OBWriteInternationalStandingOrderConsent2'
            example:
              Data:
                Permission: Create
                Initiation:
                  Frequency: EvryDay
                  Reference: Reference1234
                  FirstPaymentDateTime: '2022-10-01T14:15:22Z'
                  CurrencyOfTransfer: GBP
                  InstructedAmount:
                    Amount: '10.0'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: International Standing Order 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/OBWriteInternationalStandingOrderConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-27T08:20:12.498289Z'
                  CreationDateTime: '2022-09-27T08:20:12.498289Z'
                  Permission: Create
                  ConsentId: b918fd8a-xxx-xxx-xxx-27a984683bd1
                  Initiation:
                    Frequency: EvryDay
                    Reference: Reference1234
                    FirstPaymentDateTime: '2022-10-01T14:15:22Z'
                    CurrencyOfTransfer: GBP
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    CreditorAccount:
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                      Name: Receiver Co.
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/international-standing-order-consents/b918fd8a-xxx-xxx-xxx-27a984683bd1
                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: OBWriteInternationalStandingOrderConsent2Param
  /international-standing-order-consents/{ConsentId}:
    get:
      tags:
        - International standing order
      summary: Retrieve an international standing order consent
      security:
        - AccessToken:
            - payments
      description: |-
        Get the details of an international standing order consent.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment).
      operationId: GetInternationalStandingOrderConsentsConsentId
      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 Standing Order 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/OBWriteInternationalStandingOrderConsentResponse2'
              example:
                Data:
                  Status: AwaitingAuthorisation
                  StatusUpdateDateTime: '2022-09-27T08:20:12.498289Z'
                  CreationDateTime: '2022-09-27T08:20:12.498289Z'
                  Permission: Create
                  ConsentId: b918fd8a-xxx-xxx-xxx-27a984683bd1
                  Initiation:
                    Frequency: EvryDay
                    Reference: Reference1234
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    CurrencyOfTransfer: GBP
                    FirstPaymentDateTime: '2022-10-01T14:15:22Z'
                Risk:
                  PaymentContextCode: BillPayment
                Links:
                  Self: https://oba-auth.revolut.com/international-standing-order-consents/b918fd8a-xxx-xxx-xxx-27a984683bd1
                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-standing-orders:
    post:
      tags:
        - International standing order
      summary: Create an international standing order
      security:
        - AccessToken:
            - payments
          JWS:
            - payments
      description: |
        Create an international standing order.

        :::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: CreateInternationalStandingOrders
      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/OBWriteInternationalStandingOrder2'
            example:
              Data:
                ConsentId: b918fd8a-xxx-xxx-xxx-27a984683bd1
                Initiation:
                  Frequency: EvryDay
                  Reference: Reference1234
                  FirstPaymentDateTime: '2022-10-01T14:15:22Z'
                  CurrencyOfTransfer: GBP
                  InstructedAmount:
                    Amount: '12.0'
                    Currency: GBP
                  CreditorAccount:
                    SchemeName: UK.OBIE.SortCodeAccountNumber
                    Identification: '11223321325698'
                    Name: Receiver Co.
              Risk:
                PaymentContextCode: BillPayment
        required: true
      responses:
        '201':
          description: International Standing Orders 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/OBWriteInternationalStandingOrderResponse2'
              example:
                Data:
                  ConsentId: b918fd8a-xxx-xxx-xxx-27a984683bd1
                  CreationDateTime: '2022-09-27T08:42:10.249638Z'
                  Initiation:
                    CreditorAccount:
                      Identification: '11223321325698'
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                    CurrencyOfTransfer: GBP
                    FirstPaymentDateTime: '2022-10-01T14:15:22Z'
                    Frequency: EvryDay
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    Reference: Reference1234
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                  InternationalStandingOrderId: b3096891-1234-1234-ae1e-1c8a6fbc5874
                  Permission: Create
                  Status: InitiationCompleted
                  StatusUpdateDateTime: '2022-09-27T08:42:10.249638Z'
                Links:
                  Self: https://oba-auth.revolut.com/international-standing-orders/b3096891-1234-1234-ae1e-1c8a6fbc5874
                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: OBWriteInternationalStandingOrder2Param
  /international-standing-orders/{InternationalStandingOrderId}:
    get:
      tags:
        - International standing order
      summary: Retrieve an international standing order
      security:
        - AccessToken:
            - payments
      description: |-
        Get the status of an international standing order.

        See also [Tutorials: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment#7-check-the-status-of-the-payment).
      operationId: GetInternationalStandingOrdersInternationalStandingOrderId
      parameters:
        - name: InternationalStandingOrderId
          in: path
          description: The ID of the international standing order payment.
          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 Standing Orders 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/OBWriteInternationalStandingOrderResponse2'
              example:
                Data:
                  Status: InitiationCompleted
                  StatusUpdateDateTime: '2022-09-27T08:42:10.249638Z'
                  CreationDateTime: '2022-09-27T08:42:10.249638Z'
                  Permission: Create
                  InternationalStandingOrderId: 12345678-54c1-45ff-xxxx-1c8a6fbc5874
                  ConsentId: b918fd8a-xxx-xxx-xxx-27a984683bd1
                  Initiation:
                    Frequency: EvryDay
                    Reference: Reference1234
                    CreditorAccount:
                      Name: Receiver Co.
                      SchemeName: UK.OBIE.SortCodeAccountNumber
                      Identification: '11223321325698'
                    DebtorAccount:
                      SchemeName: UK.OBIE.IBAN
                      Identification: GB95REVO00997053872360
                      Name: John Doe
                    InstructedAmount:
                      Amount: '10.0'
                      Currency: GBP
                    CurrencyOfTransfer: GBP
                    FirstPaymentDateTime: '2022-10-01T14:15:22Z'
                Links:
                  Self: https://oba-auth.revolut.com/international-standing-orders/12345678-54c1-45ff-xxxx-1c8a6fbc5874
                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'
  /distinguished-name:
    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)
    get:
      tags:
        - Applications
      summary: Get a distinguished name (DN)
      description: |-
        Get the distinguished name (DN) of your transport certificate which is used to identify your requests.

        This parameter is needed in order to [register or update your application via DCR](https://developer.revolut.com/docs/guides/build-banking-apps/register-your-application-using-dcr/).
      operationId: getDistinguishedName
      responses:
        '200':
          description: Distinguished name
          content:
            application/json:
              schema:
                type: object
                required:
                  - tls_client_auth_dn
                properties:
                  tls_client_auth_dn:
                    type: string
                    description: The distinguished name (DN) of your transport certificate.
              example:
                tls_client_auth_dn: organizationIdentifier=PSDUK-REVCA-95248b85-bc39-413a-8a16-b5abbf6202cb,CN=2kiXQyo0tedjW2somjSgH7,OU=001580000103UAvAAM,O=Revolut,C=GB
        '401':
          description: Unauthorized
          content: {}
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
  /register:
    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)
    post:
      tags:
        - Applications
      security:
        - AccessToken:
            - openid
      summary: Register an application
      description: |-
        Register an application via DCR.
        This endpoint accepts only JWT, which needs to be precalculated.

        For more information, see [Register your application using DCR: Create a JWT](https://developer.revolut.com/docs/guides/build-banking-apps/register-your-application-using-dcr/create-a-jwt).
      operationId: registerApplication
      requestBody:
        required: true
        description: Provide a JWT signed with a valid signing key
        content:
          text/plain:
            schema:
              type: string
              description: A JWT [calculated](https://developer.revolut.com/docs/guides/build-banking-apps/register-your-application-using-dcr/create-a-jwt) for your application, signed with a valid signing key.
            examples:
              testJwt:
                summary: Sample JWT
                value: eyJhbGciOiJQUzI1NiIsImtpZCI6ImFwcDIwMjMwNTE2In0.eyJpc3MiOiJleGFtcGxlLmNvbSIsImF1ZCI6InJldm9sdXQiLCJleHAiOjE4OTk3OTYyNTQsImlhdCI6MTcwNTMyMDk5MCwiaWRfdG9rZW5fc2lnbmVkX3Jlc3BvbnNlX2FsZyI6IlBTMjU2IiwicmVxdWVzdF9vYmplY3Rfc2lnbmluZ19hbGciOiJQUzI1NiIsInRva2VuX2VuZHBvaW50X2F1dGhfbWV0aG9kIjoidGxzX2NsaWVudF9hdXRoIiwiYXBwbGljYXRpb25fdHlwZSI6IndlYiIsInJlZGlyZWN0X3VyaXMiOlsiaHR0cHM6Ly9leGFtcGxlLmNvbSJdLCJzY29wZSI6Im9wZW5pZCBwYXltZW50cyBhY2NvdW50cyIsInRsc19jbGllbnRfYXV0aF9kbiI6Im9yZ2FuaXphdGlvbklkZW50aWZpZXI9UFNEVUstUkVWQ0EtOTUyNDhiODUtYmMzOS00MTNhLThhMTYtYjVhYmJmNjIwMmNiLENOPTJraVhReW8wdGVkalcyc29talNnSDcsT1U9MDAxNTgwMDAwMTAzVUF2QUFNLE89UmV2b2x1dCxDPUdCIiwic29mdHdhcmVfc3RhdGVtZW50IjoiZXlKaGJHY2lPaUp1YjI1bEluMD0uZXlKemIyWjBkMkZ5WlY5amJHbGxiblJmYm1GdFpTSTZJa1JEVWlCQmNIQnNhV05oZEdsdmJpQXhOekExTXpJd09Ua3dJaXdpYjNKblgycDNhM05mWlc1a2NHOXBiblFpT2lKb2RIUndjem92TDJWNFlXMXdiR1V1WTI5dEwyMTVhbmRyY3k1cWMyOXVJaXdpYzI5bWRIZGhjbVZmY21Wa2FYSmxZM1JmZFhKcGN5STZXeUpvZEhSd2N6b3ZMMlY0WVcxd2JHVXVZMjl0SWwxOS4ifQ.6XAf_Vy7R7ihta_dS91ISFhTsL5ro8UrLVSw2md_IyviGK1HKf-Ua6QwZJxVnyIkJO-Ik9Nqr20v8CA7v0i1Apr6iqy5IvsKP3md6xjAPdrqYrLHqlL0MCycyCpu-9mo53LHxR32uJ2lEz8ITx84_zjeiHVMCsH-7u386uA8HhA7WEii9OlYfp6AOnSQIRBmIcdYWE9RPdAKfnzVJ8FiEnxxBnebIrkhD1Eacx_BqhfqafJHO3DUuCNNIt08L9NgRMMABXxjiA0zS_qXCSgCGhxbFQMdLXNSIgbDEXx7ET3sNTwmu_U14Yh5qJ_uGSkNhWB7qae5uq2dQCO63d7I43
      responses:
        '200':
          description: Successfully created application
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterApplicationResponse'
              example:
                iss: example.com
                iat: 1705330836
                exp: 1899796254
                application_type: web
                client_id: e63d14ae-3b0b-4b6b-85e3-0b221e245c4e
                token_endpoint_auth_method: tls_client_auth
                tls_client_auth_dn: organizationIdentifier=PSDUK-REVCA-95248b85-bc39-413a-8a16-b5abbf6202cb,CN=2kiXQyo0tedjW2somjSgH7,OU=001580000103UAvAAM,O=Revolut,C=GB
                software_statement: eyJhbGciOiJub25lIn0=.eyJzb2Z0d2FyZV9jbGllbnRfbmFtZSI6IkRDUiBBcHBsaWNhdGlvbiAxNzA1MzIwOTkwIiwib3JnX2p3a3NfZW5kcG9pbnQiOiJodHRwczovL2V4YW1wbGUuY29tL215andrcy5qc29uIiwic29mdHdhcmVfcmVkaXJlY3RfdXJpcyI6WyJodHRwczovL2V4YW1wbGUuY29tIl19.
                id_token_signed_response_alg: PS256
                request_object_signing_alg: PS256
                redirect_uris:
                  - https://example.com
                org_jwks_endpoint: https://example.com/
                grant_types: []
                scope: openid payments accounts
        '400':
          description: Unreachable JWKS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              example:
                Code: 400 Bad Request
                Message: Invalid request parameters
                Id: 126S23QGPZ8HG
                Errors:
                  - ErrorCode: UK.OBIE.Field.Invalid
                    Message: Failed to fetch public key from https://example.com/myjwks.json
  /register/{ClientId}:
    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)
    get:
      tags:
        - Applications
      summary: Get an application
      security:
        - AccessToken:
            - openid
      description: Retrieve an already registered application.
      operationId: getApplication
      parameters:
        - $ref: '#/components/parameters/ClientId'
      responses:
        '200':
          description: Application data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApplicationResponse'
              examples:
                appData:
                  summary: Sample application data
                  value:
                    client_id: 6136922a-6163-4c66-a4be-9059bf6a1730
                    token_endpoint_auth_method: tls_client_auth
                    tls_client_auth_dn: organizationIdentifier=PSDUK-REVCA-95248b85-bc39-413a-8a16-b5abbf6202cb,CN=2kiXQyo0tedjW2somjSgH7,OU=001580000103UAvAAM,O=Revolut,C=GB
                    id_token_signed_response_alg: PS256
                    request_object_signing_alg: PS256
                    redirect_uris:
                      - https://example.com
                    org_jwks_endpoint: https://example.com/myjwks.json
                    org_name: ACME Payments Ltd
                    scope: openid payments accounts
        '403':
          description: Access forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              example:
                Code: 403 Forbidden
                Message: Access forbidden
                Id: EE2Q9YDN2OE7
                Errors:
                  - ErrorCode: UK.OBIE.Resource.Forbidden
                    Message: Access forbidden
    put:
      tags:
        - Applications
      summary: Update an application
      security:
        - AccessToken:
            - openid
      description: |-
        Update an existing application.

        This endpoint only accepts JWT, which must be precalculated as described in [Create a JWT](https://developer.revolut.com/docs/guides/build-banking-apps/register-your-application-using-dcr/create-a-jwt).
      operationId: updateApplication
      parameters:
        - $ref: '#/components/parameters/ClientId'
      requestBody:
        required: true
        description: Provide a JWT signed with a valid signing key
        content:
          text/plain:
            schema:
              type: string
              description: A new JWT [calculated](https://developer.revolut.com/docs/guides/build-banking-apps/register-your-application-using-dcr/create-a-jwt) for your application, signed with a valid signing key.
            examples:
              testJwt:
                summary: Sample JWT
                value: eyJhbGciOiJQUzI1NiIsImtpZCI6ImFwcDIwMjMwNTE2In0.eyJpc3MiOiJleGFtcGxlLmNvbSIsImF1ZCI6InJldm9sdXQiLCJleHAiOjE4OTk3OTYyNTQsImlhdCI6MTcwNTMyMDk5MCwiaWRfdG9rZW5fc2lnbmVkX3Jlc3BvbnNlX2FsZyI6IlBTMjU2IiwicmVxdWVzdF9vYmplY3Rfc2lnbmluZ19hbGciOiJQUzI1NiIsInRva2VuX2VuZHBvaW50X2F1dGhfbWV0aG9kIjoidGxzX2NsaWVudF9hdXRoIiwiYXBwbGljYXRpb25fdHlwZSI6IndlYiIsInJlZGlyZWN0X3VyaXMiOlsiaHR0cHM6Ly9leGFtcGxlLmNvbSJdLCJzY29wZSI6Im9wZW5pZCBwYXltZW50cyBhY2NvdW50cyIsInRsc19jbGllbnRfYXV0aF9kbiI6Im9yZ2FuaXphdGlvbklkZW50aWZpZXI9UFNEVUstUkVWQ0EtOTUyNDhiODUtYmMzOS00MTNhLThhMTYtYjVhYmJmNjIwMmNiLENOPTJraVhReW8wdGVkalcyc29talNnSDcsT1U9MDAxNTgwMDAwMTAzVUF2QUFNLE89UmV2b2x1dCxDPUdCIiwic29mdHdhcmVfc3RhdGVtZW50IjoiZXlKaGJHY2lPaUp1YjI1bEluMD0uZXlKemIyWjBkMkZ5WlY5amJHbGxiblJmYm1GdFpTSTZJa1JEVWlCQmNIQnNhV05oZEdsdmJpQXhOekExTXpJd09Ua3dJaXdpYjNKblgycDNhM05mWlc1a2NHOXBiblFpT2lKb2RIUndjem92TDJWNFlXMXdiR1V1WTI5dEwyMTVhbmRyY3k1cWMyOXVJaXdpYzI5bWRIZGhjbVZmY21Wa2FYSmxZM1JmZFhKcGN5STZXeUpvZEhSd2N6b3ZMMlY0WVcxd2JHVXVZMjl0SWwxOS4ifQ.6XAf_Vy7R7ihta_dS91ISFhTsL5ro8UrLVSw2md_IyviGK1HKf-Ua6QwZJxVnyIkJO-Ik9Nqr20v8CA7v0i1Apr6iqy5IvsKP3md6xjAPdrqYrLHqlL0MCycyCpu-9mo53LHxR32uJ2lEz8ITx84_zjeiHVMCsH-7u386uA8HhA7WEii9OlYfp6AOnSQIRBmIcdYWE9RPdAKfnzVJ8FiEnxxBnebIrkhD1Eacx_BqhfqafJHO3DUuCNNIt08L9NgRMMABXxjiA0zS_qXCSgCGhxbFQMdLXNSIgbDEXx7ET3sNTwmu_U14Yh5qJ_uGSkNhWB7qae5uq2dQCO63d7I43
      responses:
        '200':
          description: Application data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApplicationResponse'
              examples:
                appData:
                  summary: Sample app data
                  value:
                    client_id: 6136922a-6163-4c66-a4be-9059bf6a1730
                    token_endpoint_auth_method: tls_client_auth
                    tls_client_auth_dn: organizationIdentifier=PSDUK-REVCA-95248b85-bc39-413a-8a16-b5abbf6202cb,CN=2kiXQyo0tedjW2somjSgH7,OU=001580000103UAvAAM,O=Revolut,C=GB
                    id_token_signed_response_alg: PS256
                    request_object_signing_alg: PS256
                    redirect_uris:
                      - https://example.com
                    org_jwks_endpoint: https://example.com/myjwks.json
                    org_name: ACME Payments Ltd
                    scope: openid payments accounts
        '403':
          description: Access forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              example:
                Code: 403 Forbidden
                Message: Access forbidden
                Id: EE2Q9YDN2OE7
                Errors:
                  - ErrorCode: UK.OBIE.Resource.Forbidden
                    Message: Access forbidden
    delete:
      tags:
        - Applications
      summary: Delete an application
      security:
        - AccessToken:
            - openid
      description: Delete an existing application.
      operationId: deleteApplication
      parameters:
        - $ref: '#/components/parameters/ClientId'
      responses:
        '204':
          description: No content
          content: {}
        '403':
          description: Access forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OBErrorResponse1'
              example:
                Code: 403 Forbidden
                Message: Access forbidden
                Id: EE2Q9YDN2OE7
                Errors:
                  - ErrorCode: UK.OBIE.Resource.Forbidden
                    Message: Access forbidden
  /draft-payments:
    get:
      tags:
        - Draft payment
      summary: List draft payments
      security:
        - AccessToken:
            - draftpayments
      description: |-
        Get draft payments list sorted by creation time in descending order.

        See also [Tutorials: Work with draft payments](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-draft-payments) and [Tutorials: Create your first draft payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-your-first-draft-payment#6-get-list-of-draft-payments).
      servers:
        - url: https://apis.revolut.com
          description: Production server (uses live data)
        - url: https://sandbox-apis.revolut.com
          description: Sandbox server (uses test data)
      operationId: listDraftPayment
      parameters:
        - name: from
          in: query
          description: Creation time inclusive lower bound in UTC [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) Date Time format YYYY-MM-DDThh:mm:ssZ
          schema:
            type: string
            format: date-time
        - name: to
          in: query
          description: Creation time exclusive upper bound in UTC [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) Date Time format YYYY-MM-DDThh:mm:ssZ
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          description: Maximum number of items
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Draft Payment List
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DraftPaymentListResponse'
              example:
                Items:
                  - Id: 27d92ade-xxxx-438c-xxxx-06d63a411d67
                    CreatedAt: '2022-09-29T12:24:31.985323Z'
                    Status: Awaiting
                Links: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    post:
      tags:
        - Draft payment
      summary: Create a draft payment
      security:
        - AccessToken:
            - draftpayments
      description: |-
        Before you begin, ensure that you've got an access token.
        For information about getting the access token, see [Tutorial: Create your first draft payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-your-first-draft-payment).
        Then, you can use the `/draft_payments` endpoint to create a draft payment on behalf of a user, and the draft payment appears in the user account where they can approve or reject.

        In addition, you can use this endpoint to make multiple draft payments by creating new rows for new drafts with the supported CSV format shown in the following tables.

        For each draft payment request you make, ensure that the same currency is used.
        Upon a successful request for multiple draft payments, you receive a `DraftPaymentID` that represents all the draft payments associated with this request.

        Please note that the maximum number of rows in a CSV file is 50 and all the payments must be in the same currency.

        :::note
        Download an [example CSV file](https://assets.revolut.com/api-docs/oba-api/draft_payments.csv).
        :::

        For the format of the CSV file, check the request body details.

        See also [Tutorials: Work with draft payments](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-draft-payments).
      servers:
        - url: https://apis.revolut.com
          description: Production server (uses live data)
        - url: https://sandbox-apis.revolut.com
          description: Sandbox server (uses test data)
      operationId: createDraftPayment
      parameters:
        - name: scheduledDate
          in: query
          description: |-
            The date and time when the draft payment is executed.

            :::note
            Any draft payment in the CSV file is created as a scheduled payment.
            :::
          schema:
            type: string
            format: YYYY-MM-DD
        - name: title
          in: query
          description: The title of draft payment
          schema:
            type: string
        - name: x-idempotency-key
          in: header
          description: Idempotency key in UUID format.
          required: true
          schema:
            type: string
            format: UUID
      requestBody:
        description: For the format of the CSV file, check the table in the body description.
        content:
          text/csv:
            schema:
              type: string
              description: |-
                The CSV payment 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 draft payment CSV 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 non-IBAN accounts| Must contain a 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 IBAN accounts| Must contain a valid IBAN if provided.|
                |`BIC` |All the countries except for UK/US local| Must contain a valid BIC if provided.|
                |`Recipient bank country` |Yes| Must contain a valid [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code.|
                |`Currency`| Yes |Must contain a valid [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.|
                |`Amount` |Yes| Match the pattern: `[0-9]*(\\.[0-9]*)?`|
                |`Payment reference` |Yes| Can contain up to 100 characters.|
                |`Recipient country` |No |Must contain a 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>
            examples:
              CSV file:
                summary: Path to a CSV file
                value: '@draft_payments.csv'
              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
        required: true
      responses:
        '201':
          description: Draft Payment Details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DraftPaymentResponse'
              example:
                DraftPaymentId: 27d92ade-xxxx-438c-xxxx-06d63a411d67
                Status: Awaiting
                Transfers:
                  - Id: a1265ecc-1234-4cb2-bec8-1234b9c32f01
                    InstructedAmount:
                      Amount: '10.00'
                      Currency: GBP
                    Reference: reference1234
                    Status: Created
                    Index: 1
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CsvError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /draft-payments/{DraftPaymentId}/transfers/{DraftPaymentTransferId}:
    delete:
      tags:
        - Draft payment
      summary: Delete a draft payment transfer
      security:
        - AccessToken:
            - draftpayments
      description: |-
        Delete a specific draft payment transfer with the given draft payment transfer ID.
        A draft payment transfer can be deleted only if the user hasn't taken any action upon it, for example, approved or executed the draft payment.

        See also [Tutorials: Work with draft payments](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-draft-payments) and [Tutorials: Create your first draft payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-your-first-draft-payment).
      servers:
        - url: https://apis.revolut.com
          description: Production server (uses live data)
        - url: https://sandbox-apis.revolut.com
          description: Sandbox server (uses test data)
      operationId: deleteDraftPaymentTransfer
      parameters:
        - name: DraftPaymentId
          in: path
          description: The id of the draft payment
          required: true
          schema:
            type: string
            format: UUID
        - name: DraftPaymentTransferId
          in: path
          description: The id of the draft payment transfer
          required: true
          schema:
            type: string
            format: UUID
      responses:
        '204':
          description: No content
          content:
            text/plain:
              example: ''
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /draft-payments/{DraftPaymentId}:
    get:
      tags:
        - Draft payment
      summary: Retrieve a draft payment
      security:
        - AccessToken:
            - draftpayments
      description: |-
        Get the details about a specific draft payment with the given draft payment ID.

        See also [Tutorials: Create your first draft payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-your-first-draft-payment#5-get-a-draft-payment) and [Tutorials: Work with draft payments](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-draft-payments).
      servers:
        - url: https://apis.revolut.com
          description: Production server (uses live data)
        - url: https://sandbox-apis.revolut.com
          description: Sandbox server (uses test data)
      operationId: findDraftPayment
      parameters:
        - name: DraftPaymentId
          in: path
          description: The ID of the draft payment.
          required: true
          schema:
            type: string
            format: UUID
      responses:
        '200':
          description: Draft Payment Details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DraftPaymentResponse'
              example:
                DraftPaymentId: 27d92ade-xxxx-438c-xxxx-06d63a411d67
                Status: Awaiting
                Transfers:
                  - Id: a1265ecc-1234-4cb2-bec8-1234b9c32f01
                    InstructedAmount:
                      Amount: '10.00'
                      Currency: GBP
                    Reference: reference1234
                    Status: Created
                    Index: 1
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    delete:
      tags:
        - Draft payment
      summary: Delete a draft payment
      security:
        - AccessToken:
            - draftpayments
      description: |-
        Delete a specific draft payment with the given draft payment ID.
        A draft payment can be deleted only if the user hasn't taken any action upon it, for example, approved or executed the draft payment.

        See also [Tutorials: Work with draft payments](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/work-with-draft-payments) and [Tutorials: Create your first draft payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/create-your-first-draft-payment).
      servers:
        - url: https://apis.revolut.com
          description: Production server (uses live data)
        - url: https://sandbox-apis.revolut.com
          description: Sandbox server (uses test data)
      operationId: deleteDraftPayment
      parameters:
        - name: DraftPaymentId
          in: path
          description: The ID of the draft payment.
          required: true
          schema:
            type: string
            format: UUID
      responses:
        '204':
          description: No content
          content:
            text/plain:
              example: ''
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Amount:
      pattern: ^\d{1,13}\.\d{1,5}$
      type: string
      description: The amount of money.
    Currency:
      pattern: ^[A-Z]{3}$
      type: string
      description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
    DraftPaymentListResponse:
      required:
        - Items
        - Links
      type: object
      properties:
        Items:
          type: array
          items:
            required:
              - CreatedAt
              - Id
              - Status
            type: object
            properties:
              Id:
                type: string
                description: The ID of the draft payment.
                format: UUID
              CreatedAt:
                type: string
                description: Date time when the draft payment was created.
                format: date-time
              Status:
                $ref: '#/components/schemas/DraftPaymentStatus'
              RequestedExecutionDate:
                type: string
                description: The execution date the draft payment is requested.
                format: YYYY-MM-DD
              Title:
                type: string
                description: Title of the draft payment.
        Links:
          type: object
          properties:
            Next:
              type: string
              description: Relative URI to the next page.
              format: uri
          description: Links relevant to the payload.
    DraftPaymentStatus:
      type: string
      description: The status of the draft payment.
      enum:
        - Awaiting
        - Processed
        - Approved
        - Deleted
    DraftPaymentTransfer:
      required:
        - Id
        - InstructedAmount
        - Reference
        - Status
      type: object
      properties:
        Id:
          type: string
          description: The ID of the transfer.
          format: uuid
        InstructedAmount:
          $ref: '#/components/schemas/InstructedAmount'
        Reference:
          type: string
          description: The reference of the draft payment.
        Status:
          $ref: '#/components/schemas/DraftPaymentTransferStatus'
        Index:
          type: integer
          description: The row number the draft payment represents in the CSV file.
        FailedReason:
          type: string
          description: The reason of the `failed` draft payment.
        FailedReasonCode:
          type: integer
          description: The reason code for the `failed` draft payment.
    DraftPaymentResponse:
      required:
        - DraftPaymentId
        - Status
        - Transfers
      type: object
      properties:
        DraftPaymentId:
          type: string
          description: The ID of the draft payment.
          format: uuid
        RequestedExecutionDate:
          type: string
          description: The execution date the draft payment is requested.
          format: YYYY-MM-DD
        Status:
          $ref: '#/components/schemas/DraftPaymentStatus'
        Transfers:
          $ref: '#/components/schemas/DraftPaymentTransfers'
    DraftPaymentTransferStatus:
      type: string
      description: The status of the draft payment.
      enum:
        - Created
        - Pending
        - Completed
        - Failed
        - Deleted
    DraftPaymentTransfers:
      type: array
      items:
        $ref: '#/components/schemas/DraftPaymentTransfer'
    EmptyBody:
      description: An empty JSON object (`{}`).
      type: object
      nullable: true
    Error:
      required:
        - Code
        - Id
        - Message
      type: object
      properties:
        Code:
          type: integer
          description: The error code in high level that helps categorize the error.
        Id:
          type: string
          description: The ID of the error. You can share this ID with Revolut support for troubleshooting.
        Message:
          type: string
          description: The error message.
    CsvError:
      required:
        - Code
        - Id
        - Message
      type: object
      properties:
        Code:
          type: integer
          description: The error code in high level that helps categorize the error.
        Id:
          type: string
          description: The ID of the error. You can share this ID with Revolut support for troubleshooting.
        Message:
          type: string
          description: The error message.
        Errors:
          $ref: '#/components/schemas/ErrorDetails'
    ErrorDetails:
      type: array
      description: The  details of the error.
      items:
        $ref: '#/components/schemas/ErrorDetail'
    ErrorDetail:
      required:
        - Errors
        - Row
      type: object
      properties:
        Row:
          type: integer
          description: The number of the row.
        Errors:
          type: array
          items:
            $ref: '#/components/schemas/FieldError'
    FieldError:
      required:
        - Code
        - Message
      type: object
      properties:
        Message:
          type: string
          description: The error message for the field.
        Code:
          type: integer
          description: The error code in high level that helps categorize the error.
        Field:
          type: string
          description: The name of the field.
    InstructedAmount:
      required:
        - Amount
        - Currency
      type: object
      properties:
        Amount:
          $ref: '#/components/schemas/Amount'
        Currency:
          $ref: '#/components/schemas/Currency'
    AccountId:
      maxLength: 40
      minLength: 1
      type: string
      description: |-
        The unique and immutable ID to identify the account resource.
        This ID has no meaning to the account owner.
    OBAccount3:
      required:
        - AccountId
        - AccountSubType
        - AccountType
        - Currency
      type: object
      properties:
        AccountId:
          $ref: '#/components/schemas/AccountId'
        Currency:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: |-
            The currency that the account is held in ([ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case).

            This value is used only when one account number covers multiple accounts for different currencies, and the initiating party needs to identify which currency to use for settlement on the account.
        AccountType:
          $ref: '#/components/schemas/OBExternalAccountType1Code'
        AccountSubType:
          $ref: '#/components/schemas/OBExternalAccountSubType1Code'
        Nickname:
          maxLength: 70
          minLength: 1
          type: string
          description: The nickname of the account that the account owner assigns to easily identify the account.
        Account:
          type: array
          description: The details to identify an account.
          items:
            $ref: '#/components/schemas/OBCashAccount5'
      description: The unique ID of the account that credit and debit entries are made to.
    OBActiveCurrencyAndAmount_SimpleType:
      pattern: ^\d{1,13}\.\d{1,5}$
      type: string
      description: The amount of money where the unit of currency is explicit and compliant with [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
    OBActiveOrHistoricCurrencyAndAmount:
      required:
        - Amount
        - Currency
      type: object
      properties:
        Amount:
          $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
        Currency:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
      description: The amount of the cash balance after a transaction entry is applied to the account.
    OBBalanceType1Code:
      type: string
      description: The balance type.
      enum:
        - InterimAvailable
        - InterimBooked
        - ClosingAvailable
        - ClosingBooked
        - ClosingCleared
        - Expected
        - ForwardAvailable
        - Information
        - InterimAvailable
        - InterimBooked
        - InterimCleared
        - OpeningAvailable
        - OpeningBooked
        - OpeningCleared
        - PreviouslyClosedBooked
    OBBeneficiary3:
      type: object
      properties:
        AccountId:
          $ref: '#/components/schemas/AccountId'
        BeneficiaryId:
          maxLength: 40
          minLength: 1
          type: string
          description: |-
            The unique and immutable ID to identify the beneficiary resource.
            This ID has no meaning to the account owner.
        CreditorAccount:
          $ref: '#/components/schemas/OBCashAccount5'
    OBCashBalance1:
      required:
        - AccountId
        - Amount
        - CreditDebitIndicator
        - DateTime
        - Type
      type: object
      properties:
        AccountId:
          $ref: '#/components/schemas/AccountId'
        CreditDebitIndicator:
          type: string
          description: |-
            Indicates whether the balance is a credit or a debit balance.

            :::note
            A zero balance is considered a credit balance.
            :::
          enum:
            - Credit
            - Debit
        Type:
          $ref: '#/components/schemas/OBBalanceType1Code'
        DateTime:
          type: string
          description: |-
            The date and time for the balance.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Amount:
          $ref: '#/components/schemas/OBActiveOrHistoricCurrencyAndAmount'
        CreditLine:
          type: array
          description: A list of elements to provide details on the credit line.
          items:
            $ref: '#/components/schemas/OBCreditLine1'
      description: A list of elements to define the balance details.
    OBCreditLine1:
      required:
        - Included
      type: object
      properties:
        Included:
          type: boolean
          description: |-
            Indicates whether the credit line is included in the balance of the account.

            :::note
            If set to `false`, credit line is not included in the account balance.
            :::
        Type:
          $ref: '#/components/schemas/OBExternalLimitType1Code'
        Amount:
          $ref: '#/components/schemas/OBActiveOrHistoricCurrencyAndAmount'
      description: Set of elements used to provide details on the credit line.
    OBCurrencyExchange5:
      required:
        - ExchangeRate
        - SourceCurrency
      type: object
      properties:
        SourceCurrency:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: The currency that is exchanged from.
        TargetCurrency:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: The currency that is exchanged to.
        UnitCurrency:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: |-
            The currency that the exchange rate is expressed in.
            For example, for 1 GBP = xxx EUR, the `UnitCurrency` value is GBP.
        ExchangeRate:
          type: string
          description: |-
            The exchange rate used to convert an amount of money from one currency into another.

            This reflects the price that one currency was bought at with another currency.

            :::note
            `ExchangeRate` expresses the ratio between `UnitCurrency` and `QuotedCurrency`:
            **`ExchangeRate` = `UnitCurrency`/`QuotedCurrency`**.
            :::
        InstructedAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              $ref: '#/components/schemas/Currency'
          description: Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
      description: A list of elements to provide details on the currency exchange.
    OBDirectDebit1:
      required:
        - AccountId
        - MandateIdentification
        - Name
      type: object
      properties:
        AccountId:
          $ref: '#/components/schemas/AccountId'
        DirectDebitId:
          maxLength: 40
          minLength: 1
          type: string
          description: |-
            The unique and immutable ID to identify the direct debit resource.
            This ID has no meaning to the account owner.
        MandateIdentification:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The direct debit reference.

            - For AUDDIS (Automated Direct Debit Instruction Service), users provide core reference.
            - For non AUDDIS, users provide core reference if possible, or last used reference.
        DirectDebitStatusCode:
          $ref: '#/components/schemas/OBExternalDirectDebitStatus1Code'
        Name:
          maxLength: 70
          minLength: 1
          type: string
          description: The name of service user.
        PreviousPaymentAmount:
          $ref: '#/components/schemas/OBActiveOrHistoricCurrencyAndAmount'
      description: The account that a cash entry is made to or from.
    OBEntryStatus1Code:
      type: string
      description: The status of a transaction entry on the books of the account servicer.
      enum:
        - Booked
        - Pending
    OBExternalAccountSubType1Code:
      type: string
      description: The sub-type of the account.
      enum:
        - CurrentAccount
        - Savings
        - CreditCard
    OBExternalAccountType1Code:
      type: string
      description: The type of the account.
      enum:
        - Business
        - Personal
    OBExternalDirectDebitStatus1Code:
      type: string
      description: The status of the direct debit.
      enum:
        - Active
        - Inactive
    OBExternalLimitType1Code:
      type: string
      description: The limit type.
      enum:
        - Available
    OBExternalPermissions1Code:
      type: string
      description: The type of data access to the account.
      enum:
        - ReadAccountsBasic
        - ReadAccountsDetail
        - ReadBalances
        - ReadBeneficiariesBasic
        - ReadBeneficiariesDetail
        - ReadDirectDebits
        - ReadOffers
        - ReadPAN
        - ReadParty
        - ReadPartyPSU
        - ReadProducts
        - ReadScheduledPaymentsBasic
        - ReadScheduledPaymentsDetail
        - ReadStandingOrdersBasic
        - ReadStandingOrdersDetail
        - ReadStatementsBasic
        - ReadStatementsDetail
        - ReadTransactionsBasic
        - ReadTransactionsCredits
        - ReadTransactionsDebits
        - ReadTransactionsDetail
    OBExternalRequestStatus1Code:
      type: string
      description: The status of the account access consent.
      enum:
        - Authorised
        - AwaitingAuthorisation
        - Rejected
        - Revoked
    OBExternalStandingOrderStatus1Code:
      type: string
      description: The status of the standing order.
      enum:
        - Active
        - Inactive
    OBMerchantDetails1:
      type: object
      properties:
        MerchantName:
          maxLength: 350
          minLength: 1
          type: string
          description: The name of the merchant.
      description: The details of the merchant involved in the transaction.
    OBReadAccount3:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          type: object
          properties:
            Account:
              type: array
              description: The unique ID of the account that credit and debit entries are made to.
              items:
                $ref: '#/components/schemas/OBAccount3'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBReadBalance1:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          required:
            - Balance
          type: object
          properties:
            Balance:
              minItems: 1
              type: array
              description: A list of elements to define the balance details.
              items:
                $ref: '#/components/schemas/OBCashBalance1'
          description: The balance details.
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBReadBeneficiary3:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          type: object
          properties:
            Beneficiary:
              type: array
              items:
                $ref: '#/components/schemas/OBBeneficiary3'
          description: A list of beneficiaries.
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBReadConsent1:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBReadData1'
        Risk:
          $ref: '#/components/schemas/OBRisk2'
    RegisterApplicationResponse:
      type: object
      properties:
        iss:
          type: string
          description: The principal that issued the JWT.
        iat:
          type: integer
          description: |-
            The time the JWT was issued, which is used to determine the age of the JWT.
            Provided in seconds in Unix timestamp format.
        exp:
          type: integer
          description: |-
            The expiration time starting from which the JWT must not be accepted for processing.
            Provided in seconds in Unix timestamp format.
        application_type:
          type: string
          description: The type of application. Either `web` or `mobile`.
          enum:
            - web
            - mobile
        client_id:
          type: string
          description: The Client ID used to identify the application.
        token_endpoint_auth_method:
          type: string
          description: |-
            Specifies the authentication method for the `/token` endpoint.
            Currently, only `tls_client_auth` is supported.
          enum:
            - tls_client_auth
        tls_client_auth_dn:
          type: string
          description: Distinguished name of the transport certificate used by the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
        software_statement:
          type: string
          description: |-
            Software statement assertion issued by the issuer.

            The data model for the software statements issued by the Open Banking directory are documented as part of the Directory Specification.
        id_token_signed_response_alg:
          type: string
          description: The signing algorithm used to sign the `id_token` JWTs. Currently, only `PS256` is supported.
          enum:
            - PS256
        request_object_signing_alg:
          type: string
          description: The signing algorithm used to sign request objects. Currently, only `PS256` is supported.
          enum:
            - PS256
        redirect_uris:
          type: array
          items:
            type: string
            format: uri
          description: List of registered URIs that the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) will use to interact with the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
        org_jwks_endpoint:
          type: string
          format: uri
          description: Public URI endpoint where the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) has uploaded their JWKS in JSON format.
        grant_types:
          type: array
          description: |-
            Accepted grant types.
            A JSON array specifying what the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) can request to be supplied to the `/token` endpoint in exchange for an access token.
          items:
            type: string
        scope:
          type: string
          description: List of scopes that the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) has access to, separated by spaces.
    GetApplicationResponse:
      type: object
      properties:
        client_id:
          type: string
          description: The Client ID used to identify the application.
        token_endpoint_auth_method:
          type: string
          description: |-
            Specifies the authentication method for the `/token` endpoint.

            Currently, only `tls_client_auth` is supported.
          enum:
            - tls_client_auth
        tls_client_auth_dn:
          type: string
          description: Distinguished name (DN) of the transport certificate used by the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
        id_token_signed_response_alg:
          type: string
          description: The signing algorithm used to sign the `id_token` JWTs. Currently, only `PS256` is supported.
          enum:
            - tls_client_auth
        request_object_signing_alg:
          type: string
          description: The signing algorithm used to sign request objects. Currently, only `PS256` is supported.
          enum:
            - tls_client_auth
        redirect_uris:
          type: array
          items:
            type: string
            format: uri
          description: List of the registered URIs that the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) will use to interact with the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
        org_jwks_endpoint:
          type: string
          format: uri
          description: Public URI endpoint where the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) has uploaded their JWKS in JSON format.
        org_name:
          type: string
          description: Legal Entity Identifier or other known organisation name.
        scope:
          type: string
          description: |-
            List of scopes that the [TPP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) has access to, provided as a **space-separated string**.
            For example, `"openid accounts payments"`.
            Possible scopes to list: `openid`, `accounts`, `payments`, `fundsconfirmation`.
          example: openid payments
    OBReadConsentResponse1:
      required:
        - Data
        - Links
        - Meta
        - Risk
      type: object
      properties:
        Data:
          required:
            - ConsentId
            - CreationDateTime
            - Permissions
            - Status
            - StatusUpdateDateTime
          type: object
          properties:
            ConsentId:
              maxLength: 128
              minLength: 1
              type: string
              description: The unique ID that is assigned to identify the account access consent resource.
            CreationDateTime:
              type: string
              description: |-
                The date and time when the account access consent was created.

                All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
                All date-time fields in responses must include the timezone.

                For example: `2017-04-05T10:43:07+00:00`.
              format: date-time
            Status:
              $ref: '#/components/schemas/OBExternalRequestStatus1Code'
            StatusUpdateDateTime:
              type: string
              description: |-
                The date and time when the account access consent was created.

                All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
                All date-time fields in responses must include the timezone.

                For example: `2017-04-05T10:43:07+00:00`.
              format: date-time
            Permissions:
              minItems: 1
              type: array
              description: The type of data access to the account.
              items:
                $ref: '#/components/schemas/OBExternalPermissions1Code'
            ExpirationDateTime:
              type: string
              description: |-
                The date and time when the permission expires.
                If this is not specified, the permission is open ended.

                All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
                All date-time fields in responses must include the timezone.

                For example: `2017-04-05T10:43:07+00:00`.
              format: date-time
            TransactionFromDateTime:
              type: string
              description: |-
                The start date and time for the transaction query period.
                If this is not specified, the start date is open ended, and data is returned from the earliest available transaction.

                All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
                All date-time fields in responses must include the timezone.

                For example: `2017-04-05T10:43:07+00:00`.
              format: date-time
            TransactionToDateTime:
              type: string
              description: |-
                The end date and time for the transaction query period.
                If this is not specified, the end date is open ended, and data is returned to the latest available transaction.

                All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
                All date-time fields in responses must include the timezone.

                For example: `2017-04-05T10:43:07+00:00`.
              format: date-time
        Risk:
          $ref: '#/components/schemas/OBRisk2'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBReadData1:
      required:
        - Permissions
      type: object
      properties:
        Permissions:
          minItems: 1
          type: array
          description: |-
            Specifies the type of data access to the account.
            This is a list of the data clusters being consented by the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), and requested for authorisation with the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary).
          items:
            $ref: '#/components/schemas/OBExternalPermissions1Code'
        ExpirationDateTime:
          type: string
          description: |-
            Specifies the date and time the permission expires.
            If this is not specified, the permission is open ended.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        TransactionFromDateTime:
          type: string
          description: |-
            Specifies the start date and time for the transaction query period.
            If this is not specified, the start date is open ended, and data is returned from the earliest available transaction.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        TransactionToDateTime:
          type: string
          description: |-
            Specifies the end date and time for the transaction query period.
            If this is not specified, the end date is open ended, and data is returned to the latest available transaction.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
    OBReadDirectDebit1:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          type: object
          properties:
            DirectDebit:
              type: array
              description: The account that a cash entry is made to or from.
              items:
                $ref: '#/components/schemas/OBDirectDebit1'
          description: A list of direct debits.
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBReadStandingOrder4:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          type: object
          properties:
            StandingOrder:
              type: array
              items:
                $ref: '#/components/schemas/OBStandingOrder4'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBReadTransaction4:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          type: object
          properties:
            Transaction:
              type: array
              description: The details about the transaction.
              items:
                $ref: '#/components/schemas/OBTransaction4'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBReportFileResponse:
      required:
        - Payments
      type: object
      properties:
        Payments:
          type: array
          description: |-
            The list of payments included in the file payment.
            Each element in the list corresponds to a single payment and contains the amount, reference, and status of that individual payment.
          items:
            type: object
            description: Detailes for a single payment.
            required:
              - Amount
              - Reference
              - Status
            properties:
              Amount:
                required:
                  - Amount
                  - Currency
                type: object
                description: The amount of money paid. Specifies the amount and the currency.
                properties:
                  Amount:
                    $ref: '#/components/schemas/Amount'
                  Currency:
                    $ref: '#/components/schemas/Currency'
              Reference:
                maxLength: 100
                minLength: 1
                type: string
                description: The unique reference assigned to the payment.
              Status:
                $ref: '#/components/schemas/PaymentStatus'
    OBStandingOrder4:
      required:
        - AccountId
        - Frequency
      type: object
      properties:
        AccountId:
          $ref: '#/components/schemas/AccountId'
        StandingOrderId:
          maxLength: 40
          minLength: 1
          type: string
          description: |-
            The unique and immutable ID to identify the standing order resource.
            This ID has no meaning to the account owner.
        Frequency:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The frequency of the standing order:
            - `EvryDay`: Every day
            - `IntrvlWkDay`: Only one week interval is supported (01) and any day within the week (01 to 07)
            - `IntrvlMnthDay`: Only one month interval is supported (01) and any day within the month (1 to 31)

            Example values:
            - `EvryDay`
            - `IntrvlWkDay:01:0[1-7]`
            - `IntrvlMnthDay:01:(0[1-9]|[12][0-9]|3[01])`
        Reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique reference that the creditor assigns to refer to the payment transaction.

            If available, the initiating party should provide this reference in the structured remittance information to enable reconciliation by the creditor upon receipt of the amount of money.

            If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor's reference or payment remittance identification should be quoted in the end-to-end transaction identification.
        FirstPaymentAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
              description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
          description: The amount of the first standing order payment.
        FirstPaymentDateTime:
          type: string
          description: |-
            The date the first payment for a standing order schedule is made.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        NextPaymentAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
              description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
          description: The amount of the next standing order payment.
        StandingOrderStatusCode:
          $ref: '#/components/schemas/OBExternalStandingOrderStatus1Code'
        CreditorAccount:
          $ref: '#/components/schemas/OBCashAccount5'
      description: A list of standing orders.
    OBTransaction4:
      title: ''
      required:
        - AccountId
        - Amount
        - BookingDateTime
        - CreditDebitIndicator
        - Status
      type: object
      properties:
        AccountId:
          $ref: '#/components/schemas/AccountId'
        TransactionId:
          maxLength: 40
          minLength: 1
          type: string
          description: The unique and immutable ID to identify the transaction within an servicing institution.
        CreditDebitIndicator:
          type: string
          description: Indicates whether the transaction is a credit or a debit entry.
          enum:
            - Credit
            - Debit
        Status:
          $ref: '#/components/schemas/OBEntryStatus1Code'
        BookingDateTime:
          type: string
          description: |-
            The date and time when the transaction entry is created in Revolut's systems.
            Represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format including timezone.            

            :::note[Offline transactions]
            For offline transactions, this value reflects when the transaction is recorded by Revolut, not when the transaction was originally initiated.
            The original transaction date is available in `SupplementaryData.StartedDate`.
            :::
          example: '2017-04-05T10:43:07.758260Z'
          format: date-time
        ValueDateTime:
          type: string
          description: |-
            The date and time when the transaction is completed.
            Returned only for transactions with `Status=Booked`.

            Represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format including timezone.
          example: '2017-04-05T10:43:07.758260Z'
          format: date-time
        Amount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              $ref: '#/components/schemas/Currency'
          description: Amount of money in the cash transaction entry. This amount includes the amount in `ChargeAmount`.
        ChargeAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              $ref: '#/components/schemas/Currency'
          description: Transaction charges to be paid by the charge bearer.
        CurrencyExchange:
          $ref: '#/components/schemas/OBCurrencyExchange5'
        ProprietaryBankTransactionCode:
          required:
            - Code
          type: object
          properties:
            Code:
              maxLength: 35
              minLength: 1
              type: string
              description: The proprietary bank transaction code to identify the underlying transaction.
            Issuer:
              maxLength: 35
              minLength: 1
              type: string
              description: The identification of the issuer of the proprietary bank transaction code.
          description: A list of elements to fully identify a proprietary bank transaction code.
        SupplementaryData:
          description: Additional information that cannot be captured in the structured fields and/or any other specific block.
          allOf:
            - $ref: '#/components/schemas/OBSupplementaryData1'
            - type: object
              properties:
                StartedDate:
                  readOnly: true
                  type: string
                  format: date-time
                  example: '2017-04-05T10:43:07.275221Z'
                  description: |-
                    The date and time the transaction started in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.

                    Returned if it is different from `BookingDateTime`.

                    For example, if the transaction was an offline card transaction made during a flight and would be booked at a later time or date, this field indicates the actual date and time the transaction took place, as provided by the merchant.
        TransactionInformation:
          $ref: '#/components/schemas/TransactionInformation'
        Balance:
          $ref: '#/components/schemas/OBTransactionCashBalance'
        MerchantDetails:
          $ref: '#/components/schemas/OBMerchantDetails1'
        CreditorAccount:
          $ref: '#/components/schemas/OBCashAccount6'
        DebtorAccount:
          $ref: '#/components/schemas/OBCashAccount6'
        CardInstrument:
          required:
            - CardSchemeName
          type: object
          description: The set of elements to describe the card instrument used in the transaction.
          properties:
            CardSchemeName:
              type: string
              description: The brand of the payment card. Possible values include `VISA`, `MASTERCARD`, and `MAESTRO`.
            Identification:
              type: string
              description: The last four digits of the card's PAN (Primary Account Number).
            Name:
              type: string
              description: The name of the cardholder.
      description: The details of the transaction.
    OBTransactionCashBalance:
      required:
        - Amount
        - CreditDebitIndicator
        - Type
      type: object
      properties:
        CreditDebitIndicator:
          type: string
          description: |-
            Indicates whether the balance is a credit or a debit balance.

            :::note
            A zero balance is considered a credit balance.
            :::
          enum:
            - Credit
            - Debit
        Type:
          $ref: '#/components/schemas/OBBalanceType1Code'
        Amount:
          $ref: '#/components/schemas/OBActiveOrHistoricCurrencyAndAmount'
      description: A list of elements used to define the balance as a numerical representation of the net increases and decreases in an account after a transaction entry is applied to the account.
    TransactionInformation:
      maxLength: 500
      minLength: 1
      type: string
      description: The additional information of the transaction, which is unstructured text.
    OBCashAccount5:
      required:
        - Identification
        - SchemeName
      type: object
      properties:
        SchemeName:
          $ref: '#/components/schemas/OBRevolutAccountIdentificationCode'
        Identification:
          maxLength: 256
          minLength: 1
          type: string
          description: |
            The identification of the account.

            :::warning[Unique account identifier]
            This field will typically contain an account number or an IBAN which must not be considered as a unique identifier for the account. Several currency subacounts can share this same identifier.

            If you need a unique identifier for each account, ensure you use the `Data.Account.AccountId` instead.
            :::
        Name:
          maxLength: 70
          minLength: 1
          type: string
          description: |-
            The account name that the account servicing institution assigns.

            The account name is the name or names of the account owner(s) represented at an account level.

            The account name is not the product name or the nickname of the account.
        SecondaryIdentification:
          maxLength: 34
          minLength: 1
          type: string
          description: |-
            The secondary account ID that the account servicing institution assigns.

            Building societies can use this ID to identify accounts with a roll number in addition to a sort code and account number combination.
      description: The details to identify the account.
    OBCashAccount6:
      type: object
      properties:
        SchemeName:
          $ref: '#/components/schemas/OBExternalAccountIdentification4Code'
        Identification:
          maxLength: 256
          minLength: 1
          type: string
          description: The account ID that the institution assigns to identify an account, which is known by the account owner.
        Name:
          maxLength: 70
          minLength: 1
          type: string
          description: |-
            The account name that the account servicing institution assigns.

            The account name is the name or names of the account owner(s) represented at an account level.

            The account name is not the product name or the nickname of the account.
        SecondaryIdentification:
          maxLength: 34
          minLength: 1
          type: string
          description: |-
            The secondary account ID that the account servicing institution assigns.

            Building societies can use this ID to identify accounts with a roll number in addition to a sort code and account number combination.
      description: The unique ID of the account in the case of a transaction.
    OBExternalAccountIdentification4Code:
      type: string
      description: The name of the identification scheme.
      enum:
        - UK.OBIE.IBAN
        - UK.OBIE.SortCodeAccountNumber
        - US.RoutingNumberAccountNumber
        - US.BranchCodeAccountNumber
      example: UK.OBIE.IBAN
    OBRevolutAccountIdentificationCode:
      type: string
      description: |
        The name of the identification scheme.

        Note the scheme `UK.Revolut.InternalAccountId` is an internal account identifier for those accounts which don't have externally available identifiers.
        It cannot be used to send or receive funds.
      enum:
        - UK.OBIE.IBAN
        - UK.OBIE.SortCodeAccountNumber
        - US.RoutingNumberAccountNumber
        - US.BranchCodeAccountNumber
        - UK.Revolut.InternalAccountId
      example: UK.OBIE.IBAN
    OBError1:
      required:
        - ErrorCode
        - Message
      type: object
      properties:
        ErrorCode:
          maxLength: 128
          minLength: 1
          type: string
          description: The error code in low level, for example, `UK.OBIE.Field.Missing`.
        Message:
          maxLength: 500
          minLength: 1
          type: string
          description: |-
            The description of the error that occurred.
            For example, `A mandatory field isn't supplied`, `RequestedExecutionDateTime must be in future`, and `OBIE doesn't standardise this field`.
    OBErrorResponse1:
      required:
        - Code
        - Errors
        - Message
      type: object
      properties:
        Code:
          maxLength: 40
          minLength: 1
          type: string
          description: The error code in high level that helps categorize the error.
        Id:
          maxLength: 40
          minLength: 1
          type: string
          description: The ID of the error. You can share this ID with Revolut support for troubleshooting.
        Message:
          maxLength: 500
          minLength: 1
          type: string
          description: |-
            The error message.
            For example, `There is something wrong with the request parameters provided`.
        Errors:
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/OBError1'
      description: The detailed information about the error to help troubleshooting.
    Links:
      required:
        - Self
      type: object
      properties:
        Self:
          type: string
          description: The absolute URI to the resource.
          format: uri
        Next:
          type: string
          description: The absolute URI to the next pagination resource.
          format: uri
        Prev:
          type: string
          description: The absolute URI to the previous pagination resource.
          format: uri
      description: Links relevant to the payload.
    Meta:
      title: MetaData
      type: object
      properties:
        TotalPages:
          type: integer
          description: Used for pagination. Indicates how many pages of results are available.
          format: int32
      description: Meta data relevant to the payload.
    OBRisk2:
      type: object
      description: The Risk section contains the risk indicators that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which can be used to specify additional details for risk scoring for account information.
    OBChargeBearerType1Code:
      type: string
      description: The party or parties bear the charges associated with the processing of the payment transaction.
      enum:
        - BorneByDebtor
        - FollowingServiceLevel
    OBDomesticInitiationBase:
      type: object
      properties:
        InstructionIdentification:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique ID that an instructing party assigns for an instructed party to unambiguously identify the instruction.

            This ID is used between the instructing party and the instructed party to refer to an individual instruction.
            It can be included in the messages related to the instruction.
        EndToEndIdentification:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique and immutable ID that the initiating party assigns to unambiguously identify the transaction.

            This ID is used for reconciliation or to link tasks related to the transaction.
            It can be included in the messages related to the transaction.

            :::note
            Faster Payments Scheme can access only 31 characters for the `EndToEndIdentification` field.
            :::
        InstructedAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
              description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
          description: |-
            The amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency that the initiating party instructs.

            This amount has to be transported unchanged through the transaction chain.
        CreditorAccount:
          $ref: '#/components/schemas/OBCashAccountCreditor3'
        CreditorPostalAddress:
          $ref: '#/components/schemas/OBPostalAddress6'
        RemittanceInformation:
          $ref: '#/components/schemas/OBRemittanceInformation1'
        SupplementaryData:
          $ref: '#/components/schemas/OBSupplementaryData1'
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single domestic payment.
    OBDomestic2:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single domestic payment.
      allOf:
        - $ref: '#/components/schemas/OBDomesticInitiationBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtor4'
        - type: object
          required:
            - CreditorAccount
            - EndToEndIdentification
            - InstructedAmount
            - InstructionIdentification
    OBDomesticInitiationResponse:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single domestic payment.
      allOf:
        - $ref: '#/components/schemas/OBDomesticInitiationBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtorResponse'
        - type: object
          required:
            - CreditorAccount
            - EndToEndIdentification
            - InstructedAmount
            - InstructionIdentification
            - DebtorAccount
    OBDomesticScheduledBase:
      type: object
      properties:
        InstructionIdentification:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique ID that an instructing party assigns for an instructed party to unambiguously identify the instruction.

            This ID is used between the instructing party and the instructed party to refer to an individual instruction.
            It can be included in the messages related to the instruction.
        EndToEndIdentification:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique and immutable ID that the initiating party assigns to unambiguously identify the transaction.

            This ID is used for reconciliation or to link tasks related to the transaction.
            It can be included in the messages related to the transaction.

            :::note
            Faster Payments Scheme can access only 31 characters for the `EndToEndIdentification` field.
            :::
        RequestedExecutionDateTime:
          type: string
          description: |-
            The date and time when the initiating party requests the clearing agent to process the payment.

            This is the date the debtor's account is to be debited.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        InstructedAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
              description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
          description: |-
            The amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency that the initiating party instructs.

            This amount has to be transported unchanged through the transaction chain.
        CreditorAccount:
          $ref: '#/components/schemas/OBCashAccountCreditor3'
        CreditorPostalAddress:
          $ref: '#/components/schemas/OBPostalAddress6'
        RemittanceInformation:
          $ref: '#/components/schemas/OBRemittanceInformation1'
      description: The Initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single scheduled domestic payment.
    OBDomesticScheduled2:
      type: object
      description: The Initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single scheduled domestic payment.
      allOf:
        - $ref: '#/components/schemas/OBDomesticScheduledBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtor4'
        - type: object
          required:
            - CreditorAccount
            - InstructedAmount
            - InstructionIdentification
            - RequestedExecutionDateTime
    OBDomesticScheduledInitiationResponse:
      type: object
      description: The Initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single scheduled domestic payment.
      allOf:
        - $ref: '#/components/schemas/OBDomesticScheduledBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtorResponse'
        - type: object
          required:
            - CreditorAccount
            - InstructedAmount
            - InstructionIdentification
            - RequestedExecutionDateTime
            - DebtorAccount
    OBDomesticStandingOrderBase:
      type: object
      properties:
        Frequency:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The frequency of the standing order:
            - `EvryDay`: Every day
            - `IntrvlWkDay`: Only one week interval is supported (01) and any day within the week (01 to 07)
            - `IntrvlMnthDay`: Only one month interval is supported (01) and any day within the month (1 to 31)

            Example values:
            - `EvryDay`
            - `IntrvlWkDay:01:0[1-7]`
            - `IntrvlMnthDay:01:(0[1-9]|[12][0-9]|3[01])`

            :::caution
            The day of the interval must agree with the day from `FirstPaymentDateTime`, otherwise, for `POST` requests, the `Unsupported frequency` error is returned.
            For example: 
            - Correct: `Frequency=IntrvlMnthDay:01:03` and `FirstPaymentDateTime=2026-02-03T14:15:22Z` - the day to schedule the payment is the 3rd day of the month, and the first occurrence will be on the 3rd of February
            - Incorrect: `Frequency=IntrvlMnthDay:01:03` and `FirstPaymentDateTime=2026-02-17T14:15:22Z` - the day to schedule the payment is the 3rd day of the month, but the first occurrence is set to the 17th of February, so the days don't match.
            :::
        Reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique reference that the creditor assigns to unambiguously identify the payment transaction.

            If available, the initiating party should provide this reference in the structured remittance information to enable reconciliation by the creditor upon receipt of the amount of money.

            If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor's reference or payment remittance identification should be quoted in the end-to-end transaction identification.
        NumberOfPayments:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            :::caution
            Currently, standing orders do not support ending conditions, so using this field will result in an error.
            :::

            The number of payments to make, with the interval set in `frequency`, counting from the start date set in `FirstPaymentDateTime`.
        FirstPaymentDateTime:
          type: string
          description: |-
            The date and time when the first payment for a standing order schedule is made.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.

            :::caution
            The day part of the date must agree with the day of the interval set in `Frequency`, otherwise, for `POST` requests, the `Unsupported frequency` error is returned.
            For example: 
            - Correct: `Frequency=IntrvlMnthDay:01:03` and `FirstPaymentDateTime=2026-02-03T14:15:22Z` - the day to schedule the payment is the 3rd day of the month, and the first occurrence will be on the 3rd of February
            - Incorrect: `Frequency=IntrvlMnthDay:01:03` and `FirstPaymentDateTime=2026-02-17T14:15:22Z` - the day to schedule the payment is the 3rd day of the month, but the first occurrence is set to the 17th of February, so the days don't match.
            :::
          format: date-time
        FinalPaymentDateTime:
          type: string
          description: |-
            :::caution
            Currently, standing orders do not support ending conditions, so this field is ignored.
            :::

            The date and time when the final payment for a standing order schedule is made.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        FirstPaymentAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
              description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
          description: The amount of the first standing order.
        RecurringPaymentAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
              description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
          description: The amount of the recurring standing order. If provided, must be equal to `FirstPaymentAmount`.
        FinalPaymentAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
              description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
          description: |-
            :::caution
            Currently, standing orders do not support ending conditions, so this field is ignored.
            :::

            The amount of the final standing order.
        CreditorAccount:
          $ref: '#/components/schemas/OBCashAccountCreditor3'
      description: The Initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a domestic standing order.
    OBDomesticStandingOrder2:
      type: object
      description: The Initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a domestic standing order.
      allOf:
        - $ref: '#/components/schemas/OBDomesticStandingOrderBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtor4'
        - type: object
          required:
            - CreditorAccount
            - FirstPaymentAmount
            - FirstPaymentDateTime
            - Frequency
    OBDomesticStandingOrderInitiationResponse:
      type: object
      description: The Initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a domestic standing order.
      allOf:
        - $ref: '#/components/schemas/OBDomesticStandingOrderBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtorResponse'
        - type: object
          required:
            - CreditorAccount
            - FirstPaymentAmount
            - FirstPaymentDateTime
            - Frequency
            - DebtorAccount
    OBExchangeRate1:
      required:
        - RateType
        - UnitCurrency
      type: object
      properties:
        UnitCurrency:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: |-
            The currency that the exchange rate is expressed in.
            For example, for 1 GBP = xxx EUR, the `UnitCurrency` value is GBP.
        ExchangeRate:
          type: number
          description: |
            The exchange rate used to convert an amount from one currency into another.
            This reflects the price that one currency was bought at with another currency.
        RateType:
          $ref: '#/components/schemas/OBExchangeRateType2Code'
        ContractIdentification:
          maxLength: 256
          minLength: 1
          type: string
          description: The unique reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.
      description: The details on the currency exchange rate and contract.
    OBExchangeRate2:
      required:
        - ExchangeRate
        - RateType
        - UnitCurrency
      type: object
      properties:
        UnitCurrency:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: |-
            The currency that the exchange rate is expressed in.
            For example, for 1 GBP = xxx EUR, the `UnitCurrency` value is GBP.
        ExchangeRate:
          type: string
          pattern: ^[0-9]+\.[0-9]+$
          description: |-
            The exchange rate used to convert an amount from one currency into another.
            This reflects the price that one currency was bought at with another currency.
        RateType:
          $ref: '#/components/schemas/OBExchangeRateType2Code'
        ContractIdentification:
          maxLength: 256
          minLength: 1
          type: string
          description: The unique reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.
        ExpirationDateTime:
          type: string
          description: |-
            The date and time when the exchange rate agreement expires.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
      description: Further detailed information on the exchange rate that is used in the payment transaction.
    OBExchangeRateType2Code:
      type: string
      description: The type used to complete the currency exchange.
      enum:
        - Actual
        - Agreed
        - Indicative
    OBExternalConsentStatus1Code:
      type: string
      description: The status of the consent.
      enum:
        - Authorised
        - AwaitingAuthorisation
        - Consumed
        - Rejected
    OBExternalConsentStatus2Code:
      type: string
      description: The status of the consent.
      enum:
        - Authorised
        - AwaitingAuthorisation
        - AwaitingUpload
        - Consumed
        - Rejected
    OBExternalPaymentContext1Code:
      type: string
      description: The payment context.
      enum:
        - BillPayment
        - EcommerceGoods
        - EcommerceServices
        - Other
        - PartyToParty
    OBExternalMerchantCategoryCode:
      type: string
      description: The merchant category code.
    OBExternalMerchantCustomerIdentification:
      type: string
      description: The merchant customer identification.
    OBExternalPermissions2Code:
      type: string
      description: The Open Banking service request type.
      enum:
        - Create
    OBExternalStatus1Code:
      type: string
      description: The status of the payment.
      enum:
        - InitiationCompleted
        - InitiationFailed
        - InitiationPending
    OBFileBase:
      type: object
      properties:
        FileType:
          $ref: '#/components/schemas/OBExternalFileType1Code'
        FileHash:
          maxLength: 44
          minLength: 1
          type: string
          description: A base64 encoding of a SHA256 hash of the file to be uploaded.
        FileReference:
          maxLength: 40
          minLength: 1
          type: string
          description: Reference for the file.
        RequestedExecutionDateTime:
          type: string
          description: |-
            The date and time when the initiating party requests the clearing agent to process the payment.
            This is the date the debtor's account is to be debited.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        LocalInstrument:
          $ref: '#/components/schemas/OBExternalLocalInstrument1Code'
        RemittanceInformation:
          $ref: '#/components/schemas/OBRemittanceInformation1'
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds using a payment file.
    OBFile2:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds using a payment file.
      allOf:
        - $ref: '#/components/schemas/OBFileBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtor4'
        - type: object
          required:
            - FileHash
            - FileType
    OBFileInitiationResponse:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds using a payment file.
      allOf:
        - $ref: '#/components/schemas/OBFileBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtorResponse'
        - type: object
          required:
            - FileHash
            - FileType
            - DebtorAccount
    OBInternationalBase:
      type: object
      properties:
        InstructionIdentification:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique ID that an instructing party assigns for an instructed party to unambiguously identify the instruction.

            This ID is used between the instructing party and the instructed party to refer to the individual instruction.
            It can be included in the messages related to the instruction.
        EndToEndIdentification:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique and immutable ID that the initiating party assigns to unambiguously identify the transaction.

            This ID is used for reconciliation or to link tasks related to the transaction.
            It can be included in the messages related to the transaction.

            :::note
            Faster Payments Scheme can access only 31 characters for the `EndToEndIdentification` field.
            :::
        ChargeBearer:
          $ref: '#/components/schemas/OBChargeBearerType1Code'
        CurrencyOfTransfer:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: The currency of the money to be transferred, which is different from the currency of the debtor's account.
        InstructedAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
          description: |-
            The amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency that the initiating party instructs.

            This amount has to be transported unchanged through the transaction chain.
        ExchangeRateInformation:
          $ref: '#/components/schemas/OBExchangeRate1'
        Creditor:
          $ref: '#/components/schemas/OBPartyIdentification43'
        CreditorAgent:
          $ref: '#/components/schemas/OBBranchAndFinancialInstitutionIdentification6'
        CreditorAccount:
          $ref: '#/components/schemas/OBCashAccountCreditor3'
        RemittanceInformation:
          $ref: '#/components/schemas/OBRemittanceInformation1'
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single international payment.
    OBInternational2:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single international payment.
      allOf:
        - $ref: '#/components/schemas/OBInternationalBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtor4'
        - type: object
          required:
            - CreditorAccount
            - CurrencyOfTransfer
            - EndToEndIdentification
            - InstructedAmount
            - InstructionIdentification
    OBInternationalInitiationResponse:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single international payment.
      allOf:
        - $ref: '#/components/schemas/OBInternationalBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtorResponse'
        - type: object
          required:
            - CreditorAccount
            - CurrencyOfTransfer
            - EndToEndIdentification
            - InstructedAmount
            - InstructionIdentification
            - DebtorAccount
    OBInternationalScheduledBase:
      type: object
      properties:
        InstructionIdentification:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique ID that an instructing party assigns for an instructed party to unambiguously identify the instruction.

            This ID is used between the instructing party and the instructed party to refer to the individual instruction.
            It can be included in the messages related to the instruction.
        EndToEndIdentification:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique and immutable ID that the initiating party assigns to unambiguously identify the transaction.

            This ID is used for reconciliation or to link tasks related to the transaction.
            It can be included in the messages related to the transaction.

            :::note
            Faster Payments Scheme can access only 31 characters for the `EndToEndIdentification` field.
            :::
        ChargeBearer:
          $ref: '#/components/schemas/OBChargeBearerType1Code'
        RequestedExecutionDateTime:
          type: string
          description: |-
            The date and time when the initiating party requests the clearing agent to process the payment.
            This is the date the debtor's account is to be debited.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        CurrencyOfTransfer:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: The currency of the money to be transferred, which is different from the currency of the debtor's account.
        InstructedAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
              description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
          description: |-
            The amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency that the initiating party instructs.

            This amount has to be transported unchanged through the transaction chain.
        ExchangeRateInformation:
          $ref: '#/components/schemas/OBExchangeRate1'
        Creditor:
          $ref: '#/components/schemas/OBPartyIdentification43'
        CreditorAgent:
          $ref: '#/components/schemas/OBBranchAndFinancialInstitutionIdentification6'
        CreditorAccount:
          $ref: '#/components/schemas/OBCashAccountCreditor3'
        RemittanceInformation:
          $ref: '#/components/schemas/OBRemittanceInformation1'
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single scheduled international payment.
    OBInternationalScheduled2:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single scheduled international payment.
      allOf:
        - $ref: '#/components/schemas/OBInternationalScheduledBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtor4'
        - type: object
          required:
            - CreditorAccount
            - CurrencyOfTransfer
            - InstructedAmount
            - InstructionIdentification
            - RequestedExecutionDateTime
    OBInternationalScheduledInitiationResponse:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for a single scheduled international payment.
      allOf:
        - $ref: '#/components/schemas/OBInternationalScheduledBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtorResponse'
        - type: object
          required:
            - CreditorAccount
            - CurrencyOfTransfer
            - InstructedAmount
            - InstructionIdentification
            - RequestedExecutionDateTime
            - DebtorAccount
    OBInternationalStandingOrderBase:
      type: object
      properties:
        Frequency:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The frequency of the standing order:
            - `EvryDay`: Every day
            - `IntrvlWkDay`: Only one week interval is supported (01) and any day within the week (01 to 07)
            - `IntrvlMnthDay`: Only one month interval is supported (01) and any day within the month (1 to 31)

            Example values:
            - `EvryDay`
            - `IntrvlWkDay:01:0[1-7]`
            - `IntrvlMnthDay:01:(0[1-9]|[12][0-9]|3[01])`

            :::caution
            The day of the interval must agree with the day from `FirstPaymentDateTime`, otherwise, for `POST` requests, the `Unsupported frequency` error is returned.
            For example: 
            - Correct: `Frequency=IntrvlMnthDay:01:03` and `FirstPaymentDateTime=2026-02-03T14:15:22Z` - the day to schedule the payment is the 3rd day of the month, and the first occurrence will be on the 3rd of February
            - Incorrect: `Frequency=IntrvlMnthDay:01:03` and `FirstPaymentDateTime=2026-02-17T14:15:22Z` - the day to schedule the payment is the 3rd day of the month, but the first occurrence is set to the 17th of February, so the days don't match.
            :::
        Reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique reference that the creditor assigns to unambiguously refer to the payment transaction.

            If available, the initiating party should provide this reference in the structured remittance information to enable reconciliation by the creditor upon receipt of the amount of money.

            If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor's reference or payment remittance identification should be quoted in the end-to-end transaction identification.
        NumberOfPayments:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            :::caution
            Currently, standing orders do not support ending conditions, so using this field will result in an error.
            :::

            The number of payments to make, with the interval set in `frequency`, counting from the start date set in `FirstPaymentDateTime`.
        FirstPaymentDateTime:
          type: string
          description: |-
            The date and time when the first payment for a standing order schedule is made.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.

            :::caution
            The day part of the date must agree with the day of the interval set in `Frequency`, otherwise, for `POST` requests, the `Unsupported frequency` error is returned.
            For example: 
            - Correct: `Frequency=IntrvlMnthDay:01:03` and `FirstPaymentDateTime=2026-02-03T14:15:22Z` - the day to schedule the payment is the 3rd day of the month, and the first occurrence will be on the 3rd of February
            - Incorrect: `Frequency=IntrvlMnthDay:01:03` and `FirstPaymentDateTime=2026-02-17T14:15:22Z` - the day to schedule the payment is the 3rd day of the month, but the first occurrence is set to the 17th of February, so the days don't match.
            :::
          format: date-time
        FinalPaymentDateTime:
          type: string
          description: |-
            :::caution
            Currently, standing orders do not support ending conditions, so this field is ignored.
            :::

            The date and time when the final payment for a standing order schedule is made.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        ChargeBearer:
          $ref: '#/components/schemas/OBChargeBearerType1Code'
        CurrencyOfTransfer:
          pattern: ^[A-Z]{3,3}$
          type: string
          description: The currency of the money to be transferred, which is different from the currency of the debtor's account.
        InstructedAmount:
          required:
            - Amount
            - Currency
          type: object
          properties:
            Amount:
              $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType'
            Currency:
              pattern: ^[A-Z]{3,3}$
              type: string
              description: '[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.'
          description: |-
            The amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency that the initiating party instructs.

            This amount has to be transported unchanged through the transaction chain.
        Creditor:
          $ref: '#/components/schemas/OBPartyIdentification43'
        CreditorAgent:
          $ref: '#/components/schemas/OBBranchAndFinancialInstitutionIdentification6'
        CreditorAccount:
          $ref: '#/components/schemas/OBCashAccountCreditor3'
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for an international standing order.
    OBInternationalStandingOrder2:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for an international standing order.
      allOf:
        - $ref: '#/components/schemas/OBInternationalStandingOrderBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtor4'
        - type: object
          required:
            - CreditorAccount
            - CurrencyOfTransfer
            - FirstPaymentDateTime
            - Frequency
            - InstructedAmount
    OBInternationalStandingOrderInitiationResponse:
      type: object
      description: The initiation payload that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which is used to request movement of funds from the debtor account to the creditor for an international standing order.
      allOf:
        - $ref: '#/components/schemas/OBInternationalStandingOrderBase'
        - type: object
          properties:
            DebtorAccount:
              $ref: '#/components/schemas/OBCashAccountDebtorResponse'
        - type: object
          required:
            - CreditorAccount
            - CurrencyOfTransfer
            - FirstPaymentDateTime
            - Frequency
            - InstructedAmount
            - DebtorAccount
    OBPartyIdentification43:
      type: object
      properties:
        Name:
          maxLength: 140
          minLength: 1
          type: string
          description: The name of a known party used to identify the party.
        PostalAddress:
          $ref: '#/components/schemas/OBPostalAddress6'
      description: The party that an amount of money is due to.
    OBPostalAddress6:
      type: object
      properties:
        Department:
          maxLength: 70
          minLength: 1
          type: string
          description: The name of the department.
        SubDepartment:
          maxLength: 70
          minLength: 1
          type: string
          description: The name of the sub-department.
        StreetName:
          maxLength: 70
          minLength: 1
          type: string
          description: The name of the street.
        BuildingNumber:
          maxLength: 16
          minLength: 1
          type: string
          description: The number of the building.
        PostCode:
          maxLength: 16
          minLength: 1
          type: string
          description: The post code of the address.
        TownName:
          maxLength: 35
          minLength: 1
          type: string
          description: The name of the town.
        CountrySubDivision:
          maxLength: 35
          minLength: 1
          type: string
          description: The subdivision of the country, such as state, region, or county.
        Country:
          pattern: ^[A-Z]{2,2}$
          type: string
          description: The name of the country.
        AddressLine:
          maxItems: 7
          minItems: 0
          type: array
          description: The information that locates and identifies the address of the creditor, presented in free format text.
          items:
            maxLength: 70
            minLength: 1
            type: string
      description: The postal address of the creditor, as defined by postal services.
    OBRemittanceInformation1:
      type: object
      properties:
        Unstructured:
          maxLength: 140
          minLength: 1
          type: string
          description: The information used for matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in an unstructured form.
        Reference:
          maxLength: 35
          minLength: 1
          type: string
          description: |-
            The unique reference that the creditor assigns to unambiguously identify the payment transaction.

            If available, the initiating party should provide this reference in the structured remittance information to enable reconciliation by the creditor upon receipt of the amount of money.

            If the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor's reference or payment remittance identification should be quoted in the end-to-end transaction identification.

            :::note
            Faster Payments Scheme can accept only 18 characters for the `Reference` field.
            :::

            :::caution
            Only one reference should be provided, if both `Reference` and `Unstructured` parameters are provided, then the `Unstructured` parameter will be ignored.
            :::
      description: The information used for matching an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system.
    OBRisk1:
      type: object
      properties:
        PaymentContextCode:
          $ref: '#/components/schemas/OBExternalPaymentContext1Code'
        MerchantCategoryCode:
          $ref: '#/components/schemas/OBExternalMerchantCategoryCode'
        MerchantCustomerIdentification:
          $ref: '#/components/schemas/OBExternalMerchantCustomerIdentification'
        DeliveryAddress:
          required:
            - Country
            - TownName
          type: object
          properties:
            AddressLine:
              maxItems: 2
              minItems: 0
              type: array
              description: The information that locates and identifies the delivery address, as defined by postal services, that is presented in free format text.
              items:
                maxLength: 70
                minLength: 1
                type: string
            StreetName:
              maxLength: 70
              minLength: 1
              type: string
              description: The name of the street.
            BuildingNumber:
              maxLength: 16
              minLength: 1
              type: string
              description: The number of the building.
            PostCode:
              maxLength: 16
              minLength: 1
              type: string
              description: The post code of the delivery address.
            TownName:
              maxLength: 35
              minLength: 1
              type: string
              description: The name of the town.
            CountrySubDivision:
              maxItems: 2
              minItems: 0
              type: array
              description: The subdivision of the country, for example, state, region or county.
              items:
                maxLength: 35
                minLength: 1
                type: string
            Country:
              pattern: ^[A-Z]{2,2}$
              type: string
              description: The name of the country.
          description: The information that locates and identifies the delivery address, as defined by postal services or in free format text.
      description: The Risk section contains the risk indicators that the initiating party sends to the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary), which can be used to specify additional details for risk scoring for account information.
    OBTransactionIndividualStatus1Code:
      type: string
      description: The status of the payment information group.
      enum:
        - AcceptedSettlementCompleted
        - AcceptedSettlementInProcess
        - Pending
        - Rejected
    OBWriteDataDomestic2:
      required:
        - ConsentId
        - Initiation
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        Initiation:
          $ref: '#/components/schemas/OBDomestic2'
    OBWriteDataDomesticConsent2:
      required:
        - Initiation
      type: object
      properties:
        Initiation:
          $ref: '#/components/schemas/OBDomestic2'
    OBWriteDataDomesticConsentResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the resource was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalConsentStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Initiation:
          $ref: '#/components/schemas/OBDomestic2'
    OBWriteDataDomesticResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - DomesticPaymentId
        - Initiation
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        DomesticPaymentId:
          maxLength: 40
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to uniquely identify the domestic payment resource.
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the message was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBTransactionIndividualStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Initiation:
          $ref: '#/components/schemas/OBDomesticInitiationResponse'
    OBWriteDataDomesticScheduled2:
      required:
        - ConsentId
        - Initiation
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        Initiation:
          $ref: '#/components/schemas/OBDomesticScheduled2'
    OBWriteDataDomesticScheduledConsent2:
      required:
        - Initiation
        - Permission
      type: object
      properties:
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
        Initiation:
          $ref: '#/components/schemas/OBDomesticScheduled2'
    OBWriteDataDomesticScheduledConsentResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - Permission
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the resource was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalConsentStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the consent resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
        Initiation:
          $ref: '#/components/schemas/OBDomesticScheduled2'
    OBWriteDataDomesticScheduledResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - DomesticScheduledPaymentId
        - Initiation
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        DomesticScheduledPaymentId:
          maxLength: 40
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the domestic schedule payment resource.
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the message was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Initiation:
          $ref: '#/components/schemas/OBDomesticScheduledInitiationResponse'
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
    OBWriteDataDomesticStandingOrder2:
      required:
        - ConsentId
        - Initiation
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        Initiation:
          $ref: '#/components/schemas/OBDomesticStandingOrder2'
    OBWriteDataDomesticStandingOrderConsent2:
      required:
        - Initiation
        - Permission
      type: object
      properties:
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
        Initiation:
          $ref: '#/components/schemas/OBDomesticStandingOrder2'
    OBWriteDataDomesticStandingOrderConsentResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - Permission
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the resource was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalConsentStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
        Initiation:
          $ref: '#/components/schemas/OBDomesticStandingOrder2'
    OBWriteDataDomesticStandingOrderResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - DomesticStandingOrderId
        - Initiation
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        DomesticStandingOrderId:
          maxLength: 40
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the domestic standing order resource.
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the resource was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Initiation:
          $ref: '#/components/schemas/OBDomesticStandingOrderInitiationResponse'
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
    OBWriteDataFileConsent2:
      required:
        - Initiation
      type: object
      properties:
        Initiation:
          $ref: '#/components/schemas/OBFile2'
    OBWriteDataFileConsentResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the resource was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalConsentStatus2Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the consent resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Initiation:
          $ref: '#/components/schemas/OBFile2'
    OBWriteDataFileResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - FilePaymentId
        - Initiation
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        FilePaymentId:
          maxLength: 40
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the file payment resource.
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the message was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the consent resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Initiation:
          $ref: '#/components/schemas/OBFileInitiationResponse'
    OBWriteDataInternational2:
      required:
        - ConsentId
        - Initiation
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        Initiation:
          $ref: '#/components/schemas/OBInternational2'
    OBWriteDataInternationalConsent2:
      required:
        - Initiation
      type: object
      properties:
        Initiation:
          $ref: '#/components/schemas/OBInternational2'
    OBWriteDataInternationalConsentResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the resource was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalConsentStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        ExchangeRateInformation:
          $ref: '#/components/schemas/OBExchangeRate2'
        Initiation:
          $ref: '#/components/schemas/OBInternational2'
    OBWriteDataInternationalResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - InternationalPaymentId
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        InternationalPaymentId:
          maxLength: 40
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the international payment resource.
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the message was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBTransactionIndividualStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        ExchangeRateInformation:
          $ref: '#/components/schemas/OBExchangeRate2'
        Initiation:
          $ref: '#/components/schemas/OBInternationalInitiationResponse'
    OBWriteDataInternationalScheduled2:
      required:
        - ConsentId
        - Initiation
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        Initiation:
          $ref: '#/components/schemas/OBInternationalScheduled2'
    OBWriteDataInternationalScheduledConsent2:
      required:
        - Initiation
        - Permission
      type: object
      properties:
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
        Initiation:
          $ref: '#/components/schemas/OBInternationalScheduled2'
    OBWriteDataInternationalScheduledConsentResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - Permission
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the resource was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalConsentStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
        ExchangeRateInformation:
          $ref: '#/components/schemas/OBExchangeRate2'
        Initiation:
          $ref: '#/components/schemas/OBInternationalScheduled2'
    OBWriteDataInternationalScheduledResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - InternationalScheduledPaymentId
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        InternationalScheduledPaymentId:
          maxLength: 40
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the international scheduled payment resource.
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the message was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        ExchangeRateInformation:
          $ref: '#/components/schemas/OBExchangeRate2'
        Initiation:
          $ref: '#/components/schemas/OBInternationalScheduledInitiationResponse'
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
    OBWriteDataInternationalStandingOrder2:
      required:
        - ConsentId
        - Initiation
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        Initiation:
          $ref: '#/components/schemas/OBInternationalStandingOrder2'
    OBWriteDataInternationalStandingOrderConsent2:
      required:
        - Initiation
        - Permission
      type: object
      properties:
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
        Initiation:
          $ref: '#/components/schemas/OBInternationalStandingOrder2'
    OBWriteDataInternationalStandingOrderConsentResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - Permission
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the resource was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalConsentStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
        Initiation:
          $ref: '#/components/schemas/OBInternationalStandingOrder2'
    OBWriteDataInternationalStandingOrderResponse2:
      required:
        - ConsentId
        - CreationDateTime
        - Initiation
        - InternationalStandingOrderId
        - Status
        - StatusUpdateDateTime
      type: object
      properties:
        InternationalStandingOrderId:
          maxLength: 40
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the international standing order resource.
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        CreationDateTime:
          type: string
          description: |-
            The date and time when the resource was created.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Status:
          $ref: '#/components/schemas/OBExternalStatus1Code'
        StatusUpdateDateTime:
          type: string
          description: |-
            The date and time when the resource status was updated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.

            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        Initiation:
          $ref: '#/components/schemas/OBInternationalStandingOrderInitiationResponse'
        Permission:
          $ref: '#/components/schemas/OBExternalPermissions2Code'
    OBWriteDomestic2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomestic2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteDomesticConsent2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticConsent2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteDomesticConsentResponse2:
      required:
        - Data
        - Links
        - Meta
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticConsentResponse2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteDomesticResponse2:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticResponse2'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteDomesticScheduled2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticScheduled2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteDomesticScheduledConsent2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticScheduledConsent2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteDomesticScheduledConsentResponse2:
      required:
        - Data
        - Links
        - Meta
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticScheduledConsentResponse2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteDomesticScheduledResponse2:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticScheduledResponse2'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteDomesticStandingOrder2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticStandingOrder2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteDomesticStandingOrderConsent2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticStandingOrderConsent2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteDomesticStandingOrderConsentResponse2:
      required:
        - Data
        - Links
        - Meta
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticStandingOrderConsentResponse2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteDomesticStandingOrderResponse2:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataDomesticStandingOrderResponse2'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteFile2:
      required:
        - Data
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataFile2'
    OBWriteFileConsent2:
      required:
        - Data
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataFileConsent2'
    OBWriteFileConsentResponse2:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataFileConsentResponse2'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteFileResponse2:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataFileResponse2'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteInternational2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternational2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteInternationalConsent2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalConsent2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteInternationalConsentResponse2:
      required:
        - Data
        - Links
        - Meta
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalConsentResponse2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteInternationalResponse2:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalResponse2'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteInternationalScheduled2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalScheduled2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteInternationalScheduledConsent2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalScheduledConsent2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteInternationalScheduledConsentResponse2:
      required:
        - Data
        - Links
        - Meta
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalScheduledConsentResponse2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteInternationalScheduledResponse2:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalScheduledResponse2'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteInternationalStandingOrder2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalStandingOrder2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteInternationalStandingOrderConsent2:
      required:
        - Data
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalStandingOrderConsent2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
    OBWriteInternationalStandingOrderConsentResponse2:
      required:
        - Data
        - Links
        - Meta
        - Risk
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalStandingOrderConsentResponse2'
        Risk:
          $ref: '#/components/schemas/OBRisk1'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteInternationalStandingOrderResponse2:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataInternationalStandingOrderResponse2'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteDataFile2:
      required:
        - ConsentId
        - Initiation
      type: object
      properties:
        ConsentId:
          maxLength: 128
          minLength: 1
          type: string
          description: The unique ID that the [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) assigns to identify the consent resource.
        Initiation:
          $ref: '#/components/schemas/OBFile2'
    OBSupplementaryData1:
      maxLength: 40
      minLength: 1
      type: object
      additionalProperties:
        type: string
        description: |-
          The additional information that cannot be captured in the structured fields and/or any other specific block.

          **`< * >`** acts as a placeholder here, and it represents an optional property (or multiple such properties) with an arbitrary name and data.

          To see an example, check the response body samples.
      description: The additional information that cannot be captured in the structured fields and/or any other specific block.
    OBCashAccountDebtor4:
      required:
        - Identification
        - SchemeName
      type: object
      description: |
        The details to identify the account from which the payment consent can be approved.

        If provided in the consent, the [PSU](https://developer.revolut.com/docs/guides/build-banking-apps/glossary) will only be able to approve the payment consent from an account which matches the provided account identifier.
      properties:
        SchemeName:
          $ref: '#/components/schemas/OBExternalAccountIdentification4Code'
        Identification:
          maxLength: 256
          minLength: 1
          type: string
          description: The identifier assigned to the account, which is known by the account owner.
        Name:
          maxLength: 70
          minLength: 1
          type: string
          description: |-
            The name or names of the account owner(s) represented at an account level.

            The account name is not the product name or the nickname of the account.

            :::warning
            The name value is not validated against the actual owner name of the account.
            :::
        SecondaryIdentification:
          maxLength: 34
          minLength: 1
          type: string
          description: |-
            The secondary account ID that the account servicing institution assigns.

            Building societies can use this ID to identify accounts with a roll number in addition to a sort code and account number combination.
    OBCashAccountDebtorResponse:
      required:
        - Identification
        - SchemeName
      type: object
      description: |-
        The details to identify the account which was used to approve the payment consent.

        This information can be used as a refund address.
      properties:
        SchemeName:
          $ref: '#/components/schemas/OBExternalAccountIdentification4Code'
        Identification:
          maxLength: 256
          minLength: 1
          type: string
          description: The identifier assigned to the account, which is known by the account owner.
        Name:
          maxLength: 70
          minLength: 1
          type: string
          description: |-
            The name or names of the account owner(s) represented at an account level.

            The account name is not the product name or the nickname of the account.

            :::warning[Name validation]
            This field will only return the actual owner(s) name if `DebtorAccount` was not defined in the consent.

            If it was defined in the consent, the same value from the consent will be returned.
            :::
        SecondaryIdentification:
          maxLength: 34
          minLength: 1
          type: string
          description: |-
            The secondary account ID that the account servicing institution assigns.

            Building societies can use this ID to identify accounts with a roll number in addition to a sort code and account number combination.
    OBCashAccountCreditor3:
      required:
        - Identification
        - Name
        - SchemeName
      type: object
      properties:
        SchemeName:
          $ref: '#/components/schemas/OBExternalAccountIdentification4Code'
        Identification:
          maxLength: 256
          minLength: 1
          type: string
          description: The account ID that the institution assigns to identify an account, which is known by the account owner.
        Name:
          maxLength: 70
          minLength: 1
          type: string
          description: |-
            The account name that the account servicing institution assigns.

            The account name is the name or names of the account owner(s) represented at an account level.

            The account name is not the product name or the nickname of the account.

            :::note
            [ASPSP](https://developer.revolut.com/docs/guides/build-banking-apps/glossary)s might optionally validate this name to confirm the payee.
            :::
        SecondaryIdentification:
          maxLength: 34
          minLength: 1
          type: string
          description: |-
            The secondary account ID that the account servicing institution assigns.

            Building societies can use this ID to identify accounts with a roll number in addition to a sort code and account number combination.
      description: The details to identify the account.
    OBWriteFundsConfirmationResponse1:
      required:
        - Data
        - Links
        - Meta
      type: object
      properties:
        Data:
          $ref: '#/components/schemas/OBWriteDataFundsConfirmationResponse1'
        Links:
          $ref: '#/components/schemas/Links'
        Meta:
          $ref: '#/components/schemas/Meta'
    OBWriteDataFundsConfirmationResponse1:
      type: object
      properties:
        FundsAvailableResult:
          $ref: '#/components/schemas/OBFundsAvailableResult1'
    OBExternalLocalInstrument1Code:
      maxLength: 50
      minLength: 1
      type: string
      description: |-
        User community specific instrument.

        Use this element to specify a local instrument, local clearing option and/or further qualify the service or service level.
    OBExternalFileType1Code:
      type: string
      description: The payment file type.
      example: text/csv
    OBBranchAndFinancialInstitutionIdentification6:
      type: object
      properties:
        SchemeName:
          $ref: '#/components/schemas/OBExternalFinancialInstitutionIdentification4Code'
        Identification:
          maxLength: 35
          minLength: 1
          type: string
          description: The unique ID of the servicing institution.
        Name:
          maxLength: 140
          minLength: 1
          type: string
          description: The name of a known agent used to identify the agent.
        PostalAddress:
          $ref: '#/components/schemas/OBPostalAddress6'
      description: |-
        The party that manages the account on behalf of the account owner by:
        - Managing the registration and booking of entries on the account.
        - Calculating balances on the account.
        - Providing information about the account.

        This is the servicer of the beneficiary account.
    OBExternalFinancialInstitutionIdentification4Code:
      type: array
      items:
        type: string
      description: The name of the identification scheme, which is published in an external list.
      example:
        - UK.OBIE.IBAN
    OBFundsAvailableResult1:
      required:
        - FundsAvailable
        - FundsAvailableDateTime
      type: object
      properties:
        FundsAvailableDateTime:
          type: string
          description: |-
            The date and time when the funds availability check was generated.

            All dates in the JSON payloads are represented in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time format.
            All date-time fields in responses must include the timezone.
            For example: `2017-04-05T10:43:07+00:00`.
          format: date-time
        FundsAvailable:
          type: boolean
          description: Indicates whether there are enough funds to pay for the `Amount` in the consent request.
      description: The results of the funds availability check.
    PaymentStatus:
      type: string
      description: The status of the payment.
      enum:
        - Created
        - Pending
        - Completed
        - Failed
        - Deleted
  parameters:
    FromBookingDateTimeParam:
      name: fromBookingDateTime
      in: query
      description: |-
        The UTC [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) Date Time to filter transactions.
        If the parameter is provided, only transactions with `BookingDateTime >= fromBookingDateTime` will be returned.
        Note that the results are paginated.

        :::note
        If you provide this parameter, both the date and time components are required.
        If you don't need to filter by time, you can set the time part to `00:00:00`. 
        For example, to fetch transactions with `BookingDateTime` equal to or after 09 Oct 2025, set this value to `2025-10-09T00:00:00Z`.
        :::
      schema:
        type: string
        format: date-time
        example: '2025-10-09T00:00:00Z'
    ToBookingDateTimeParam:
      name: toBookingDateTime
      in: query
      description: |-
        The UTC [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) Date Time to filter transactions.

        If the parameter is provided, only transactions with `BookingDateTime < toBookingDateTime` will be returned.
        Used for pagination: to fetch the next page of results, use the `BookingDateTime` of the last transaction from the current page as the new `toBookingDateTime` value. 

        If not provided, the most recent transactions will be returned.

        :::note
        If you provide this parameter, both the date and time components are required.
        If you don't need to filter by time, you can set the time part to `00:00:00`. 
        For example, to fetch transactions with `BookingDateTime` older than 13 Feb 2026, set this value to `2026-02-13T00:00:00Z`.
        :::
      schema:
        type: string
        format: date-time
        example: '2026-02-13T00:00:00Z'
    x-fapi-financial-id-Param:
      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
    x-fapi-customer-ip-address-Param:
      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
    x-fapi-interaction-id-Param:
      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
    x-fapi-customer-last-logged-time-Param:
      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
    AuthorizationParam:
      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
    ClientId:
      name: ClientId
      in: path
      description: The Client ID of the application.
      required: true
      schema:
        type: string
    x-customer-user-agent-Param:
      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
  securitySchemes:
    AccessToken:
      type: apiKey
      description: |-
        Each Open Banking API must contain an authorization header in the following format to make a call: `Bearer <yourAccessToken>`.

        Before you start, ensure that you've got an access token with the correct `scope` using the `/token` endpoint.
        You need to get the authorization code first and exchange it for an access token.

        For more information, see [Tutorial: Get account and transaction information](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/get-account-and-transaction-information) and [Tutorial: Initiate your first payment](https://developer.revolut.com/docs/guides/build-banking-apps/tutorials/initiate-your-first-payment) as examples.
      name: Authorization
      in: header
    JWS:
      type: apiKey
      description: |-
        Open Banking API Payment requests additionally require a JSON Web Signature (JWS) which needs to be added to the header of the request.
        The JWS signature must be obtained using the full content of the payload.
      name: x-jws-signature
      in: header
  examples:
    Error401InvalidRevokedOrExpiredToken:
      summary: Token invalid, revoked or expired
      value:
        Code: 401 Unauthorized
        Message: Access token is invalid or expired
        Id: XXXXXXXXXXXX
        Errors:
          - ErrorCode: UK.OBIE.Resource.Unauthorized
            Message: Access token is invalid or expired
    Error401ConsentLacksPermissions:
      summary: Consent lacks permissions
      value:
        Code: 401 Unauthorized
        Message: Consent has no permissions
        Id: XXXXXXXXXXXX
        Errors:
          - ErrorCode: UK.OBIE.Resource.Unauthorized
            Message: Consent has no permissions
    Error403ForbiddenAccess:
      summary: SCA 5 minutes expired
      value:
        Code: 403 Forbidden
        Message: Access forbidden
        Id: XXXXXXXXXXXX
        Errors:
          - ErrorCode: UK.OBIE.Resource.Forbidden
            Message: Access forbidden
