openapi: 3.1.1
info:
  title: Merchant API
  version: 2024-05-01
  description: |-
    Welcome to the Revolut Merchant API - your solution to managing the core aspects of e-commerce and accepting online payments. Whether you're a startup, a growing business, or an established enterprise in the e-commerce industry, our API helps you streamline your operations.

    As a Revolut Business customer with a Merchant Account, you can use the
    Merchant API to leverage the following features:

    - [Order management](/docs/api/merchant/2024-05-01#tag-orders)
    - [Customer management](/docs/api/merchant/2024-05-01#tag-customers)
    - [Payment management](/docs/api/merchant/2024-05-01#tag-payments)
    - [Reporting analytics](/docs/api/merchant/2024-05-01#tag-report-runs)
    - [Webhook management](/docs/api/merchant/2024-05-01#tag-webhooks)
    - [Location management](/docs/api/merchant/2024-05-01#tag-locations)

    ... and more.

    ### API versions

    :::warning
    We highly recommend using versioning in your API calls. If you don't provide a version header on the operations where it's required, you will receive an error response.
    :::

    The Merchant API uses request header versioning. Where it is required you need to use the `Revolut-Api-Version` header parameter to specify an API version. Each request, where it is indicated in the API specification, must contain a version header in the following format:
      
    ```
    'Revolut-Api-Version: 2024-05-01'
    ```

    :::info
    For more information, see: [API versions](/docs/guides/merchant/reference/versioning/api-versions)
    :::

    ### Test the Merchant API

    You can test the Merchant 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)
  contact: {}
servers:
  - description: Production server (uses live data)
    url: https://merchant.revolut.com
  - description: Sandbox server (uses test data)
    url: https://sandbox-merchant.revolut.com
paths:
  /api/orders:
    $ref: "#/x-ext/8351cd0"
  /api/orders/{order_id}:
    $ref: "#/x-ext/bd8d547"
  /api/1.0/orders:
    $ref: "#/x-ext/da2d82c"
  /api/orders/{order_id}/increment-authorisation:
    $ref: "#/x-ext/3061d3b"
  /api/orders/{order_id}/capture:
    $ref: "#/x-ext/04d0213"
  /api/orders/{order_id}/cancel:
    $ref: "#/x-ext/3b2912c"
  /api/1.0/orders/{order_id}/refund:
    $ref: "#/x-ext/078dd5b"
  /api/orders/{order_id}/payments:
    $ref: "#/x-ext/16d7e79"
  /api/1.0/customers:
    $ref: "#/x-ext/9234e4e"
  /api/1.0/customers/{customer_id}:
    $ref: "#/x-ext/939dede"
  /api/1.0/customers/{customer_id}/payment-methods:
    $ref: "#/x-ext/70ab0f7"
  /api/1.0/customers/{customer_id}/payment-methods/{payment_method_id}:
    $ref: "#/x-ext/a52911f"
  /api/payments/{payment_id}:
    $ref: "#/x-ext/60081ba"
  /api/payouts:
    $ref: "#/x-ext/61bd489"
  /api/payouts/{payout_id}:
    $ref: "#/x-ext/6a3beee"
  /api/report-runs:
    $ref: "#/x-ext/ee6af6f"
  /api/report-runs/{report_run_id}:
    $ref: "#/x-ext/d599abc"
  /api/report-runs/{report_run_id}/file:
    $ref: "#/x-ext/4fef0ad"
  /api/1.0/webhooks:
    $ref: "#/x-ext/a513720"
  /api/1.0/webhooks/{webhook_id}:
    $ref: "#/x-ext/ee3efc1"
  /api/1.0/webhooks/{webhook_id}/rotate-signing-secret:
    $ref: "#/x-ext/4afc7ce"
  /api/apple-pay/domains/register:
    $ref: "#/x-ext/2e8f60f"
  /api/apple-pay/domains/unregister:
    $ref: "#/x-ext/d246405"
  /api/synchronous-webhooks:
    $ref: "#/x-ext/a245669"
  /api/synchronous-webhooks/{synchronous_webhook_id}:
    $ref: "#/x-ext/048a83d"
  /api/locations:
    $ref: "#/x-ext/45a45bc"
  /api/locations/{location_id}:
    $ref: "#/x-ext/83ba3d8"
  /api/terminals:
    $ref: "#/x-ext/2226ae4"
  /api/orders/{order_id}/payment-intents:
    $ref: "#/x-ext/3fb6b5d"
  /api/payment-intents/{payment_intent_id}:
    $ref: "#/x-ext/7f3eb22"
  /api/payment-intents/{payment_intent_id}/cancel:
    $ref: "#/x-ext/3637d02"
components:
  securitySchemes:
    Api-Key:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Each Merchant API request must contain an authorization header in the
        following format:


        ```

        'Authorization: Bearer <yourSecretApiKey>'

        ```


        To use this API, you need to generate API keys from your Revolut
        Business account. The Secret key is used in the authorization header for
        all server calls, while the Public key is provided with payment methods
        at checkout.


        :::info

        For detailed instructions on generating your API keys, see: [Generate
        API keys](/docs/guides/merchant/get-started#generate-api-keys).

        :::
    SSL:
      type: http
      scheme: SSL
      description: >-
        :::note

        This authentication protocol is used exclusively when using [Fast
        checkout](/docs/guides/merchant/optimise-checkout/fast-checkout).

        :::


        Connection over HTTPS is using SSL authentication. For successful
        authentication, your system's certificate should be issued by a Public
        Certificate Authority (PCA) and your system should trust Revolut's
        public certificate.
    Payload-Signature:
      type: apiKey
      in: header
      name: Revolut-Pay-Payload-Signature
      description: |-
        :::note
        This authentication protocol is used exclusively when using [Fast checkout](/docs/guides/merchant/optimise-checkout/fast-checkout).
        :::

        Data integrity and authorship will be verified using a payload-based signature. The response of a successful URL registration for address validation (see: [Register address validation for Fast checkout](/docs/api/merchant/2024-05-01#register-address-validation-endpoint)) will contain a secret signing key. 

        The signing key will be used by Revolut to compute a Hash-based Message Authentication Code (HMAC) payload signature whenever the registered URL is called, which should be verified by your backend.
security:
  - Api-Key: []
tags:
  - name: Orders
    description: >-
      The Orders resource in the Merchant API offers a comprehensive solution
      for managing the lifecycle of orders within your e-commerce or retail
      platform. Designed to streamline order processing, this resource
      encapsulates a suite of operations that allow for efficiently handling
      order management-related tasks. For more information about the order
      lifecycle, see: [Order and payment
      lifecycle](/docs/guides/merchant/reference/order-lifecycle).


      These operations are equipped to handle various order management
      scenarios, providing a robust interface for businesses to interact with
      their order data. 


      To process a payment related to your customers' purchases, you need to
      create an `Order` object. Then you can use an order's unique `token` to
      process and accept payments via the Revolut Checkout Widget.


      :::warning

      The [Create an order endpoint](/docs/api/merchant/2024-05-01#create-order)
      was updated to a new version and now returns `token` as the public
      identifier for the order. Previous integrations might still use the
      deprecated endpoint returning `public_id`.


      We strongly advise upgrading to the new [Create an order
      endpoint](/docs/api/merchant/2024-05-01#create-order).

      :::
  - name: Customers
    description: |-
      The Customers resource in the Merchant API is a pivotal tool for tracking and managing customer-related transactions within your e-commerce or retail platform. This resource provides a structured approach to customer management, enabling you to maintain a consistent record of customer transactions.

      A `Customer` object can be created using the [Create a customer](/docs/api/merchant/2024-05-01#create-customer) endpoint and you can then retrieve, update and delete a customer using its `id`. `Customer` objects enable you to track multiple transactions in your system associated with the same customer in the Merchant API.

      You can save and store payment methods of a customer in the `payment_method` object, for more information, see: [Charge a customer's saved payment method](/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method). A merchant can store the details of the payment securely and group transactions from the same payment method in their system. 

      A payment method is unique for each customer. For example, if the same card is used for a transaction by two different customers, two payment method objects are created linked to each customer.

      Similar principle applies when saving payment methods via Revolut Pay for merchant initiated transaction (MIT - useful for recurring payments). If a customer saves their details through Revolut Pay for MIT in separate sessions, each session will create a new payment method object linked to the customer.

      :::note
      You cannot create a payment method explicitly because they are generated as part of a payment. You can only retrieve, update or delete a payment method, or you can retrieve all payment methods of a customer.
      :::
  - name: Payments
    description: >-
      Payment operations enable you to initiate payments, or track payment
      status transitions. You can use the ID of the payment to retrieve
      information about a specific payment.


      :::info

      For more information about the payment lifecycle, see: [Order and payment
      lifecycle](/docs/guides/merchant/reference/order-lifecycle).

      :::
  - name: Payouts
    description: >-
      Endpoints for retrieving information about payouts, allowing merchants to
      access details of funds withdrawn from their Merchant account to external
      bank accounts.


      Merchants can use these endpoints to retrieve a list of payouts and
      specific payout details. The payout IDs obtained can be used to [generate
      detailed reports](/docs/api/merchant/2024-05-01#tag-report-runs) that
      provide comprehensive breakdowns of all transactions contributing to the
      payout amounts.


      Payout information, including IDs, can be retrieved via the [Retrieve
      payout list](/docs/api/merchant/2024-05-01#retrieve-payout-list) endpoint
      or from [webhook events related to
      payouts](/docs/api/merchant/2024-05-01#create-webhook#callbacks).
  - name: Report runs
    description: |-
      Use **Report runs** operations to generate CSV reports of your Merchant account transactions. Choose from the following report types based on your use case:

      | Report type | Description |
      | ----------- | ----------- |
      | `custom_report` | Settled and processing transactions with a configurable set of columns. |
      | `settlement_report` | All settled transactions, with a configurable set of columns. |
      | `payments_report` | All payments, including failed and declined ones. |
      | `payout_statement_report` | All transactions that contributed to a specific payout. |
      | `icpp_fee_breakdown_report` | IC++ fee components broken down per transaction for a specific IC++ charge. |

      :::info
      For more information about how to generate CSV reports, see: [Create CSV reports of transactions](/docs/guides/merchant/monitor-and-observe/reports-reconciliation).
      :::
  - name: Webhooks
    description: |-
      A `webhook` (also called a web callback) allows your system to receive an event from a different app immediately after it happens. 

      For example, you can subscribe to a webhook when an order changes from `pending` to `completed` status. When the payment is cleared and the order is completed, Revolut servers send a notification to the URL of your choice. This is a more efficient way to know when an order is paid as opposed to trying to get the status of the order every few seconds.

      Many events that happen to a Revolut Merchant account are synchronous, which means they arrive instantly and have immediate results. For example, a successful request to create a customer immediately returns a `Customer` object. Such requests don't require webhooks.

      The Revolut Merchant API supports webhooks for events including `ORDER_COMPLETED` and `ORDER_AUTHORISED`.

      :::note
      Because we cannot guarantee the delivery order of the status (`events`), you might receive the status not in the expected order. Make sure that your implementation does not rely on the order that the events are being received in.
      :::

      For example, for a completed order, you should receive the `ORDER_AUTHORISED` status first and then `ORDER_COMPLETED`. However, if the `ORDER_AUTHORISED` status isn't sent successfully at first, it's moved to the queue to be resent in the next few minutes. Before then, if the `ORDER_COMPLETED` status is sent successfully, you get `ORDER_COMPLETED` first and then `ORDER_AUTHORISED`.

      Check out our tutorial for [Using webhooks to keep track of the payment lifecycle](/docs/guides/merchant/monitor-and-observe/webhooks/using-webhooks).

      :::info
      For more information about the order and payment lifecycle, see: [Order and payment lifecycle](/docs/guides/merchant/reference/order-lifecycle).
      :::
  - name: Locations
    description: |-
      The Locations API is designed to help merchants manage multiple points of sale, including both **online storefronts** and **physical stores**. Registering locations lets you differentiate and group your orders from different stores. You can also introduce custom business logic for each location, such as different inventory management, pricing, or shipping rules.

      To start using locations, follow the relevant use case for your business:

      ### Online locations

        1. Register an online location using the [Create a location](/docs/api/merchant/2024-05-01#create-location) endpoint, setting the `type` to `online`.
        1. Configure your custom processes on your backend for each registered location (e.g., grouping orders, custom pricing, etc.).
        1. Send the `location_id` parameter in the request body during [order creation](/docs/api/merchant/2024-05-01#create-order) to assign the order to a specific location.

      ### Physical locations

        1. Register a physical location using the [Create a location](/docs/api/merchant/2024-05-01#create-location) endpoint, setting the `type` to `physical`.
        1. In case of Revolut POS, our system handles order creation including `location_id` to associate the order with your location.

      ## Fast checkout for multiple storefronts

      Locations are particularly useful for tailoring the user experience on each of your online storefronts, especially when using features like [**Fast checkout**](/docs/guides/merchant/optimise-checkout/fast-checkout).

      For example, if you operate two online stores with different shipping rules, you can register two separate `online` locations. By then using the `location_id` to [register a distinct address validation endpoint](/docs/api/merchant/2024-05-01#register-address-validation-endpoint) for each one, your backend can apply the correct shipping logic and pricing for the specific storefront a customer is buying from.
  - name: Terminals
    description: |-
      Operations for managing Revolut Terminal devices and push payment integrations with Point of Sale (POS) systems.

      The Terminals API enables POS software providers to integrate with Revolut Terminal devices for accepting in-person payments through a **push payments** model. This server-to-server integration allows your POS system to:

      - Discover available terminals at specific locations
      - Push payment requests to physical terminal devices
      - Track payment intent and payment status in real-time
      - Cancel pending payment requests when needed

      ## Push payments workflow

      1. **Terminal discovery:** Use the [Retrieve terminal list](/docs/api/merchant/2024-05-01#retrieve-terminal-list) endpoint to find available terminals at a location (filtered by `operation_mode=pos`)
      1. **Payment intent creation:** Push a payment request to a specific terminal using [Create a payment intent](/docs/api/merchant/2024-05-01#create-payment-intent)
      1. **Status tracking:** Poll the payment intent status until completion using [Retrieve a payment intent](/docs/api/merchant/2024-05-01#retrieve-payment-intent) endpoint
      1. **Payment confirmation:** Once the payment intent reaches `completed` state, [retrieve the final payment status](/docs/api/merchant/2024-05-01#retrieve-payment-details) using the returned `payment_id`

      :::info
      For detailed implementation guidance, see: [Push payments to Revolut Terminal](/docs/guides/merchant/accept-payments/in-person-payments/terminal/push-payments).
      :::
  - name: Payment intents
    description: |-
      Operations for managing payment intents in the push payments to Revolut Terminal flow.

      A **payment intent** represents the intention to complete payment for a specific order on a specific Revolut Terminal device. Payment intents are the mechanism that links orders created via the Merchant API with physical terminal devices in **Pay at Counter** mode.

      ## What is a payment intent?

      When you create a payment intent, you're pushing a payment request from your POS system to a Revolut Terminal. The payment intent:

      - Links an order to a specific terminal device
      - Triggers the payment request to appear on the terminal screen
      - Tracks the customer's interaction with the terminal (pending → processing → completed)
      - Provides a `payment_id` when completed, which you use to retrieve the final payment status

      ## Payment intent lifecycle

      1. **Create:** Push a payment intent to a terminal by [creating a payment intent](/docs/api/merchant/2024-05-01#create-payment-intent)
      1. **Track:** Poll the payment intent status by [retrieving payment intent details](/docs/api/merchant/2024-05-01#retrieve-payment-intent) until it reaches a final state
      1. **Complete:** When state is `completed`, extract the `payment_id` and [retrieve the final payment status](/docs/api/merchant/2024-05-01#retrieve-payment-details)
      1. **Cancel (optional):** Cancel pending payment intents using [Cancel a payment intent](/docs/api/merchant/2024-05-01#cancel-payment-intent)

      ## Important notes

      - A payment intent reaching `completed` state means the checkout process finished on the terminal, but it does **not** guarantee the payment succeeded
      - You must check the actual payment status using the `payment_id` returned in the completed payment intent
      - Payment status can be `captured`/`completed` (successful), `declined` (card rejected), `failed` (technical error), or `cancelled`

      :::info
      For the complete push payments integration guide, see: [Push payments to Revolut Terminal](/docs/guides/merchant/accept-payments/in-person-payments/terminal/push-payments).
      :::
  - name: Apple Pay merchant registration
    description: |-
      Operations for managing a merchant's domain registration and configuration with Apple for integration of Apple Pay via Revolut.

      This includes initiating domain validation with Apple, a necessary step for merchants to offer Apple Pay as a payment method on their websites or apps.

      These endpoints interact with Apple's [Apple Pay Web Merchant Registration services](https://developer.apple.com/documentation/applepaywebmerchantregistrationapi).
  - name: Other
    description: Other operations that can be done with the Merchant API.
x-ext-urls:
  8351cd0: paths/2024-05-01/api_orders.yaml
  bd8d547: paths/2024-05-01/api_orders_{order_id}.yaml
  da2d82c: paths/2023-09-01/api_1.0_orders.yaml
  3061d3b: paths/2024-05-01/api_orders_{order_id}_increment-authorisation.yaml
  04d0213: paths/2024-05-01/api_orders_{order_id}_capture.yaml
  3b2912c: paths/2024-05-01/api_orders_{order_id}_cancel.yaml
  078dd5b: paths/api_1.0_orders_{order_id}_refund.yaml
  16d7e79: paths/api_orders_{order_id}_payments.yaml
  9234e4e: paths/api_1.0_customers.yaml
  939dede: paths/api_1.0_customers_{customer_id}.yaml
  70ab0f7: paths/api_1.0_customers_{customer_id}_payment-methods.yaml
  a52911f: paths/api_1.0_customers_{customer_id}_payment-methods_{payment_method_id}.yaml
  60081ba: paths/2024-05-01/api_payments_{payment_id}.yaml
  61bd489: paths/api_payouts.yaml
  6a3beee: paths/api_payouts_{payout_id}.yaml
  ee6af6f: paths/api_report-runs.yaml
  d599abc: paths/api_report-runs_{report_run_id}.yaml
  4fef0ad: paths/api_report-runs_{report_run_id}_file.yaml
  a513720: paths/api_1.0_webhooks.yaml
  ee3efc1: paths/api_1.0_webhooks_{webhook_id}.yaml
  4afc7ce: paths/api_1.0_webhooks_{webhook_id}_rotate-signing-secret.yaml
  2e8f60f: paths/api_apple-pay_domains_register.yaml
  d246405: paths/api_apple-pay_domains_unregister.yaml
  a245669: paths/api_synchronous-webhooks.yaml
  048a83d: paths/api_synchronous-webhooks_{synchronous_webhook_id}.yaml
  45a45bc: paths/api_locations.yaml
  83ba3d8: paths/api_locations_{location_id}.yaml
  2226ae4: paths/api_terminals.yaml
  3fb6b5d: paths/api_orders_{order_id}_payment-intents.yaml
  7f3eb22: paths/api_payment-intents_{payment_intent_id}.yaml
  3637d02: paths/api_payment-intents_{payment_intent_id}_cancel.yaml
  90b9838: components/parameters/Authorization.yaml
  13f2186: components/parameters/Revolut-Api-Version.yaml
  1bee50e: components/schemas/Order-Creation-v3.yaml
  e37bb36: examples/request/Req-Order-Min.yaml
  b9095ac: examples/request/Req-Order-Additional.yaml
  "95e8559": examples/request/Req-Order-Pre-Auth.yaml
  15a16ad: examples/request/Req-Order-Line-Items.yaml
  1a159c9: examples/request/Req-Order-Airline.yaml
  291db52: examples/request/Req-Order-Car-Rental.yaml
  6807cfe: examples/request/Req-Order-Crypto.yaml
  dfc2e3e: examples/request/Req-Order-Marketplace.yaml
  c63e1b3: examples/request/Req-Order-Event.yaml
  4035d20: examples/request/Req-Order-Lodging.yaml
  8969f94: components/schemas/Order-v3.yaml
  a4a371d: components/schemas/Error-v2.yaml
  e8e192f: examples/response/Res-Order-Min.yaml
  0df7c3d: examples/response/Res-Order-Additional.yaml
  cfb7391: examples/response/Res-Order-Pre-Auth.yaml
  312ca55: examples/response/Res-Order-Line-Items.yaml
  68329f0: examples/response/Res-Order-Airline.yaml
  157b6be: examples/response/Res-Order-Car-Rental.yaml
  60c8415: examples/response/Res-Order-Crypto.yaml
  982681c: examples/response/Res-Order-Marketplace.yaml
  84463ae: examples/response/Res-Order-Event.yaml
  0cf2bd5: examples/response/Res-Order-Lodging.yaml
  6ebce25: components/parameters/Order-Id.yaml
  fad4ad3: components/schemas/Order-Update-v3.yaml
  329b2d1: components/schemas/Error.yaml
  a078396: components/schemas/Simplified-Order.yaml
  a378ff5: components/schemas/Incremental-Authorisation-Request.yaml
  c2c6e40: examples/request/Req-Order-Increment-Auth-Basic.yaml
  b947f42: examples/request/Req-Order-Increment-Auth-Additional.yaml
  d840984: examples/response/Res-Order-Increment-Processing.yaml
  e19e106: examples/response/Res-Order-Increment-Authorised.yaml
  8817c1e: examples/response/Res-Order-Increment-Declined.yaml
  7f96b03: components/schemas/Order-Capture-v2.yaml
  a441f72: examples/request/Req-Order-Capture-Min.yaml
  797e8ac: examples/request/Req-Order-Capture-Line-Items.yaml
  a64baa6: examples/response/Res-Order-Capture-Min.yaml
  de68965: examples/response/Res-Order-Capture-Line-Items.yaml
  a200791: components/parameters/Revolut-Api-Version-Optional.yaml
  a354217: examples/response/Res-Order-Cancel-Min.yaml
  3ad7298: examples/response/Res-Order-Cancel-Additional.yaml
  6ceabeb: examples/response/Res-Order-Cancel-Line-Items.yaml
  f436933: examples/response/Res-Order-Cancel-Airline.yaml
  678ad63: examples/response/Res-Order-Cancel-Crypto.yaml
  edaaf2d: examples/response/Res-Order-Cancel-Marketplace.yaml
  8b63a48: examples/response/Res-Order-Cancel-Event.yaml
  bfe4bee: examples/response/Res-Order-Cancel-Lodging.yaml
  c0cdbbb: components/parameters/Idempotency-Key.yaml
  a373882: components/schemas/Order-Refund.yaml
  124f69b: components/schemas/Order.yaml
  e6d2435: components/schemas/Customer-Creation.yaml
  f3e7dc8: components/schemas/Customer.yaml
  e7ed3e3: components/schemas/Saved-Payment-Method.yaml
  11ca5af: components/schemas/Payment-Retrieval.yaml
  5cb8929: components/parameters/Customer-Id.yaml
  d5fae67: components/schemas/Customer-Update.yaml
  4bd08a9: components/schemas/Customer-With-Payment-Method.yaml
  afb87dc: components/parameters/Payment-Method-Id.yaml
  233ebf4: components/schemas/Customer-Payment-Method.yaml
  ca9e6a1: components/parameters/Payment-Id.yaml
  e539979: components/schemas/Payment-Retrieval-v2.yaml
  fdb8216: components/schemas/Payout.yaml
  ea52751: components/parameters/Payout-Id.yaml
  ae49498: components/schemas/Report-Run.yaml
  f0f1fcd: components/schemas/Report-Run-Settlement-Report.yaml
  7f82492: components/schemas/Report-Run-Custom-Report.yaml
  7b213d5: components/schemas/Report-Run-Payments-Report.yaml
  21e464e: components/schemas/Report-Run-Payout-Report.yaml
  d5e1bd0: components/schemas/Report-Run-Icpp-Report.yaml
  6b43969: components/parameters/Report-Run-Id.yaml
  4d33cb1: examples/response/Res-Settlement-Report.yaml
  f589cea: examples/response/Res-Custom-Report.yaml
  a8d0fd0: examples/response/Res-Payments-Report.yaml
  768a897: examples/response/Res-Payout-Report.yaml
  8921dd0: components/schemas/Report-Run-Csv-Settlement.yaml
  a67071a: components/schemas/Report-Run-Csv-Custom.yaml
  556244c: components/schemas/Report-Run-Csv-Payments.yaml
  fdeec3b: components/schemas/Report-Run-Csv-Payout.yaml
  58d8019: components/schemas/Report-Run-Csv-Icpp.yaml
  de972c2: components/callbacks/Webhook-Event.yaml
  ee2e597: components/schemas/Webhook-Creation.yaml
  8a57fa8: components/schemas/Webhook-With-Signing-Secret.yaml
  2c92918: components/schemas/Webhook.yaml
  18e1dc1: components/parameters/Webhook-Id.yaml
  ec6c680: components/schemas/Synchronous-Webhook-Creation.yaml
  6b0ce4e: components/schemas/Synchronous-Webhook.yaml
  94aad59: components/parameters/Synchronous-Webhook-Id.yaml
  741a418: components/parameters/Location-Type.yaml
  2975c2e: components/schemas/Location-Creation.yaml
  363f6bd: examples/request/Req-Location-Online.yaml
  4a64a36: examples/request/Req-Location-Physical.yaml
  cf5e7ce: components/schemas/Location.yaml
  dd56a7e: examples/response/Res-Location-Online.yaml
  9ca09cb: examples/response/Res-Location-Physical.yaml
  4814d6b: components/parameters/Location-Id.yaml
  efeb826: components/schemas/Location-Update.yaml
  193a752: components/parameters/Operation-Mode.yaml
  aef1bf5: components/parameters/Location-Id-Query.yaml
  1df77f8: components/schemas/Terminals-Response.yaml
  fc6d57b: examples/response/Res-Terminals-List.yaml
  c639151: components/parameters/Payment-Intent-Id.yaml
  3375bfc: components/schemas/Payment-Intent.yaml
  a5e454b: examples/response/Res-Payment-Intent-Pending.yaml
  693f7fa: examples/response/Res-Payment-Intent-Processing.yaml
  1934f11: examples/response/Res-Payment-Intent-Completed.yaml
  3a33638: examples/response/Res-Payment-Intent-Cancelled.yaml
  59d80c8: examples/response/Res-Payment-Intent-Failed.yaml
  a0c2d2d: components/schemas/Payment-Intent-Creation.yaml
  bdb9bd1: examples/request/Req-Payment-Intent.yaml
  7dfa842: components/schemas/Order-Amount-v2.yaml
  1b2472a: components/schemas/Currency.yaml
  4da391a: components/schemas/Settlement-Currency.yaml
  a0887df: components/schemas/Order-Description.yaml
  f66f113: components/schemas/Customer-v2.yaml
  00ce429: components/schemas/Address-v2.yaml
  d9d8857: components/schemas/Enforce-Challenge-v2.yaml
  bca3068: components/schemas/Line-Items.yaml
  e3d4819: components/schemas/Capture-Mode-v2.yaml
  "60768e8": components/schemas/Authorisation-Type.yaml
  bd14ecb: components/schemas/Cancel-Authorised-After.yaml
  9977eda: components/schemas/Expire-Pending-After.yaml
  38a61e6: components/schemas/Location-Id.yaml
  c146ad0: components/schemas/Metadata.yaml
  a682105: components/schemas/Industry-Data.yaml
  31aea79: components/schemas/Merchant-Order-Data.yaml
  7d308f4: components/schemas/Upcoming-Payment.yaml
  25c3c73: components/schemas/Redirect-Url.yaml
  52074cd: components/schemas/Statement-Descriptor-Suffix.yaml
  8ada47f: components/schemas/Order-Id.yaml
  db8ab7a: components/schemas/Order-Token.yaml
  704e5bd: components/schemas/Order-Type-v2.yaml
  e512ba4: components/schemas/Order-State.yaml
  6758f6f: components/schemas/Outstanding-Amount.yaml
  c660be4: components/schemas/Refunded-Amount.yaml
  a869377: components/schemas/Incremental-Authorisations.yaml
  a571331: components/schemas/Checkout-Url.yaml
  bc7c68c: components/schemas/Payment-v2.yaml
  0f194c2: components/schemas/Address.yaml
  22fa5f7: components/schemas/Increment-Amount.yaml
  a7167a9: components/schemas/Increment-Reference.yaml
  77f28ee: components/schemas/Order-Capture-Amount.yaml
  331c186: components/schemas/Merchant-Order-External-Reference.yaml
  7adf35b: components/schemas/Capture-Mode.yaml
  a764195: components/schemas/Merchant-Order-Uri.yaml
  408ef27: components/schemas/Payment.yaml
  10a5163: components/schemas/Order-Related.yaml
  "33e2658": components/schemas/Order-Amount.yaml
  8f22aa4: components/schemas/Date-Of-Birth.yaml
  7a04dee: components/schemas/Environment.yaml
  a001704: components/schemas/Payment-Id.yaml
  d21286a: components/schemas/Payment-Token.yaml
  f26cba6: components/schemas/Payment-Amount.yaml
  9ebf295: components/schemas/Payment-State-v2.yaml
  67d79e0: components/schemas/Decline-Reason-v2.yaml
  faf3b7e: components/schemas/Authentication-Challenge.yaml
  cc64bb8: components/schemas/Revolut-Pay.yaml
  c7c0e23: components/schemas/Card-For-Payment-Details.yaml
  71cc49f: components/schemas/Sepa-Direct-Debit.yaml
  8de5ed9: components/schemas/Payout-Id.yaml
  842508a: components/schemas/Payout-State.yaml
  09d73a0: components/schemas/Payout-Destination-Type.yaml
  05718b6: components/schemas/Payout-Amount.yaml
  82ecd06: components/schemas/Report-Run-Filter.yaml
  0abca0c: components/schemas/Report-Run-Format.yaml
  34b6874: components/schemas/Report-Run-Type.yaml
  a709559: components/schemas/Report-Run-Settlement-Options.yaml
  e6c75ed: components/schemas/Report-Run-Payments-Filter.yaml
  4d0713e: components/schemas/Report-Run-Payments-Options.yaml
  0782f68: components/schemas/Report-Run-Custom-Options.yaml
  96af67e: components/schemas/Report-Run-Payout-Filter.yaml
  7cff6b1: components/schemas/Report-Run-Payout-Options.yaml
  6eb8be8: components/schemas/Report-Run-Icpp-Filter.yaml
  979a492: components/schemas/Report-Run-Icpp-Options.yaml
  471852d: components/schemas/Webhook-Order-Event.yaml
  459b5b0: components/schemas/Webhook-Subscription-Event.yaml
  7f3912f: components/schemas/Webhook-Payout-Event.yaml
  845bfaa: components/schemas/Webhook-Dispute-Event.yaml
  e740564: components/schemas/Webhook-Url.yaml
  a725038: components/schemas/Webhook-Events.yaml
  dd0635b: components/schemas/Webhook-Id.yaml
  48d07ca: components/schemas/Webhook-Signing-Secret.yaml
  c17f5d5: components/schemas/Location-Creation-Online.yaml
  86ae415: components/schemas/Location-Creation-Physical.yaml
  7acd6e0: components/schemas/Location-Online.yaml
  0cc5e9d: components/schemas/Location-Physical.yaml
  3a0e142: components/schemas/Location-Update-Online.yaml
  5d4dca2: components/schemas/Location-Update-Physical.yaml
  a777633: components/schemas/Terminal-Operation-Mode.yaml
  11efa34: components/schemas/Terminals.yaml
  021590b: components/schemas/Payment-Intent-Id.yaml
  826a913: components/schemas/Payment-Intent-State.yaml
  6b77b6c: components/schemas/Terminal-Id.yaml
  9730fdd: components/schemas/Payment-Intent-Amount.yaml
  0b50233: components/schemas/Full-Name.yaml
  e3f9143: components/schemas/Phone.yaml
  7c3734e: components/schemas/Email.yaml
  a0e71d2: components/schemas/Line-Item.yaml
  ea4eaac: components/schemas/Airline-Data.yaml
  3df5792: components/schemas/Crypto-Transactions.yaml
  c490a87: components/schemas/Marketplace.yaml
  194d710: components/schemas/Events.yaml
  a947701: components/schemas/Lodging.yaml
  9a48b63: components/schemas/Merchant-Order-Url.yaml
  2bc003b: components/schemas/Incremental-Authorisation.yaml
  f555917: components/schemas/Bank-Message.yaml
  2df9c77: components/schemas/Payment-Created.yaml
  a450668: components/schemas/Payment-Updated.yaml
  "8038e80": components/schemas/Payment-Authorised-Amount.yaml
  ff17c84: components/schemas/Payment-Settled-Amount.yaml
  be93062: components/schemas/Payment-Settled-Currency.yaml
  f8a2cbb: components/schemas/Payment-Method-v2.yaml
  24b2457: components/schemas/Payment-Risk-Level.yaml
  87bb99b: components/schemas/Fees.yaml
  b19be60: components/schemas/Payer.yaml
  a263f7b: components/schemas/Payment-Method.yaml
  6b57408: components/schemas/Browser-Environment.yaml
  35cad8b: components/schemas/Three-Ds.yaml
  2d92828: components/schemas/Three-Ds-Fingerprint.yaml
  7ddfc2b: components/schemas/RPay-Account.yaml
  f193828: components/schemas/RPay-Card.yaml
  a32ab53: components/schemas/Payment-Method-Type.yaml
  b4be48a: components/schemas/Sepa-Direct-Debit-Debtor-Iban-Last-Four.yaml
  910c00d: components/schemas/Sepa-Direct-Debit-Debtor-Name.yaml
  ff0c6e3: components/schemas/Sepa-Direct-Debit-Mandate-Reference.yaml
  3104eb3: components/schemas/Report-Run-From.yaml
  3b5796b: components/schemas/Report-Run-To.yaml
  3dfaa9a: components/schemas/Report-Run-Entity-Types.yaml
  dab0a46: components/schemas/Report-Run-Entity-States.yaml
  aacd9d1: components/schemas/Report-Run-Currency.yaml
  4fa5d34: components/schemas/Report-Run-Location-Id.yaml
  fd1b3d8: components/schemas/Report-Run-Timezone.yaml
  4aad94b: components/schemas/Report-Run-Payments-Entity-States.yaml
  a376209: components/schemas/Icpp-Charge-Id.yaml
  840a457: components/schemas/Webhook-Callback-Event.yaml
  c1e66bb: components/schemas/Location-Name.yaml
  fc3b5f1: components/schemas/Location-Type.yaml
  7f31e02: components/schemas/Location-Online-Details.yaml
  874157f: components/schemas/Location-Physical-Details.yaml
  d594899: components/schemas/Terminal.yaml
  990fbe0: components/schemas/Quantity.yaml
  e7c4087: components/schemas/Discount.yaml
  0dd3cd4: components/schemas/Tax.yaml
  daab7f0: components/schemas/Image-Url.yaml
  afa9242: components/schemas/Industry-Data-Type.yaml
  a448e4a: components/schemas/Crypto-Transaction.yaml
  91fdcb6: components/schemas/Booking-Id.yaml
  111a824: components/schemas/Refundability.yaml
  4ab1712: components/schemas/Passengers.yaml
  bf1b821: components/schemas/Journey-Legs.yaml
  a0570c6: components/schemas/Subseller.yaml
  ffbe862: components/schemas/Event.yaml
  6a1e83e: components/schemas/Supplier-Payment-Date.yaml
  d0bd4f7: components/schemas/Guests.yaml
  "7e82680": components/schemas/Address-v3.yaml
  30ffe89: components/schemas/Apple-Pay.yaml
  4282f0c: components/schemas/Card.yaml
  6b05d26: components/schemas/Google-Pay.yaml
  9146afc: components/schemas/Revolut-Pay-Card.yaml
  861939a: components/schemas/Revolut-Pay-Account.yaml
  fa3eb14: components/schemas/Fee.yaml
  8f4fd3d: components/schemas/Authentication-Challenge-Type.yaml
  d4c2387: components/schemas/Geo-Location.yaml
  51f7943: components/schemas/Opening-Hours.yaml
  9ab4dd9: components/schemas/Terminal-Name.yaml
  a651264: components/schemas/Terminal-Type.yaml
  b5263b8: components/schemas/Terminal-Serial-Number.yaml
  519b915: components/schemas/Terminal-Battery-Level.yaml
  be470bf: components/schemas/Terminal-Online.yaml
  25d3924: components/schemas/Terminal-Last-Online-At.yaml
  fb0171f: components/schemas/Passenger.yaml
  db10c08: components/schemas/Journey-Leg.yaml
  73478d8: components/schemas/Address-v4.yaml
  613db16: components/schemas/Ticket.yaml
  ae9a74f: components/schemas/Guest.yaml
  c7dd364: components/schemas/Card-Checks-v2.yaml
  81aebf6: components/schemas/Authorisation-Code.yaml
  a164737: components/schemas/Arn.yaml
  3cfba3a: components/schemas/Capture-Deadline.yaml
  1a4ec64: components/schemas/Fingerprint.yaml
  9bbb548: components/schemas/Network-Transaction-Id.yaml
  bd72d25: components/schemas/Day-Opening-Hours.yaml
x-ext:
  90b9838:
    name: Authorization
    in: header
    schema:
      type: string
      format: Bearer <yourSecretApiKey>
      examples:
        - Bearer
          sk_1234567890ABCdefGHIjklMNOpqrSTUvwxYZ_1234567890-Ab_cdeFGHijkLMNopq
    required: true
    description: >-
      This parameter accepts the [Merchant API Secret
      key](https://business.revolut.com/settings/apis?tab=merchant-api) to
      authorise requests coming from the merchant's backend. 


      It ensures that ensures that each request is authenticated and authorised
      by verifying the secret key. The secret key should be included in all
      request headers as a `Bearer` token.


      :::info

      For more information, see:
      [Authentication](/docs/api/merchant#authentication)

      :::
  2e8f60f:
    parameters:
      - $ref: "#/x-ext/90b9838"
    post:
      summary: Register domain for Apple Pay
      operationId: registerDomainApplePay
      description: |-
        Register your website's domain to accept payments via Apple Pay. 

        Before you call this endpoint, make sure that you have completed the following steps:

        1. Download the latest [domain validation file](https://assets.revolut.com/api-docs/merchant-api/files/apple-developer-merchantid-domain-association).
        1. Upload the domain validation file to your website in the following folder `/.well-known/`. For example, if your website is `example.com`, the file should be available on `example.com/.well-known/apple-developer-merchantid-domain-association`, where `apple-developer-merchantid-domain-association` indicates the name of the file.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  description: Domain name of your website without the scheme (i.e. without
                    `http://` or `https://`).
                  examples:
                    - revolut.com
              required:
                - domain
            examples:
              example_request:
                summary: Example domain registration request for Apple Pay
                value:
                  domain: revolut.com
      responses:
        "204":
          description: Domain registered successfully
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: >-
                      An identifier that can be used to determine what went
                      wrong.


                      Error codes are not globally unique, but uniqueness is
                      guaranteed within endpoints.
                  message:
                    type: string
                    description: Human readable text describing what went wrong.
                required:
                  - code
              examples:
                error_message:
                  summary: Error message
                  value:
                    code: validation
                    message: Exactly one value must be supplied for client_id
      security:
        - Api-Key: []
      tags:
        - Apple Pay merchant registration
  13f2186:
    name: Revolut-Api-Version
    in: header
    schema:
      type: string
      format: date
      enum:
        - 2023-09-01
        - 2024-05-01
        - 2024-09-01
        - 2025-10-16
        - 2025-12-04
        - 2026-03-12
        - 2026-04-20
      examples:
        - 2026-04-20
    required: true
    description: >-
      The version of the Merchant API, specified in `YYYY-MM-DD` format.


      If not specified, you will receive an error.



      :::info

      For more information about API versioning, see: [API
      versions](/docs/guides/merchant/reference/versioning/api-versions).

      :::
    x-config-always-visible-in-example: true
  e37bb36:
    summary: Example order with minimal required parameters
    value:
      amount: 500
      currency: GBP
  b9095ac:
    summary: Example order with additional parameters
    value:
      amount: 500
      currency: GBP
      capture_mode: manual
      cancel_authorised_after: PT30M
      expire_pending_after: PT15M
      customer:
        email: example@example.com
        date_of_birth: 1990-01-01
      description: Example product
      shipping_address:
        street_line_1: 7 Westferry Circus
        city: London
        country_code: GB
        postcode: E14 4HD
      enforce_challenge: forced
      metadata:
        product_type: Example
      merchant_order_data:
        url: https://www.example.com/orders/12345
      redirect_url: https://www.example.com/redirect
      statement_descriptor_suffix: "12345"
  "95e8559":
    summary: Example order with pre-authorisation
    value:
      amount: 5000
      currency: GBP
      capture_mode: manual
      authorisation_type: pre_authorisation
      description: Hotel reservation deposit
      cancel_authorised_after: PT72H
  15a16ad:
    summary: Example order with line items
    value:
      amount: 770
      currency: GBP
      line_items:
        - name: Example item 1
          type: physical
          quantity:
            value: 2
            unit: kg
          unit_price_amount: 100
          total_amount: 170
          external_id: external_id_123
          discounts:
            - name: Discount 1
              amount: 50
          taxes:
            - name: 10% VAT
              amount: 20
          image_urls:
            - https://www.example.com/line-item-image1
            - https://www.example.com/line-item-image2
          description: First line item
          url: https://www.example.com
        - name: Example item 2
          type: service
          quantity:
            value: 10
            unit: pieces
          unit_price_amount: 100
          total_amount: 600
          external_id: external_id_456
          discounts:
            - name: Discount 2
              amount: 500
          taxes:
            - name: 10% VAT
              amount: 100
          image_urls:
            - https://www.example.com/line-item-image3
            - https://www.example.com/line-item-image4
          description: Second line item
          url: https://www.example.com
  1a159c9:
    summary: Example order with additional airline data
    value:
      amount: 500
      currency: GBP
      settlement_currency: EUR
      description: Example order description
      customer:
        full_name: Example Customer
        phone: "+441234567890"
        email: example@example.com
      enforce_challenge: forced
      capture_mode: manual
      cancel_authorised_after: PT30M
      industry_data:
        type: airline
        booking_id: unique-booking-id-12345
        fulfillment_date: 2023-07-10T14:00:00.069624Z
        ticket_type: flexible
        crs_code: DATS
        ticket_change_indicator: new
        refundability: refundable
        passengers:
          - first_name: Example
            last_name: Customer
          - first_name: John
            last_name: Doe
        journey_legs:
          - sequence: 1
            departure_airport_code: FRA
            arrival_airport_code: LHR
            flight_number: "670"
            fare_base_code: J
            travel_date: 2023-07-10T10:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
          - sequence: 2
            departure_airport_code: LHR
            arrival_airport_code: DUB
            flight_number: "678"
            fare_base_code: J
            travel_date: 2023-07-10T15:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
          - sequence: 3
            departure_airport_code: DUB
            arrival_airport_code: LHR
            flight_number: "679"
            fare_base_code: F
            travel_date: 2023-07-15T10:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
          - sequence: 4
            departure_airport_code: LHR
            arrival_airport_code: FRA
            flight_number: "671"
            fare_base_code: F
            travel_date: 2023-07-10T14:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
        booking_url: https://example.com/bookings/1234
      merchant_order_data:
        url: https://www.example.com/ticketnumber-12345
        reference: example_airline_reference
      redirect_url: https://www.example.com/redirect
  291db52:
    summary: Example order with additional car rental data
    value:
      amount: 500
      currency: GBP
      settlement_currency: GBP
      description: Example car rental order
      customer:
        full_name: Example Customer
        phone: "+447700900000"
        email: example@example.com
      enforce_challenge: forced
      capture_mode: manual
      cancel_authorised_after: PT30M
      industry_data:
        type: car_rental
        booking_id: example_booking_id
        pick_up_date: 2026-03-01T11:00:00Z
        drop_off_date: 2026-03-05T16:30:00Z
        refundability: partially_refundable
        pick_up_location:
          street_line_1: 1 Example Street
          city: London
          country_code: GB
          postcode: SW1A 1AA
        drop_off_location:
          street_line_1: 10 Another Road
          city: Manchester
          country_code: GB
          postcode: M1 1AA
        distance_limit:
          limit: 500
          unit: miles
          additional_distance_cost:
            amount: 150
            currency: GBP
      merchant_order_data:
        url: https://www.example.com/rental/example_booking_id
        reference: example_car_rental_reference
      redirect_url: https://www.example.com/redirect
  6807cfe:
    summary: Example order with additional crypto transaction data
    value:
      amount: 26100
      currency: EUR
      settlement_currency: EUR
      description: Customer wants to buy 0.01 BTC
      customer:
        id: db186257-3031-4726-98ea-f2260ea115f0
      capture_mode: manual
      cancel_authorised_after: PT30M
      industry_data:
        type: crypto
        transactions:
          - id: 7b2a8ed4-5889-4c0c-a8cc-299aff1c881b
            status: pending
            recipient_wallet_id: 64a6f159-0a60-a446-880e-e449a1f62f7c
        subseller_mcc: "1234"
        subseller_url: https://example.com
      merchant_order_data:
        url: https://www.example.com/cryptotransactionnumber-12345
        reference: example_crypto_reference
      redirect_url: https://www.example.com/redirect
  dfc2e3e:
    summary: Example order with additional marketplace data
    value:
      amount: 10000
      currency: EUR
      industry_data:
        type: marketplace
        subseller:
          id: 123-45-67
          name: Example Subseller
          website: https://example.com/123-45-67
          phone: "+441234567890"
          address:
            street_line_1: 1 Canada Square
            street_line_2: Revolut LTD, Level 39
            postcode: E14 4HD
            country_code: GB
            country_subdivision_code: GB-LND
            city: London
            region: Greater London
  c63e1b3:
    summary: Example order with additional event data
    value:
      amount: 100
      currency: GBP
      industry_data:
        type: event
        booking_id: example_booking_123
        events:
          - start_date: 2025-03-04T14:00:00Z
            end_date: 2025-03-04T17:00:00Z
            supplier: Example Supplier
            supplier_payment_date: 2025-03-03T14:00:15Z
            name: Example Event
            location:
              street_line_1: Example Street 123
              street_line_2: II/123
              region: London
              city: London
              country_code: GB
              postcode: "123456"
            category: exhibition
            market: primary
            tickets:
              - id: example_ticket_1
                transferable: false
                refundability: partially_refundable
              - id: example_ticket_2
                transferable: true
                refundability: non_refundable
              - id: example_ticket_3
  4035d20:
    summary: Example order with additional lodging data
    value:
      amount: 100
      currency: GBP
      industry_data:
        type: lodging
        booking_id: example_booking_123
        check_in_date: 2025-05-01T15:00:00Z
        check_out_date: 2025-05-05T11:00:00Z
        supplier_payment_date: 2025-05-05T11:00:00Z
        category: bed_and_breakfast
        booking_type: flexible
        refundability: partially_refundable
        location:
          street_line_1: Example Street 123
          street_line_2: II/123
          region: London
          city: London
          country_code: GB
          postcode: "123456"
        guests:
          - first_name: First
            last_name: Guest
          - first_name: Second
            last_name: Guest
  8969f94:
    title: Order v3
    type: object
    description: To process the order from a credit or debit card, you create an
      `Order` object. You can then retrieve, capture, cancel, refund, or pay an
      order using its unique `id`. Alternatively, you can use its unique `token`
      to process a card payment with the Revolut Checkout Widget.
    properties:
      id:
        $ref: "#/x-ext/8ada47f"
      token:
        $ref: "#/x-ext/db8ab7a"
      type:
        $ref: "#/x-ext/704e5bd"
      state:
        $ref: "#/x-ext/e512ba4"
      created_at:
        type: string
        description: The date and time the order was created.
        format: date-time
      updated_at:
        type: string
        description: The date and time the order was last updated.
        format: date-time
      description:
        $ref: "#/x-ext/a0887df"
      capture_mode:
        $ref: "#/x-ext/e3d4819"
      authorisation_type:
        $ref: "#/x-ext/60768e8"
      cancel_authorised_after:
        $ref: "#/x-ext/bd14ecb"
      amount:
        $ref: "#/x-ext/7dfa842"
      outstanding_amount:
        $ref: "#/x-ext/6758f6f"
      refunded_amount:
        $ref: "#/x-ext/c660be4"
      currency:
        $ref: "#/x-ext/1b2472a"
      settlement_currency:
        $ref: "#/x-ext/4da391a"
      customer:
        $ref: "#/x-ext/f66f113"
      shipping_address:
        $ref: "#/x-ext/00ce429"
      payments:
        type: array
        description: The details of all the payments that have been made towards this
          order (successful or unsuccessful).
        items:
          $ref: "#/x-ext/bc7c68c"
      incremental_authorisations:
        $ref: "#/x-ext/a869377"
      location_id:
        $ref: "#/x-ext/38a61e6"
      metadata:
        $ref: "#/x-ext/c146ad0"
      industry_data:
        $ref: "#/x-ext/a682105"
      merchant_order_data:
        $ref: "#/x-ext/31aea79"
      upcoming_payment_data:
        $ref: "#/x-ext/7d308f4"
      checkout_url:
        $ref: "#/x-ext/a571331"
      redirect_url:
        $ref: "#/x-ext/25c3c73"
      enforce_challenge:
        $ref: "#/x-ext/d9d8857"
      line_items:
        $ref: "#/x-ext/bca3068"
      statement_descriptor_suffix:
        $ref: "#/x-ext/52074cd"
  a4a371d:
    title: Error
    type: object
    properties:
      code:
        type: string
        description: >-
          An identifier that can be used to determine what went wrong.


          Error codes are not globally unique, but uniqueness is guaranteed
          within endpoints.
      message:
        type: string
        description: Some human readable text describing what went wrong.
      timestamp:
        type: integer
        description: The [UNIX timestamp](https://www.unixtimestamp.com/) of the date
          and time the error happened.
  e8e192f:
    summary: Example order response with minimal required parameters
    value:
      id: 6516e61c-d279-a454-a837-bc52ce55ed49
      token: 0adc0e3c-ab44-4f33-bcc0-534ded7354ce
      type: payment
      state: pending
      created_at: 2023-09-29T14:58:36.079398Z
      updated_at: 2023-09-29T14:58:36.079398Z
      amount: 500
      currency: GBP
      outstanding_amount: 500
      capture_mode: automatic
      authorisation_type: final
      checkout_url: https://checkout.revolut.com/payment-link/0adc0e3c-ab44-4f33-bcc0-534ded7354ce
      enforce_challenge: automatic
  0df7c3d:
    summary: Example order response with additional parameters
    value:
      id: 6516e6ec-c7f7-a0fb-a6d3-add05fa46d2f
      token: 1058031d-1e71-4d07-9f97-5ad388a1346c
      type: payment
      state: pending
      created_at: 2023-09-29T15:02:04.083787Z
      updated_at: 2023-09-29T15:02:04.083787Z
      amount: 500
      currency: GBP
      outstanding_amount: 500
      capture_mode: manual
      authorisation_type: final
      cancel_authorised_after: PT30M
      description: Example product
      checkout_url: https://checkout.revolut.com/payment-link/1058031d-1e71-4d07-9f97-5ad388a1346c
      redirect_url: https://www.example.com/redirect
      shipping_address:
        street_line_1: 7 Westferry Circus
        city: London
        country_code: GB
        postcode: E14 4HD
      metadata:
        product_type: Example
      enforce_challenge: forced
      customer:
        id: 467646d6-e452-4d1e-a401-703f09cd3818
        email: example@example.com
        date_of_birth: 1990-01-01
      merchant_order_data:
        url: https://example.com/orders/12345
      statement_descriptor_suffix: "12345"
  cfb7391:
    summary: Example order response with pre-authorisation and card payment
    value:
      id: 6516e61c-d279-a454-a837-bc52ce55ed49
      token: 0adc0e3c-ab44-4f33-bcc0-534ded7354ce
      type: payment
      state: authorised
      created_at: 2023-09-29T14:58:36.079398Z
      updated_at: 2023-09-29T14:58:36.079398Z
      amount: 5000
      currency: GBP
      outstanding_amount: 5000
      capture_mode: manual
      authorisation_type: pre_authorisation
      cancel_authorised_after: PT72H
      description: Hotel reservation deposit
      checkout_url: https://checkout.revolut.com/payment-link/0adc0e3c-ab44-4f33-bcc0-534ded7354ce
      enforce_challenge: automatic
      payments:
        - id: 6516f38a-a12b-aca3-83f2-6ed16d6ed246
          state: authorised
          created_at: 2023-09-29T14:55:54.579311Z
          updated_at: 2023-09-29T14:56:38.403232Z
          amount: 5000
          currency: GBP
          settled_amount: 5000
          settled_currency: GBP
          billing_address:
            country_code: GB
            postcode: SW1A 1AA
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: card
            card_brand: visa
            funding: credit
            card_country_code: GB
            card_bin: "411111"
            card_last_four: "1111"
            card_expiry: 12/25
            cardholder_name: Example Holder
            capture_deadline: 2023-10-06T14:55:54.579311Z
            fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
            network_transaction_id: "1234567890123456"
  312ca55:
    description: Example order response with line items
    value:
      id: 66bcc998-4209-ac6e-96fe-2910b949c516
      token: 0bcfcc1d-9ee9-4476-b36c-cf4abba2e45a
      type: payment
      state: pending
      created_at: 2024-08-14T15:13:28.814729Z
      updated_at: 2024-08-14T15:13:28.814729Z
      amount: 770
      currency: GBP
      outstanding_amount: 770
      capture_mode: automatic
      authorisation_type: final
      checkout_url: https://checkout.revolut.com/payment-link/0bcfcc1d-9ee9-4476-b36c-cf4abba2e45a
      enforce_challenge: automatic
      line_items:
        - name: Example item 1
          unit_price_amount: 100
          quantity:
            value: 2
            unit: kg
          type: physical
          discounts:
            - name: Discount 1
              amount: 50
          taxes:
            - name: 10% VAT
              amount: 20
          total_amount: 170
          image_urls:
            - https://www.example.com/line-item-image1
            - https://www.example.com/line-item-image2
          description: First line item
          external_id: external_id_123
          url: https://www.example.com
        - name: Example item 2
          unit_price_amount: 100
          quantity:
            value: 10
            unit: pieces
          type: service
          discounts:
            - name: Discount 2
              amount: 500
          taxes:
            - name: 10% VAT
              amount: 100
          total_amount: 600
          image_urls:
            - https://www.example.com/line_item_image3
            - https://www.example.com/line_item_image4
          description: Second line item
          external_id: external_id_456
          url: https://www.example.com
  68329f0:
    summary: Example order response with additional airline data
    value:
      id: 6516ed0c-098f-aa19-80e5-9d92f52b35e0
      token: 061f2c63-e36b-421e-9ece-5adfcd580886
      type: payment
      state: pending
      created_at: 2023-09-29T15:28:12.114992Z
      updated_at: 2023-09-29T15:28:12.114992Z
      amount: 500
      currency: GBP
      outstanding_amount: 500
      settlement_currency: EUR
      capture_mode: manual
      authorisation_type: final
      description: Example order description
      checkout_url: https://checkout.revolut.com/payment-link/061f2c63-e36b-421e-9ece-5adfcd580886
      redirect_url: https://www.example.com/redirect
      cancel_authorised_after: PT30M
      industry_data:
        type: airline
        booking_id: unique-booking-id-12345
        fulfillment_date: 2023-07-10T14:00:00.069624Z
        ticket_type: flexible
        crs_code: DATS
        ticket_change_indicator: new
        refundability: refundable
        passengers:
          - first_name: Example
            last_name: Customer
          - first_name: John
            last_name: Doe
        journey_legs:
          - sequence: 1
            departure_airport_code: FRA
            arrival_airport_code: LHR
            flight_number: "670"
            fare_base_code: J
            travel_date: 2023-07-10T10:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
          - sequence: 2
            departure_airport_code: LHR
            arrival_airport_code: DUB
            flight_number: "678"
            fare_base_code: J
            travel_date: 2023-07-10T15:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
          - sequence: 3
            departure_airport_code: DUB
            arrival_airport_code: LHR
            flight_number: "679"
            fare_base_code: F
            travel_date: 2023-07-15T10:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
          - sequence: 4
            departure_airport_code: LHR
            arrival_airport_code: FRA
            flight_number: "671"
            fare_base_code: F
            travel_date: 2023-07-10T14:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
        booking_url: https://example.com/bookings/1234
      enforce_challenge: forced
      customer:
        id: db186257-3031-4726-98ea-f2260ea115f0
        email: example@example.com
        phone: "+441234567890"
        full_name: Example Customer
      merchant_order_data:
        url: https://www.example.com/ticketnumber-12345
        reference: example_airline_reference
  157b6be:
    summary: Example order response with additional car rental data
    value:
      id: 6516ed0c-098f-aa19-80e5-9d92f52b35e0
      token: 061f2c63-e36b-421e-9ece-5adfcd580886
      type: payment
      state: pending
      created_at: 2025-01-29T15:28:12.114992Z
      updated_at: 2025-01-29T15:28:12.114992Z
      amount: 500
      currency: GBP
      outstanding_amount: 500
      settlement_currency: GBP
      capture_mode: manual
      authorisation_type: final
      description: Example car rental order
      checkout_url: https://checkout.revolut.com/payment-link/061f2c63-e36b-421e-9ece-5adfcd580886
      redirect_url: https://www.example.com/redirect
      cancel_authorised_after: PT30M
      industry_data:
        type: car_rental
        booking_id: example_booking_id
        pick_up_date: 2026-03-01T11:00:00Z
        drop_off_date: 2026-03-05T16:30:00Z
        refundability: partially_refundable
        pick_up_location:
          street_line_1: 1 Example Street
          city: London
          country_code: GB
          postcode: SW1A 1AA
        drop_off_location:
          street_line_1: 10 Another Road
          city: Manchester
          country_code: GB
          postcode: M1 1AA
        distance_limit:
          limit: 500
          unit: miles
          additional_distance_cost:
            amount: 150
            currency: GBP
      enforce_challenge: forced
      customer:
        id: db186257-3031-4726-98ea-f2260ea115f0
        email: example@example.com
        phone: "+447700900000"
        full_name: Example Customer
      merchant_order_data:
        url: https://www.example.com/rental/example_booking_id
        reference: example_car_rental_reference
  60c8415:
    summary: Example order response with additional crypto transaction data
    value:
      id: 6516edb9-74af-ae47-829b-1475e807a8d7
      token: 1e619c26-d954-4d45-94ab-aba1e407fcee
      type: payment
      state: pending
      created_at: 2023-09-29T15:31:05.746826Z
      updated_at: 2023-09-29T15:31:05.746826Z
      amount: 26100
      currency: EUR
      outstanding_amount: 26100
      settlement_currency: EUR
      capture_mode: manual
      authorisation_type: final
      description: Customer wants to buy 0.01 BTC
      checkout_url: https://checkout.revolut.com/payment-link/1e619c26-d954-4d45-94ab-aba1e407fcee
      redirect_url: https://www.example.com/redirect
      industry_data:
        type: crypto
        transactions:
          - id: 7b2a8ed4-5889-4c0c-a8cc-299aff1c881b
            status: pending
            recipient_wallet_id: 64a6f159-0a60-a446-880e-e449a1f62f7c
        subseller_mcc: "1234"
        subseller_url: https://example.com
      enforce_challenge: automatic
      customer:
        id: db186257-3031-4726-98ea-f2260ea115f0
        email: example@example.com
        phone: "+44123456789"
        full_name: Example Customer
      merchant_order_data:
        url: https://www.example.com/cryptotransactionnumber-12345
        reference: example_crypto_reference
  982681c:
    summary: Example order response with additional marketplace data
    value:
      id: 670920dc-d343-abf8-963a-68ae1bc8ae58
      token: 41aabe45-b444-45e6-8363-f0433452e138
      type: payment
      state: pending
      created_at: 2024-10-11T12:58:04.826974Z
      updated_at: 2024-10-11T12:58:04.826974Z
      amount: 10000
      currency: EUR
      outstanding_amount: 10000
      capture_mode: automatic
      authorisation_type: final
      checkout_url: https://checkout.revolut.com/payment-link/41aabe45-b444-45e6-8363-f0433452e138
      industry_data:
        type: marketplace
        subseller:
          id: 123-45-67
          name: Example Subseller
          address:
            street_line_1: 1 Canada Square
            street_line_2: Revolut LTD, Level 39
            region: Greater London
            city: London
            country_code: GB
            country_subdivision_code: GB-LND
            postcode: E14 4HD
          website: https://example.com/123-45-67
          phone: "+441234567890"
      enforce_challenge: automatic
  84463ae:
    summary: Example order response with additional event data
    value:
      id: 67bf20c4-59a5-a7a9-81ad-052fda5f80eb
      token: 8737a497-9bae-4647-90bf-1abe2fd9162a
      type: payment
      state: pending
      created_at: 2025-02-26T14:10:12.804901Z
      updated_at: 2025-02-26T14:10:12.804901Z
      amount: 100
      currency: GBP
      outstanding_amount: 100
      capture_mode: automatic
      authorisation_type: final
      checkout_url: https://checkout.revolut.com/payment-link/8737a497-9bae-4647-90bf-1abe2fd9162a
      industry_data:
        type: event
        booking_id: example_booking_123
        events:
          - start_date: 2025-03-04T14:00:00Z
            end_date: 2025-03-04T17:00:00Z
            supplier: Example Supplier
            supplier_payment_date: 2025-03-03T14:00:15Z
            name: Example Event
            location:
              street_line_1: Example Street 123
              street_line_2: II/123
              region: London
              city: London
              country_code: GB
              postcode: "123456"
            category: exhibition
            market: primary
            tickets:
              - id: example_ticket_1
                transferable: false
                refundability: partially_refundable
              - id: example_ticket_2
                transferable: true
                refundability: non_refundable
              - id: example_ticket_3
      enforce_challenge: automatic
  0cf2bd5:
    summary: Example order response with additional lodging data
    value:
      id: 67c70d42-1545-a73d-a4a5-35b7ac49e1da
      token: 9effe2b6-8907-4954-9e9b-696f763f7e08
      type: payment
      state: pending
      created_at: 2025-03-04T14:25:06.099782Z
      updated_at: 2025-03-04T14:25:06.099782Z
      amount: 100
      currency: GBP
      outstanding_amount: 100
      capture_mode: automatic
      authorisation_type: final
      checkout_url: https://checkout.revolut.com/payment-link/9effe2b6-8907-4954-9e9b-696f763f7e08
      industry_data:
        type: lodging
        booking_id: example_booking_123
        check_out_date: 2025-05-05T11:00:00Z
        booking_type: flexible
        refundability: partially_refundable
        location:
          street_line_1: Example Street 123
          street_line_2: II/123
          region: London
          city: London
          country_code: GB
          postcode: "123456"
        guests:
          - first_name: First
            last_name: Guest
          - first_name: Second
            last_name: Guest
        check_in_date: 2025-05-01T15:00:00Z
        supplier_payment_date: 2025-05-05T11:00:00Z
        category: bed_and_breakfast
      enforce_challenge: automatic
  6ebce25:
    name: order_id
    in: path
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    required: true
    description: The ID of the `Order` object.
  329b2d1:
    title: Error
    type: object
    properties:
      errorId:
        type: string
        description: The ID of the error. You can share this ID with Revolut support for
          troubleshooting.
      timestamp:
        type: integer
        description: The date and time the error happened.
    required:
      - errorId
      - timestamp
  c2c6e40:
    summary: Example increment with minimal required parameters
    value:
      amount: 600
  b947f42:
    summary: Example increment with additional parameters
    value:
      amount: 6000
      reference: CHG-67890
      line_items:
        - name: Minibar
          type: physical
          quantity:
            value: 1
          unit_price_amount: 2500
          total_amount: 2500
        - name: Room service
          type: physical
          quantity:
            value: 1
          unit_price_amount: 3500
          total_amount: 3500
  d840984:
    summary: Increment in progress
    value:
      id: 6920869a-8d8d-aefd-a3c3-8fe4690e4323
      token: 0823794d-28e9-4fdd-a130-3293ff9dd57b
      type: payment
      state: processing
      created_at: 2025-11-21T15:34:50.351537Z
      updated_at: 2025-11-21T15:35:12.123456Z
      amount: 500
      currency: EUR
      outstanding_amount: 500
      capture_mode: manual
      authorisation_type: pre_authorisation
      incremental_authorisations:
        - new_amount: 600
          old_amount: 500
          state: processing
          reference: "1263738"
      payments:
        - id: 696a4ce4-2aaf-a008-9f26-f47cf8ab1678
          state: authorisation_started
          created_at: 2025-11-21T15:34:50.474085Z
          updated_at: 2025-11-21T15:35:12.300608Z
          token: 928f25b1-121c-4669-ab9f-d0b7a5804576
          amount: 600
          authorised_amount: 500
          currency: EUR
          settled_amount: 500
          settled_currency: EUR
          billing_address:
            country_code: US
            postcode: "94102"
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: card
            card_brand: visa
            funding: debit
            card_country_code: US
            card_bin: "424242"
            card_last_four: "4242"
            card_expiry: 12/35
            cardholder_name: Example Customer
            checks:
              three_ds:
                eci: "05"
                state: verified
                version: 2
              cvv_verification: not_processed
              address: n_a
              postcode: n_a
              cardholder: n_a
            fingerprint: aadDmPDArelhtk5QK3zqccaPi39zEDp6/uKuUsA9LHE=
            network_transaction_id: "1234567890123456"
            authorisation_code: "100000"
            arn: "12345678912345678912345"
            capture_deadline: 2025-11-28T15:34:50.513Z
      checkout_url: https://checkout.revolut.com/payment-link/0823794d-28e9-4fdd-a130-3293ff9dd57b
      enforce_challenge: automatic
  e19e106:
    summary: Increment authorised successfully
    value:
      id: 6920869a-8d8d-aefd-a3c3-8fe4690e4323
      token: 0823794d-28e9-4fdd-a130-3293ff9dd57b
      type: payment
      state: authorised
      created_at: 2025-11-21T15:34:50.351537Z
      updated_at: 2025-11-21T15:35:15.789012Z
      amount: 600
      currency: EUR
      outstanding_amount: 600
      capture_mode: manual
      authorisation_type: pre_authorisation
      incremental_authorisations:
        - new_amount: 600
          old_amount: 500
          state: authorised
          reference: "1263738"
      payments:
        - id: 696a4ce4-2aaf-a008-9f26-f47cf8ab1678
          state: authorised
          created_at: 2025-11-21T15:34:50.474085Z
          updated_at: 2025-11-21T15:35:15.789012Z
          token: 928f25b1-121c-4669-ab9f-d0b7a5804576
          amount: 600
          authorised_amount: 600
          currency: EUR
          settled_amount: 600
          settled_currency: EUR
          billing_address:
            country_code: US
            postcode: "94102"
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: card
            card_brand: visa
            funding: debit
            card_country_code: US
            card_bin: "424242"
            card_last_four: "4242"
            card_expiry: 12/35
            cardholder_name: Example Customer
            checks:
              three_ds:
                eci: "05"
                state: verified
                version: 2
              cvv_verification: not_processed
              address: n_a
              postcode: n_a
              cardholder: n_a
            fingerprint: aadDmPDArelhtk5QK3zqccaPi39zEDp6/uKuUsA9LHE=
            network_transaction_id: "1234567890123456"
            authorisation_code: "100000"
            arn: "12345678912345678912345"
            capture_deadline: 2025-11-28T15:34:50.513Z
  8817c1e:
    summary: Increment declined
    value:
      id: 6920869a-8d8d-aefd-a3c3-8fe4690e4323
      token: 0823794d-28e9-4fdd-a130-3293ff9dd57b
      type: payment
      state: authorised
      created_at: 2025-11-21T15:34:50.351537Z
      updated_at: 2025-11-21T15:35:15.789012Z
      amount: 500
      currency: EUR
      outstanding_amount: 500
      capture_mode: manual
      authorisation_type: pre_authorisation
      incremental_authorisations:
        - new_amount: 600
          old_amount: 500
          state: declined
          reference: "1263738"
          reason: insufficient_funds
      payments:
        - id: 696a4ce4-2aaf-a008-9f26-f47cf8ab1678
          state: authorised
          created_at: 2025-11-21T15:34:50.474085Z
          updated_at: 2025-11-21T15:35:15.789012Z
          token: 928f25b1-121c-4669-ab9f-d0b7a5804576
          amount: 500
          authorised_amount: 500
          currency: EUR
          settled_amount: 500
          settled_currency: EUR
          billing_address:
            country_code: US
            postcode: "94102"
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: card
            card_brand: visa
            funding: debit
            card_country_code: US
            card_bin: "424242"
            card_last_four: "4242"
            card_expiry: 12/35
            cardholder_name: Example Customer
            checks:
              three_ds:
                eci: "05"
                state: verified
                version: 2
              cvv_verification: not_processed
              address: n_a
              postcode: n_a
              cardholder: n_a
            fingerprint: aadDmPDArelhtk5QK3zqccaPi39zEDp6/uKuUsA9LHE=
            network_transaction_id: "1234567890123456"
            authorisation_code: "100000"
            arn: "12345678912345678912345"
            capture_deadline: 2025-11-28T15:34:50.513Z
  a441f72:
    summary: Capture with amount only
    value:
      amount: 100
  797e8ac:
    summary: Capture with amount and line items
    value:
      amount: 770
      line_items:
        - name: Example item 1
          type: physical
          quantity:
            value: 2
            unit: kg
          unit_price_amount: 100
          total_amount: 170
          external_id: external_id_123
          discounts:
            - name: Discount 1
              amount: 50
          taxes:
            - name: 10% VAT
              amount: 20
        - name: Example item 2
          type: service
          quantity:
            value: 10
            unit: pieces
          unit_price_amount: 100
          total_amount: 600
          external_id: external_id_456
          discounts:
            - name: Discount 2
              amount: 500
          taxes:
            - name: 10% VAT
              amount: 100
  a64baa6:
    summary: Captured order (minimal)
    value:
      id: 65c4c739-113d-a608-9128-47c7ca90cbe3
      token: ebc06202-061e-4d0f-8063-99195fad31fb
      type: payment
      state: completed
      created_at: 2024-02-08T12:21:13.022871Z
      updated_at: 2024-02-08T12:21:52.194601Z
      amount: 100
      currency: GBP
      refunded_amount: 0
      outstanding_amount: 0
      capture_mode: manual
      payments:
        - id: 65c4c748-bf0d-af8a-9d69-0fc92bc0ff94
          state: captured
          created_at: 2024-02-08T12:21:28.803165Z
          updated_at: 2024-02-08T12:21:52.191352Z
          token: 74af5a2b-6722-4353-aaf1-cd5926883b60
          amount: 100
          currency: GBP
          settled_amount: 100
          settled_currency: GBP
          billing_address:
            country_code: US
            postcode: "12345"
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: revolut_pay_card
            card_brand: visa
            funding: debit
            card_country_code: US
            card_bin: "529999"
            card_last_four: "0368"
            card_expiry: 12/28
            cardholder_name: Test Holder
            checks:
              three_ds:
                state: verified
                version: 2
            enforce_challenge: automatic
            fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
            network_transaction_id: "1234567890123456"
  de68965:
    summary: Captured order with line items
    value:
      id: 65c4c739-113d-a608-9128-47c7ca90cbe3
      token: ebc06202-061e-4d0f-8063-99195fad31fb
      type: payment
      state: completed
      created_at: 2024-02-08T12:21:13.022871Z
      updated_at: 2024-02-08T12:21:52.194601Z
      amount: 770
      currency: GBP
      refunded_amount: 0
      outstanding_amount: 0
      capture_mode: manual
      line_items:
        - name: Example item 1
          type: physical
          quantity:
            value: 2
            unit: kg
          unit_price_amount: 100
          total_amount: 170
          external_id: external_id_123
          discounts:
            - name: Discount 1
              amount: 50
          taxes:
            - name: 10% VAT
              amount: 20
        - name: Example item 2
          type: service
          quantity:
            value: 10
            unit: pieces
          unit_price_amount: 100
          total_amount: 600
          external_id: external_id_456
          discounts:
            - name: Discount 2
              amount: 500
          taxes:
            - name: 10% VAT
              amount: 100
      payments:
        - id: 65c4c748-bf0d-af8a-9d69-0fc92bc0ff94
          state: captured
          created_at: 2024-02-08T12:21:28.803165Z
          updated_at: 2024-02-08T12:21:52.191352Z
          token: 74af5a2b-6722-4353-aaf1-cd5926883b60
          amount: 770
          currency: GBP
          settled_amount: 770
          settled_currency: GBP
          billing_address:
            country_code: US
            postcode: "12345"
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: revolut_pay_card
            card_brand: visa
            funding: debit
            card_country_code: US
            card_bin: "529999"
            card_last_four: "0368"
            card_expiry: 12/28
            cardholder_name: Test Holder
            checks:
              three_ds:
                state: verified
                version: 2
            enforce_challenge: automatic
            fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
            network_transaction_id: "1234567890123456"
  a200791:
    name: Revolut-Api-Version
    in: header
    schema:
      type: string
      format: date
      enum:
        - 2023-09-01
        - 2024-05-01
        - 2024-09-01
        - 2025-10-16
        - 2025-12-04
        - 2026-03-12
        - 2026-04-20
      examples:
        - 2026-04-20
    description: >-
      The version of the Merchant API, specified in `YYYY-MM-DD` format.


      :::info

      For more information about API versioning, see: [API
      versions](/docs/guides/merchant/reference/versioning/api-versions).

      :::
    x-config-always-visible-in-example: true
  d246405:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/a200791"
    post:
      summary: Unregister domain for Apple Pay
      operationId: unregisterDomainApplePay
      description: "Unregister your website from Apple Pay's registered domains. "
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  description: Domain name of your website without the scheme (i.e. without
                    `http://` or `https://`).
                  examples:
                    - revolut.com
                reason:
                  type: string
                  description: A short explanation why you remove the domain.
                  maxLength: 1024
              required:
                - domain
                - reason
            examples:
              example_request:
                summary: Example domain registration request for Apple Pay
                value:
                  domain: revolut.com
                  reason: Unregister due to domain change.
      responses:
        "204":
          description: Domain ungistered successfully
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: >-
                      An identifier that can be used to determine what went
                      wrong.


                      Error codes are not globally unique, but uniqueness is
                      guaranteed within endpoints.
                  message:
                    type: string
                    description: Human readable text describing what went wrong.
                required:
                  - code
              examples:
                error_message:
                  summary: Error message
                  value:
                    code: validation
                    message: Exactly one value must be supplied for client_id
      security:
        - Api-Key: []
      tags:
        - Apple Pay merchant registration
  a354217:
    summary: Example order response with minimal required parameters
    value:
      id: 6516f565-c903-ae7d-8582-0bc70468ec29
      token: 579462b3-da89-4a46-8690-572d3968573f
      type: payment
      state: cancelled
      created_at: 2023-09-29T16:03:49.569437Z
      updated_at: 2023-09-29T16:04:30.727004Z
      amount: 500
      currency: GBP
      refunded_amount: 0
      outstanding_amount: 0
      capture_mode: automatic
      authorisation_type: final
      enforce_challenge: automatic
  3ad7298:
    summary: Example order response with additional parameters
    value:
      id: 6516f379-c03f-adf3-a2bf-24b328909731
      token: 91533c29-47d1-4ae9-a73f-74225fd4b176
      type: payment
      state: cancelled
      created_at: 2023-09-29T15:55:37.201407Z
      updated_at: 2023-09-29T15:56:38.398961Z
      amount: 500
      currency: GBP
      refunded_amount: 0
      outstanding_amount: 500
      capture_mode: manual
      authorisation_type: final
      cancel_authorised_after: PT30M
      description: Example product
      checkout_url: https://checkout.revolut.com/payment-link/91533c29-47d1-4ae9-a73f-74225fd4b176
      redirect_url: https://www.example.com/redirect
      shipping_address:
        street_line_1: 7 Westferry Circus
        city: London
        country_code: GB
        postcode: E14 4HD
      metadata:
        product_type: Example
      payments:
        - id: 6516f38a-a12b-aca3-83f2-6ed16d6ed246
          state: authorised
          created_at: 2023-09-29T15:55:54.579311Z
          updated_at: 2023-09-29T15:56:38.403232Z
          amount: 500
          currency: GBP
          settled_amount: 500
          settled_currency: GBP
          billing_address:
            street_line_1: 26 Atkins Avenue
            street_line_2: New York 42233
            city: SentinelFraudLow
            country_code: GB
            postcode: PE3 9UP
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: revolut_pay_account
            fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
      enforce_challenge: forced
      customer:
        id: 3c131306-0a0a-4f54-99d7-3fb2e027c6f7
        email: example@example.com
        phone: "+441234567890"
        full_name: Example Customer
      merchant_order_data:
        url: https://example.com/orders/12345
      statement_descriptor_suffix: "12345"
  6ceabeb:
    description: Example order response with line items
    value:
      id: 66bcc998-4209-ac6e-96fe-2910b949c516
      token: 0bcfcc1d-9ee9-4476-b36c-cf4abba2e45a
      type: payment
      state: cancelled
      created_at: 2024-08-14T15:13:28.814729Z
      updated_at: 2024-08-14T15:13:28.814729Z
      amount: 770
      currency: GBP
      outstanding_amount: 770
      capture_mode: automatic
      authorisation_type: final
      checkout_url: https://checkout.revolut.com/payment-link/0bcfcc1d-9ee9-4476-b36c-cf4abba2e45a
      enforce_challenge: automatic
      line_items:
        - name: Example item 1
          unit_price_amount: 100
          quantity:
            value: 2
            unit: kg
          type: physical
          discounts:
            - name: Discount 1
              amount: 50
          taxes:
            - name: 10% VAT
              amount: 20
          total_amount: 170
          image_urls:
            - https://www.example.com/line-item-image1
            - https://www.example.com/line-item-image2
          description: First line item
          external_id: external_id_123
          url: https://www.example.com
        - name: Example item 2
          unit_price_amount: 100
          quantity:
            value: 10
            unit: pieces
          type: service
          discounts:
            - name: Discount 2
              amount: 500
          taxes:
            - name: 10% VAT
              amount: 100
          total_amount: 600
          image_urls:
            - https://www.example.com/line_item_image3
            - https://www.example.com/line_item_image4
          description: Second line item
          external_id: external_id_456
          url: https://www.example.com
  678ad63:
    summary: Example order response with additional crypto transaction data
    value:
      id: 6516f11e-5eb1-a223-858d-2c9a7f2a7189
      token: 74dce962-2f86-4d86-98b3-a0c590bccc56
      type: payment
      state: cancelled
      created_at: 2023-09-29T15:45:34.922508Z
      updated_at: 2023-09-29T15:50:37.989334Z
      amount: 26100
      currency: EUR
      refunded_amount: 0
      outstanding_amount: 26100
      settlement_currency: EUR
      capture_mode: manual
      authorisation_type: final
      cancel_authorised_after: PT30M
      description: Customer wants to buy 0.01 BTC
      checkout_url: https://checkout.revolut.com/payment-link/74dce962-2f86-4d86-98b3-a0c590bccc56
      redirect_url: https://www.example.com/redirect
      industry_data:
        type: crypto
        transactions:
          - id: 7b2a8ed4-5889-4c0c-a8cc-299aff1c881b
            status: pending
            recipient_wallet_id: 64a6f159-0a60-a446-880e-e449a1f62f7c
        subseller_mcc: "1234"
        subseller_url: https://example.com
      payments:
        - id: 6516f139-a0ad-aaf9-a3a5-0f6ee8c9fde5
          state: failed
          decline_reason: technical_error
          created_at: 2023-09-29T15:46:01.823402Z
          updated_at: 2023-09-29T15:46:03.199834Z
          amount: 26100
          currency: EUR
          settled_amount: 26100
          settled_currency: EUR
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: card
            fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
            network_transaction_id: "1234567890123456"
            card_brand: mastercard
            funding: credit
            card_country_code: MT
            card_bin: "542071"
            card_last_four: "0016"
            card_expiry: 12/28
            cardholder_name: Test Holder
            checks:
              three_ds:
                state: failed
                version: 2
        - id: 6516f186-0cf3-aefe-b6da-af1a5dad1630
          state: authorised
          created_at: 2023-09-29T15:47:18.050227Z
          updated_at: 2023-09-29T15:50:37.993217Z
          amount: 26100
          currency: EUR
          settled_amount: 26100
          settled_currency: EUR
          billing_address:
            street_line_1: 26 Atkins Avenue
            street_line_2: New York 42233
            city: SentinelFraudLow
            country_code: GB
            postcode: PE3 9UP
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: revolut_pay_account
            fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
      enforce_challenge: automatic
      customer:
        id: 3c131306-0a0a-4f54-99d7-3fb2e027c6f7
        email: example@example.com
        phone: "+441234567890"
        full_name: Example Customer
      merchant_order_data:
        url: https://www.example.com/cryptotransactionnumber-12345
        reference: example_crypto_reference
  edaaf2d:
    summary: Example order response with additional marketplace data
    value:
      id: 670920dc-d343-abf8-963a-68ae1bc8ae58
      token: 41aabe45-b444-45e6-8363-f0433452e138
      type: payment
      state: cancelled
      created_at: 2024-10-11T12:58:04.826974Z
      updated_at: 2024-10-11T12:58:04.826974Z
      amount: 10000
      currency: EUR
      outstanding_amount: 10000
      capture_mode: automatic
      authorisation_type: final
      checkout_url: https://checkout.revolut.com/payment-link/41aabe45-b444-45e6-8363-f0433452e138
      industry_data:
        type: marketplace
        subseller:
          id: 123-45-67
          name: Example Subseller
          address:
            street_line_1: 1 Canada Square
            street_line_2: Revolut LTD, Level 39
            region: Greater London
            city: London
            country_code: GB
            country_subdivision_code: GB-LND
            postcode: E14 4HD
          website: https://example.com/123-45-67
          phone: "+441234567890"
      enforce_challenge: automatic
  8b63a48:
    summary: Example order response with additional event data
    value:
      id: 67bf20c4-59a5-a7a9-81ad-052fda5f80eb
      token: 8737a497-9bae-4647-90bf-1abe2fd9162a
      type: payment
      state: cancelled
      created_at: 2025-02-26T14:10:12.804901Z
      updated_at: 2025-02-26T14:10:12.804901Z
      amount: 100
      currency: GBP
      outstanding_amount: 100
      capture_mode: automatic
      authorisation_type: final
      checkout_url: https://checkout.revolut.com/payment-link/8737a497-9bae-4647-90bf-1abe2fd9162a
      industry_data:
        type: event
        booking_id: example_booking_123
        events:
          - start_date: 2025-03-04T14:00:00Z
            end_date: 2025-03-04T17:00:00Z
            supplier: Example Supplier
            supplier_payment_date: 2025-03-03T14:00:15Z
            name: Example Event
            location:
              street_line_1: Example Street 123
              street_line_2: II/123
              region: London
              city: London
              country_code: GB
              postcode: "123456"
            category: exhibition
            market: primary
            tickets:
              - id: example_ticket_1
                transferable: false
                refundability: partially_refundable
              - id: example_ticket_2
                transferable: true
                refundability: non_refundable
              - id: example_ticket_3
      enforce_challenge: automatic
  bfe4bee:
    summary: Example order response with additional lodging data
    value:
      id: 67c70d42-1545-a73d-a4a5-35b7ac49e1da
      token: 9effe2b6-8907-4954-9e9b-696f763f7e08
      type: payment
      state: cancelled
      created_at: 2025-03-04T14:25:06.099782Z
      updated_at: 2025-03-04T14:25:06.099782Z
      amount: 100
      currency: GBP
      outstanding_amount: 100
      capture_mode: automatic
      authorisation_type: final
      checkout_url: https://checkout.revolut.com/payment-link/9effe2b6-8907-4954-9e9b-696f763f7e08
      industry_data:
        type: lodging
        booking_id: example_booking_123
        check_out_date: 2025-05-05T11:00:00Z
        booking_type: flexible
        refundability: partially_refundable
        location:
          street_line_1: Example Street 123
          street_line_2: II/123
          region: London
          city: London
          country_code: GB
          postcode: "123456"
        guests:
          - first_name: First
            last_name: Guest
          - first_name: Second
            last_name: Guest
        check_in_date: 2025-05-01T15:00:00Z
        supplier_payment_date: 2025-05-05T11:00:00Z
        category: bed_and_breakfast
      enforce_challenge: automatic
  c0cdbbb:
    name: Idempotency-Key
    in: header
    schema:
      type: string
    required: false
    description: >-
      The `Idempotency-Key` ensures that requests are processed only once,
      preventing multiple executions of the same operation due to retries or
      duplicate requests.


      This header is optional and can accept any unique string value the
      merchant uses.


      A recommended practice is to use a unique identifier from your system
      (such as the entity's ID or a request UUID) as the idempotency key. This
      facilitates tracking and managing requests effectively.
  f3e7dc8:
    title: Customer
    type: object
    description: ""
    properties:
      id:
        type: string
        description: Permanent customer ID used to retrieve, update, and delete a customer.
      full_name:
        type: string
        description: The full name of the customer.
      business_name:
        type: string
        description: The name of the customer's business.
      phone:
        type: string
        description: The phone number of the customer in [E.164
          format](https://en.wikipedia.org/wiki/E.164).
      created_at:
        type: string
        description: The date and time the customer was created.
        format: date-time
      updated_at:
        type: string
        description: The data and time the customer was last updated.
        format: date-time
      email:
        type: string
        description: The email address of the customer.
        format: email
      date_of_birth:
        $ref: "#/x-ext/8f22aa4"
    required:
      - id
      - created_at
      - updated_at
      - email
  11ca5af:
    type: object
    properties:
      id:
        $ref: "#/x-ext/a001704"
      order_id:
        $ref: "#/x-ext/8ada47f"
      payment_method:
        type: object
        description: The payment method used to pay for the order.
        discriminator:
          propertyName: type
          mapping:
            revolut_pay: ./Revolut-Pay.yaml
            card: ./Card-For-Payment-Details.yaml
            sepa_direct_debit: ./Sepa-Direct-Debit.yaml
        oneOf:
          - $ref: "#/x-ext/cc64bb8"
          - $ref: "#/x-ext/c7c0e23"
          - $ref: "#/x-ext/71cc49f"
      token:
        $ref: "#/x-ext/d21286a"
      amount:
        $ref: "#/x-ext/f26cba6"
      currency:
        $ref: "#/x-ext/1b2472a"
      state:
        $ref: "#/x-ext/9ebf295"
      decline_reason:
        $ref: "#/x-ext/67d79e0"
      authentication_challenge:
        $ref: "#/x-ext/faf3b7e"
    required:
      - id
      - order_id
      - payment_method
  5cb8929:
    name: customer_id
    in: path
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    required: true
    description: The ID of the `Customer` object.
  afb87dc:
    name: payment_method_id
    in: path
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    required: true
    description: The ID of the payment method.
  233ebf4:
    title: Payment method object
    type: object
    description: ""
    properties:
      id:
        type: string
        format: uuid
        description: The ID of the payment method.
      type:
        type: string
        enum:
          - CARD
          - REVOLUT_PAY
        description: >-
          The type of the payment method.


          :::note

          Only merchant initiated transactions are supported for saved
          `REVOLUT_PAY` payment methods.

          :::
      saved_for:
        type: string
        enum:
          - CUSTOMER
          - MERCHANT
        description: >-
          Indicates in which case this saved payment method can be used for
          payments.



          - `CUSTOMER`: This payment method can be used only when the customer
          is on the checkout page.

          - `MERCHANT`: This payment method can be used without the customer
          being on the checkout page, and the merchant can initiate
          transactions, for example, to take payments for recurring
          transactions.
      method_details:
        type: object
        description: The details of the payment method.
        properties:
          bin:
            type: string
            maxLength: 6
            minLength: 6
            description: The BIN of the payment card.
          last4:
            type: string
            maxLength: 4
            minLength: 4
            description: The last four digits of the payment card.
          expiry_month:
            type: number
            description: The expiry month of the payment card.
          expiry_year:
            type: number
            description: The expiry year of the payment card.
          cardholder_name:
            type: string
            description: The name of the cardholder.
          billing_address:
            type: object
            description: The billing address of the payment method.
            properties:
              street_line_1:
                type: string
                minLength: 1
                description: Street line 1 information.
              street_line_2:
                type: string
                minLength: 1
                description: Street line 2 information.
              postcode:
                type: string
                minLength: 1
                description: The postcode associated with the address.
              city:
                type: string
                minLength: 1
                description: The city associated with the address.
              region:
                type: string
                minLength: 1
                description: The region associated with the address.
              country_code:
                type: string
                minLength: 1
                description: The country associated with the address.
          brand:
            type: string
            description: The brand of the payment card.
            enum:
              - VISA
              - MASTERCARD
              - MAESTRO
          funding:
            type: string
            enum:
              - DEBIT
              - CREDIT
              - PREPAID
              - DEFERRED_DEBIT
              - CHARGE
            description: The funding type of the payment card.
          issuer:
            type: string
            description: The issuer of the payment card.
          issuer_country:
            type: string
            description: Two-letter country code of the country where the payment card was
              issued.
          created_at:
            type: string
            description: The date and time the payment card was added.
            format: date-time
    required:
      - id
  70ab0f7:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/5cb8929"
    get:
      summary: Retrieve all payment methods of a customer (Deprecated)
      deprecated: true
      operationId: retrieveAllPaymentMethodsDeprecated
      description: >-
        Retrieve all the payment methods for a specific customer. 


        This can be useful in the following example cases:


        - To show what information is stored for the customer.

        - To try a different payment method if the first payment method fails
        when a recurring transaction occurs.
      parameters:
        - name: only_merchant
          in: query
          schema:
            type: boolean
            default: false
          description: >-
            If `only_merchant` is set to `true`, you retrieve the payment
            methods

            that were saved for the merchant (`saved_for: "MERCHANT"`).


            To use this parameter insert it at the end of the request URL. See
            this example for a request URL in Production environment: 

              ```curl
              https://merchant.revolut.com/api/1.0/customers/{customer_id}/payment-methods?only_merchant=true
              ``` 
          required: false
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/x-ext/233ebf4"
              examples:
                list_of_payment_methods:
                  summary: List of payment methods
                  value:
                    - id: 648334a8-9546-a983-a81a-efc6d5bdd0be
                      type: REVOLUT_PAY
                      saved_for: MERCHANT
                      method_details:
                        created_at: 2023-06-09T14:18:16.577888Z
                    - id: edef3ba4-60a0-4df3-8f12-e5fc858c2420
                      type: CARD
                      saved_for: CUSTOMER
                      method_details:
                        bin: "459678"
                        last4: "6896"
                        expiry_month: 3
                        expiry_year: 2025
                        cardholder_name: Example Customer
                        brand: VISA
                        funding: DEBIT
                        issuer: EXAMPLE ISSUER
                        issuer_country: GB
                        billing_address:
                          street_line_1: "7"
                          street_line_2: Westferry Circus
                          postcode: E144HD
                          city: London
                          region: Greater London
                          country_code: GB
                        created_at: 2023-03-24T14:15:22Z
                    - id: a04406c4-05be-498b-8207-cc1e02a9b3ca
                      type: CARD
                      saved_for: MERCHANT
                      method_details:
                        bin: "459885"
                        last4: "7653"
                        expiry_month: 12
                        expiry_year: 2021
                        cardholder_name: Example Holder
                        brand: MASTERCARD
                        funding: CREDIT
                        issuer: EXAMPLE ISSUER
                        issuer_country: GB
                        billing_address:
                          street_line_1: Revolut
                          street_line_2: 1 Canada Square
                          postcode: EC2V 6DN
                          city: London
                          region: Greater London
                          country_code: GB
                        created_at: 2023-03-24T14:15:22Z
                list_of_only_merchant_payment_methods:
                  summary: List of payment methods (only_merchant=true)
                  value:
                    - id: 624baa72-0a30-4ee3-9870-d7172912704c
                      type: CARD
                      saved_for: MERCHANT
                      method_details:
                        bin: "492942"
                        last4: "5709"
                        expiry_month: 12
                        expiry_year: 2025
                        cardholder_name: Example Customer
                        billing_address:
                          street_line_1: "7"
                          street_line_2: Westferry Circus
                          postcode: E144HD
                          city: London
                          region: Greater London
                          country_code: GB
                        created_at: 2023-03-24T14:15:22Z
                    - id: b92b7413-8764-4f8e-855d-d9b6986af2d9
                      type: CARD
                      saved_for: MERCHANT
                      method_details:
                        bin: "528143"
                        last4: "7653"
                        expiry_month: 12
                        expiry_year: 2025
                        cardholder_name: Example Holder
                        billing_address:
                          street_line_1: Revolut
                          street_line_2: 1 Canada Square
                          postcode: EC2V 6DN
                          city: London
                          region: Greater London
                          country_code: GB
                        created_at: 2023-03-24T14:15:22Z
        "401":
          description: Unauthorized
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Customers
  a52911f:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/5cb8929"
      - $ref: "#/x-ext/afb87dc"
    get:
      summary: Retrieve a customer's payment method (Deprecated)
      deprecated: true
      operationId: retrievePaymentMethodDeprecated
      description: Retrieve the information of a specific payment method that is saved.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/233ebf4"
              examples:
                retrieved_payment_method:
                  summary: Retrieved payment method
                  value:
                    id: edef3ba4-60a0-4df3-8f12-e5fc858c2420
                    type: CARD
                    saved_for: CUSTOMER
                    method_details:
                      bin: "459678"
                      last4: "6896"
                      expiry_month: 3
                      expiry_year: 2025
                      cardholder_name: Example Customer
                      brand: VISA
                      funding: DEBIT
                      issuer: EXAMPLE ISSUER
                      issuer_country: GB
                      billing_address:
                        street_line_1: "7"
                        street_line_2: Westferry Circus
                        postcode: E144HD
                        city: London
                        region: Greater London
                        country_code: GB
                      created_at: 2023-03-24T14:15:22Z
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Customers
    patch:
      summary: Update a customer's payment method (Deprecated)
      deprecated: true
      operationId: updatePaymentMethodDeprecated
      description: >-
        When you use this request to update a customer's payment method, the
        payment method can't be used for merchant initiated transactions (MIT)
        any more. This payment method can be used only when the customer is on
        the checkout page.



        For more information about the limitations introduced by this parameter,
        see: 
          - [Pay for an order](/docs/api/merchant/Legacy#pay-order)
          - [Charge a customer's saved payment method](/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method)
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                saved_for:
                  type: string
                  description: >-
                    Update the value of `saved_for` from `MERCHANT` to
                    `CUSTOMER`.


                    This indicates that the updated payment method can't be used
                    for merchant initiated transactions (MIT) any more.
                  enum:
                    - CUSTOMER
              required:
                - saved_for
            examples:
              example_request:
                summary: Example request
                value:
                  saved_for: CUSTOMER
          application/xml:
            schema:
              type: object
              properties: {}
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/233ebf4"
              examples:
                updated_payment_method:
                  summary: Updated payment method
                  value:
                    id: edef3ba4-60a0-4df3-8f12-e5fc858c2420
                    type: CARD
                    saved_for: CUSTOMER
                    method_details:
                      bin: "459678"
                      last4: "6896"
                      expiry_month: 3
                      expiry_year: 2025
                      cardholder_name: John Doe
                      brand: VISA
                      funding: DEBIT
                      issuer: EXAMPLE ISSUER
                      issuer_country: GB
                      billing_address:
                        street_line_1: "7"
                        street_line_2: Westferry Circus
                        postcode: E144HD
                        city: London
                        region: Greater London
                        country_code: GB
                      created_at: 2023-03-24T14:15:22Z
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Customers
    delete:
      summary: Delete a customer's payment method (Deprecated)
      deprecated: true
      operationId: deletePaymentMethodDeprecated
      description: >-
        Delete a specific payment method. The payment method is completely
        deleted from the customer payment methods. 


        To reuse the payment method that is deleted, direct your customer to the
        checkout page and save the card details again.
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Customers
  f436933:
    summary: Example order response with additional airline data
    value:
      id: 6516f2f3-fd2c-ac2c-9bf2-3e02711dd3fb
      token: 245e63f3-1e44-40db-bcd4-4448263d3fa2
      type: payment
      state: cancelled
      created_at: 2023-09-29T15:53:23.234913Z
      updated_at: 2023-09-29T16:24:39.366956Z
      amount: 500
      currency: GBP
      outstanding_amount: 500
      settlement_currency: EUR
      capture_mode: manual
      authorisation_type: final
      description: Example order description
      checkout_url: https://checkout.revolut.com/payment-link/245e63f3-1e44-40db-bcd4-4448263d3fa2
      redirect_url: https://www.example.com/redirect
      cancel_authorised_after: PT30M
      industry_data:
        type: airline
        booking_id: unique-booking-id-12345
        fulfillment_date: 2023-07-10T14:00:00.069624Z
        ticket_type: flexible
        crs_code: DATS
        ticket_change_indicator: new
        refundability: refundable
        passengers:
          - first_name: Example
            last_name: Customer
          - first_name: John
            last_name: Doe
        journey_legs:
          - sequence: 1
            departure_airport_code: FRA
            arrival_airport_code: LHR
            flight_number: "670"
            fare_base_code: J
            travel_date: 2023-07-10T10:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
          - sequence: 2
            departure_airport_code: LHR
            arrival_airport_code: DUB
            flight_number: "678"
            fare_base_code: J
            travel_date: 2023-07-10T15:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
          - sequence: 3
            departure_airport_code: DUB
            arrival_airport_code: LHR
            flight_number: "679"
            fare_base_code: F
            travel_date: 2023-07-15T10:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
          - sequence: 4
            departure_airport_code: LHR
            arrival_airport_code: FRA
            flight_number: "671"
            fare_base_code: F
            travel_date: 2023-07-10T14:00:00.069624Z
            airline_name: AerLingus
            airline_code: EI
        booking_url: https://example.com/bookings/1234
      payments:
        - id: 6516f315-f713-a5fd-8299-f28820937409
          state: failed
          created_at: 2023-09-29T15:53:57.268142Z
          updated_at: 2023-09-29T16:24:39.374460Z
          amount: 500
          currency: GBP
          settled_amount: 576
          settled_currency: EUR
          risk_level: low
          fees: []
          payer:
            email: example.payer@example.com
            phone: "+447911123456"
          payment_method:
            type: card
            fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
            network_transaction_id: "1234567890123456"
            card_brand: mastercard
            funding: credit
            card_country_code: MT
            card_bin: "542071"
            card_last_four: "0016"
            card_expiry: 12/28
            cardholder_name: Example Holder
            checks:
              three_ds:
                state: verified
                version: 2
              cvv_verification: match
      enforce_challenge: forced
      customer:
        id: db186257-3031-4726-98ea-f2260ea115f0
        email: example@example.com
        phone: "+441234567890"
        full_name: Example Customer
      merchant_order_data:
        url: https://www.airline.com/ticketnumber-12345
        reference: example_airline_reference
  3b2912c:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/a200791"
      - $ref: "#/x-ext/6ebce25"
    post:
      summary: Cancel an order
      operationId: cancelOrder
      description: >-
        Cancel an existing uncaptured order.


        You can only cancel an order that is in one of the following states:
          
          | Order state | Description |
          | ----------- | ----------- |
          | `pending` | The order does not have any successful payment. |
          | `authorised` | The `capture_mode` of an order is set to `manual` and the customer has made a successful payment. |

        :::info

        For more information about the order lifecycle, see: [Order and payment
        lifecycle](/docs/guides/merchant/reference/order-lifecycle).

        :::
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/8969f94"
              examples:
                example_order_min:
                  $ref: "#/x-ext/a354217"
                example_order_additional:
                  $ref: "#/x-ext/3ad7298"
                example_order_line_items:
                  $ref: "#/x-ext/6ceabeb"
                example_order_airline:
                  $ref: "#/x-ext/f436933"
                example_order_crypto:
                  $ref: "#/x-ext/678ad63"
                example_order_marketplace:
                  $ref: "#/x-ext/edaaf2d"
                example_order_event:
                  $ref: "#/x-ext/8b63a48"
                example_order_lodging:
                  $ref: "#/x-ext/bfe4bee"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                example-1:
                  value:
                    code: bad_request
                    message: Could not parse JSON
                    timestamp: 1601296792533
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: unauthenticated
                    message: Authentication failed
                    timestamp: 1721049596461
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: not_found
                    message: Order with id abfa5bbd-a20c-4a0e-be66-30e733454518 was not found
                    timestamp: 1721050063886
      security:
        - Api-Key: []
      tags:
        - Orders
  ca9e6a1:
    name: payment_id
    in: path
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    required: true
    description: The ID of the `Payment` object.
  fdb8216:
    type: object
    properties:
      id:
        $ref: "#/x-ext/8de5ed9"
      state:
        $ref: "#/x-ext/842508a"
      created_at:
        type: string
        format: date-time
        description: The date and time the payout was created.
      destination_type:
        $ref: "#/x-ext/09d73a0"
      amount:
        $ref: "#/x-ext/05718b6"
      currency:
        $ref: "#/x-ext/1b2472a"
    required:
      - id
      - state
      - created_at
      - destination_type
  ea52751:
    name: payout_id
    in: path
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    required: true
    description: The ID of the `Payout` object.
  6a3beee:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/13f2186"
      - $ref: "#/x-ext/ea52751"
    get:
      summary: Retrieve a payout
      operationId: retrievePayout
      description: Retrieve the details of a payout. Provide the unique payout ID, and
        the corresponding payout information is returned.
      responses:
        "200":
          description: Payout retrieved
          content:
            application/json:
              schema:
                $ref: "#/x-ext/fdb8216"
              examples:
                default:
                  value:
                    id: a830020e-090c-4717-836d-37941a27ad12
                    state: completed
                    created_at: 2024-02-27T00:16:39.079285Z
                    destination_type: current_pocket
                    amount: 50000
                    currency: GBP
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: bad_request
                    message: Missing Revolut-Api-Version header
                    timestamp: 1721049596461
          headers: {}
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: unauthenticated
                    message: Authentication failed
                    timestamp: 1721049596461
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: not_found
                    message: The requested resource is not found
                    timestamp: 1721050063886
      security:
        - Api-Key: []
      tags:
        - Payouts
  ae49498:
    title: ReportRunDetails
    type: object
    description: The `ReportRunDetails` object contains all information associated
      with a specific report run, identified by the `report_run_id`.
    properties:
      report_run_id:
        type: string
        format: uuid
        description: Unique ID used for accessing report details. Use this to check
          report generation status.
      status:
        type: string
        description: >-
          Current status of the report run.


          | Value | Description |

          | ----- | ----------- |

          | `processing` | Report generation is still in progress. |

          | `completed` | Report generation finished successfully and the file
          is available to download for 24 hours via `file_url`. |

          | `failed` | Report generation failed and no report file is available.
          |

          | `expired` | Report generation previously completed, but the 24-hour
          file availability window has elapsed and the file can no longer be
          downloaded. |
        enum:
          - processing
          - completed
          - failed
          - expired
      file_url:
        type: string
        description: Use this link to download the report file. Available only when
          `status` is `completed`, and only for 24 hours after report generation
          finishes.
    required:
      - report_run_id
      - status
  6b43969:
    name: report_run_id
    in: path
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    required: true
    description: Unique ID of the report run.
  d599abc:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/6b43969"
    get:
      summary: Retrieve a report run
      operationId: retrieveReportRun
      description: >-
        Retrieve details of a report run, based on the `report_run_id`. 


        Use this method to check the status of a report run.


        If a report run's `status` is `completed`, the report file can be
        downloaded using the `file_url` for 24 hours after report generation
        finishes.


        Once that 24-hour window elapses, the report run remains retrievable but
        transitions to `expired`, and the file can no longer be downloaded.
      responses:
        "200":
          description: Report run found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/ae49498"
              examples:
                report_run_processing:
                  summary: Report run processing
                  value:
                    report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
                    status: processing
                report_run_completed:
                  summary: Report run completed
                  value:
                    report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
                    status: completed
                    file_url: https://merchant.revolut.com/api/report-runs/d6f6ef64-f668-4e64-8967-1cdf8afb2561/file
                report_run_expired:
                  summary: Report run expired
                  value:
                    report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
                    status: expired
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
      security:
        - Api-Key: []
      tags:
        - Report runs
  4d33cb1:
    summary: Settlement report
    value: |-
      transaction_id,order_id,original_order_id,started_date,updated_date,completed_date,payment_created_date,payment_captured_date,type,state,description,merchant_order_ext_ref,customer_id,amount,currency,settlement_amount,settlement_currency,payment_method,fee_amount,fee_currency,processing_fee_amount,processing_fee_currency,browser_url,location_id
      67f66fa6-200c-aaef-8708-cb78366f8a30,67f66f41-3022-a623-827e-e0616c0d04e7,67f66f41-3022-a623-827e-e0616c0d04e7,2025-04-09T13:01:26.288638Z,2025-04-10T13:02:09.843018Z,2025-04-10T13:02:09.837719Z,2025-04-09T13:01:26.186Z,2025-04-10T13:02:09.837719Z,SETTLEMENT,COMPLETED,Summer hat,ORD-2025-0042,,100.00,GBP,99.00,GBP,CARD,1.00,GBP,1.00,GBP,https://sandbox-checkout.revolut.com/payment-link/1ae44a1c-3ea8-47ac-b736-7d7d4c992bb4,
      67f66fb7-300d-bbff-9819-dc89477a9b41,67f67052-4133-b734-938f-f1727d1e15f8,67f66f41-3022-a623-827e-e0616c0d04e7,2025-04-10T09:10:00.000000Z,2025-04-10T09:12:00.000000Z,2025-04-10T09:12:00.000000Z,,,REFUND,COMPLETED,Refund for Summer hat,ORD-2025-0042-R1,,25.00,GBP,-25.00,GBP,CARD,0.00,GBP,0.00,GBP,https://sandbox-checkout.revolut.com/payment-link/1ae44a1c-3ea8-47ac-b736-7d7d4c992bb4,
      67f66fc8-411e-cc10-a92a-ed9a588b0c52,67f67063-5244-c845-a49a-a2838e2f26a9,67f66f41-3022-a623-827e-e0616c0d04e7,2025-04-11T08:30:00.000000Z,2025-04-11T08:45:00.000000Z,2025-04-11T08:45:00.000000Z,,,CHARGEBACK,COMPLETED,Chargeback for Summer hat,ORD-2025-0042-CB1,,75.00,GBP,-75.00,GBP,CARD,0.00,GBP,0.00,GBP,https://sandbox-checkout.revolut.com/payment-link/1ae44a1c-3ea8-47ac-b736-7d7d4c992bb4,
      67f66fd9-522f-dd21-ba3b-feab699a1d63,67f67074-6355-d956-b50a-a3949f3a37a0,67f66f41-3022-a623-827e-e0616c0d04e7,2025-04-15T10:00:00.000000Z,2025-04-15T10:05:00.000000Z,2025-04-15T10:05:00.000000Z,,,CHARGEBACK_REVERSAL,COMPLETED,Chargeback reversal for Summer hat,ORD-2025-0042-CBR1,,75.00,GBP,75.00,GBP,CARD,0.00,GBP,0.00,GBP,https://sandbox-checkout.revolut.com/payment-link/1ae44a1c-3ea8-47ac-b736-7d7d4c992bb4,
  f589cea:
    summary: Custom report (filtered columns)
    value: |-
      transaction_id,order_id,payment_created_date,payment_captured_date,payment_method,amount,currency,state,updated_date
      649ae37f-99ca-a7db-a4fb-5924af14ad7c,649ae35c-2558-adea-bf98-3a7156a764e7,2023-06-28T13:20:46.07498Z,2023-06-28T13:30:46.07498Z,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T13:30:46.07498Z
      649ae3de-e945-af9f-98c8-1d6172e350b5,649ae3ab-3998-ab2b-ad95-41b48346be69,2023-06-28T13:22:46.075569Z,2023-06-28T13:30:46.075569Z,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T13:30:46.075569Z
      649ae48b-37f6-a097-9cb0-4fc2a89d9e5a,649ae479-d7e8-a139-993b-bf75865c5059,2023-06-28T13:35:46.084289Z,2023-06-28T13:38:46.084289Z,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T13:38:46.084289Z
  768a897:
    summary: Payout statement report
    value: |-
      created_date,completed_date,payout_affected_date,affected_payout_amount,transaction_id,order_id,dispute_id,merchant_order_reference,type,related_icpp_charge_id,transaction_amount,transaction_currency,billing_amount,billing_currency,state,original_transaction_id,original_transaction_amount,original_transaction_currency,original_order_id,original_order_channel,original_merchant_order_reference,fee_amount,fee_currency,settlement_amount,settlement_currency,location_id,location_name,submerchant_id,payout_transfer_reference,payout_total_amount,payout_date
      2025-03-25T14:34:05.708899Z,2025-03-26T14:34:38.06903Z,2025-03-26T14:34:38.06903Z,true,67e2bedd-0e79-a8ea-ac4c-e9fd13693286,67e2be76-89c5-ae4f-9103-a152ae6f0584,,ORD-2025-0042,Settlement,,0.57,USD,0.57,USD,COMPLETED,67e2bedd-0e79-a8ea-ac4c-e9fd13693286,0.57,USD,67e2be76-89c5-ae4f-9103-a152ae6f0584,API,ORD-2025-0042,0.00,USD,0.57,USD,4a0f98a6-0f61-4e85-9ef0-7e5d0cb92ef0,Store London,,Revolut USD payout 2025-03-26 MerchantName,0.17,2025-03-26T15:00:00Z
      2025-03-25T15:38:45.162946Z,2025-03-26T15:39:58.03824Z,2025-03-26T15:39:58.03824Z,true,67e2ce05-1a16-abeb-b05b-5059073bcdaa,67e2ce00-6665-a52b-9f10-368f886054d7,a81bba54-e3f9-450f-aa50-7aea8e4e5b9a,ORD-2025-0042-CB1,Customer dispute - withdrawal,,-0.40,USD,-0.40,USD,COMPLETED,67e2bedd-0e79-a8ea-ac4c-e9fd13693286,0.57,USD,67e2be76-89c5-ae4f-9103-a152ae6f0584,API,ORD-2025-0042,0.00,USD,-0.40,USD,4a0f98a6-0f61-4e85-9ef0-7e5d0cb92ef0,Store London,,Revolut USD payout 2025-03-26 MerchantName,0.17,2025-03-26T15:00:00Z
  a8d0fd0:
    summary: Payments report
    value: |-
      payment_id,type,description,original_payment_id,order_id,state,reason,amount,currency,surcharge_amount,tip_amount,refunded_amount,created_date,captured_date,merchant_order_ext_ref,payment_method,location_id,customer_id,customer_card_number,customer_card_country,customer_card_brand,customer_card_type,customer_card_category,customer_email,fee_amount,fee_currency
      67f66fa6-7e98-ae73-9570-50583cec116d,PAYMENT,Payment from customer,,67f66f41-3022-a623-827e-e0616c0d04e7,COMPLETED,,1.00,GBP,,0.00,0.00,2025-04-09T13:01:26.186Z,2025-04-10T13:02:09.837Z,ORD-2025-0042,CARD,,cust-0001-0000-0000-000000000001,528143******4148,GB,VISA,DEBIT,consumer,customer@example.com,0.01,GBP
      6807b0a5-a367-afbf-b31f-353730b788b5,PAYMENT,Payment from customer,,6807b09c-c62a-a656-818e-f071ef67ee36,DECLINED,,10.01,GBP,,0.00,0.00,2025-04-22T15:07:17.352Z,,,PAY_WITH_REVOLUT,,,,,,,,customer@example.com,,
      67efa316-db8a-aec6-8eb4-46e47b6ebdc4,PAYMENT,Payment from customer,,67efa305-be19-a456-a6a2-154b218ac386,FAILED,INSUFFICIENT_FUNDS,0.57,USD,,0.00,0.00,2025-04-04T09:15:02.13Z,,,CARD,,,222300******9399,GB,VISA,DEBIT,consumer,customer@example.com,,
  8921dd0:
    title: Settlement report CSV
    type: object
    description: >-
      CSV output for `settlement_report`. Contains settled transactions
      associated with a Merchant account.


      The first row is a header row with column names. Subsequent rows contain
      transaction data, one row per transaction.


      A partial-settlement is represented by separate `SETTLEMENT` and `REFUND`
      rows instead of a dedicated type.


      :::note

      The actual response is a raw `text/csv` string. The object schema below is
      a documentation convention only: OpenAPI's schema language (JSON Schema)
      describes JSON data shapes and has no native construct for typed CSV
      columns, so each property here corresponds to a CSV column header rather
      than a JSON field.

      :::
    properties:
      transaction_id:
        type: string
        format: uuid
        description: Unique identifier of the ledger transaction in the core settlement
          system. Matches `transaction_id` in the payout statement report for
          the same event. Not the same as `payment_id` in the payments report —
          a payment and its resulting ledger transaction have different UUIDs.
          Use `order_id` to cross-reference with the payments report.
      order_id:
        type: string
        format: uuid
        description: Unique identifier of the order. An order is the top-level entity
          that groups one or more payment attempts against it. `order_id` is
          consistent across all report types and can be used to cross-reference
          between the payments report and the settlement or payout reports.
      original_order_id:
        type: string
        format: uuid
        description: For refunds and chargebacks, the order ID of the original payment
          that this transaction reverses. Refunds and chargebacks create their
          own order in the system, so `order_id` refers to the refund or
          chargeback order while `original_order_id` points back to the original
          payment's order. For settlement transactions, matches `order_id`.
      started_date:
        type: string
        format: date-time
        description: Date and time the row's source record was started. For payment
          rows, this is the payment start timestamp. For non-payment rows such
          as refunds and chargebacks, this is the transaction start timestamp.
          This displayed value is separate from the report filter timeframe.
      updated_date:
        type: string
        format: date-time
        description: Date and time the row's source record was last updated. For payment
          rows, this is the payment update timestamp. For non-payment rows such
          as refunds and chargebacks, this is the transaction update timestamp.
          This displayed value is separate from the report filter timeframe.
      completed_date:
        type: string
        format: date-time
        description: Date and time the row's source record was completed. For payment
          rows, this is the payment completion timestamp. For non-payment rows
          such as refunds and chargebacks, this is the transaction completion
          timestamp. This displayed value is separate from the report filter
          timeframe.
      payment_created_date:
        type: string
        format: date-time
        description: Payment authorisation or creation timestamp for rows linked to a
          payment, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC
          date-time format. Empty for refunds and non-payment-related rows where
          no payment timestamp applies. This displayed value is separate from
          the report filter timeframe.
      payment_captured_date:
        type: string
        format: date-time
        description: Payment capture timestamp for rows linked to a captured payment, in
          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC date-time
          format. Empty for refunds, non-payment-related rows, or payments not
          captured. This displayed value is separate from the report filter
          timeframe.
      type:
        type: string
        description: >-
          Type of the settlement report row.


          A partial-settlement is represented by separate `SETTLEMENT` and
          `REFUND` rows instead of a dedicated type.


          | Value | Description |

          | ----- | ----------- |

          | `SETTLEMENT` | Settlement of a payment into the merchant balance. |

          | `REFUND` | Refund entry reducing the merchant balance. |

          | `CHARGEBACK` | Dispute withdrawal entry reducing the merchant
          balance. |

          | `CHARGEBACK_REVERSAL` | Reversal of a previous chargeback, restoring
          funds to the merchant balance. |
        enum:
          - SETTLEMENT
          - REFUND
          - CHARGEBACK
          - CHARGEBACK_REVERSAL
      state:
        type: string
        description: State of the transaction.
      description:
        type: string
        description: Description of the order.
      merchant_order_ext_ref:
        type: string
        description: Merchant's order reference. The value of the
          `merchant_order_data.reference` field set when the order was created.
      customer_id:
        type: string
        format: uuid
        description: Unique identifier of the customer related to an order.
      amount:
        type: number
        description: Total amount of the order.
      currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code that represents the currency of the order.
        examples:
          - GBP
      settlement_amount:
        type: number
        description: Total amount settled on the merchant's account.
      settlement_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code that represents the currency of the settled amount.
        examples:
          - GBP
      payment_method:
        type: string
        description: Type of the payment method the customer used to pay for the order.
        examples:
          - CARD
      fee_amount:
        type: number
        description: Total fee amount applied to the order, aggregated across all fee
          components (acquiring markup + interchange + scheme fees).
      fee_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code that represents the currency of the total fee.
        examples:
          - GBP
      processing_fee_amount:
        type: number
        description: Acquiring markup fee only — a subset of `fee_amount`. Represents
          Revolut's service fee, excluding interchange and scheme fees.
      processing_fee_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code that represents the currency of the acquiring markup fee.
        examples:
          - GBP
      browser_url:
        type: string
        format: uri
        description: The URL where the customer initiated the payment.
      location_id:
        type: string
        format: uuid
        description: Unique identifier of the location related to the transaction.
  a67071a:
    title: Custom report CSV
    type: object
    description: >-
      CSV output for `custom_report` report type. Contains settled and
      processing transactions with a configurable set of columns.


      The first row is a header row with column names. Subsequent rows contain
      transaction data, one row per transaction.


      The columns included in the response depend on the `options.columns` list
      specified in the request. If no columns list was provided, all available
      columns are included.


      Custom metadata columns can also be requested using the `metadata.`
      prefix, for example `metadata.custom_attribute`.


      :::note

      The actual response is a raw `text/csv` string. The object schema below is
      a documentation convention only: OpenAPI's schema language (JSON Schema)
      describes JSON data shapes and has no native construct for typed CSV
      columns, so each property here corresponds to a CSV column header rather
      than a JSON field.

      :::
    properties:
      transaction_id:
        type: string
        format: uuid
        description: Unique identifier of the ledger transaction in the core settlement
          system. Matches `transaction_id` in the settlement and payout reports
          for the same event. Not the same as `payment_id` in the payments
          report — a payment and its resulting ledger transaction have different
          UUIDs. Use `order_id` to cross-reference with the payments report.
      related_transaction_id:
        type: string
        format: uuid
        description: For refund and chargeback transactions, the ledger transaction ID
          of the original payment that this transaction reverses. Corresponds to
          `original_transaction_id` in the payout statement report.
      transaction_description:
        type: string
        description: Description of the transaction.
      order_id:
        type: string
        format: uuid
        description: Unique identifier of the order. An order is the top-level entity
          that groups one or more payment attempts against it. `order_id` is
          consistent across all report types and can be used to cross-reference
          between the payments report and the settlement or payout reports.
      original_order_id:
        type: string
        format: uuid
        description: For refunds and chargebacks, the order ID of the original payment
          that this transaction reverses. Refunds and chargebacks create their
          own order in the system, so `order_id` refers to the refund or
          chargeback order while `original_order_id` points back to the original
          payment's order. For settlement transactions, matches `order_id`.
      original_order_ext_ref:
        type: string
        description: Merchant's order identifier of the original order for external
          reference.
      order_description:
        type: string
        description: Description of the order.
      order_channel:
        type: string
        description: >-
          Channel through which the order was created.


          The value depends on the order source and integration. It may reflect
          platform-specific or externally provided values, so the set of
          returned values should not be treated as a fixed enum.
      order_customer_note:
        type: string
        description: Note added by the customer at the time of the order.
      order_tip_amount:
        type: number
        description: Tip amount set at the order level.
      order_created_by:
        type: string
        description: Identifier of the user who created the order.
      payment_initiated_by:
        type: string
        description: Identifier of who initiated the payment.
      order_line_items:
        type: string
        description: Line items included in the order, if any.
      payout_id:
        type: string
        format: uuid
        description: Unique identifier of the payout that this transaction contributed
          to. Use to cross-reference with the payout statement report.
      payout_reference:
        type: string
        description: Reference of the payout transfer associated with the transaction.
      invoice_reference:
        type: string
        description: Invoice reference associated with the order, if any.
      dispute_id:
        type: string
        format: uuid
        description: Unique identifier of the dispute, if applicable.
      account_id:
        type: string
        format: uuid
        description: Unique identifier of the merchant account.
      account_balance:
        type: number
        description: Account balance at the time of the transaction.
      started_date:
        type: string
        format: date-time
        description: Date and time the row's source record was started. For payment
          rows, this is the payment start timestamp. For non-payment rows such
          as refunds and chargebacks, this is the transaction start timestamp.
          This displayed value is separate from the report filter timeframe.
      created_date:
        type: string
        format: date-time
        description: Date and time the order was created.
      updated_date:
        type: string
        format: date-time
        description: Date and time the row's source record was last updated. For payment
          rows, this is the payment update timestamp. For non-payment rows such
          as refunds and chargebacks, this is the transaction update timestamp.
          This displayed value is separate from the report filter timeframe.
      completed_date:
        type: string
        format: date-time
        description: Date and time the row's source record was completed. For payment
          rows, this is the payment completion timestamp. For non-payment rows
          such as refunds and chargebacks, this is the transaction completion
          timestamp. This displayed value is separate from the report filter
          timeframe.
      payment_created_date:
        type: string
        format: date-time
        description: Payment authorisation or creation timestamp for rows linked to a
          payment, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC
          date-time format. Empty for refunds and non-payment-related rows where
          no payment timestamp applies. This displayed value is separate from
          the report filter timeframe.
      payment_captured_date:
        type: string
        format: date-time
        description: Payment capture timestamp for rows linked to a captured payment, in
          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC date-time
          format. Empty for refunds, non-payment-related rows, or payments not
          captured. This displayed value is separate from the report filter
          timeframe.
      type:
        type: string
        description: >-
          Type of the transaction.


          | Value | Description |

          | ----- | ----------- |

          | `SETTLEMENT` | Settlement of a payment into the merchant balance. |

          | `RESERVE` | Reserve entry holding funds on the merchant balance. |

          | `REFUND` | Refund entry reducing the merchant balance. |

          | `TOPUP` | Balance top-up entry. |

          | `TOPUP_RETURN` | Reversal of a top-up entry. |

          | `CHARGEBACK` | Dispute withdrawal from the merchant balance. |

          | `CHARGEBACK_REVERSAL` | Reversal of a previous chargeback. |

          | `CREDIT_REIMBURSEMENT` | Credit reimbursement entry. |

          | `FEE` | Fee charged against the merchant balance. |

          | `PAYOUT` | Payout-related ledger entry. |

          | `TRANSFER` | Balance transfer entry. |

          | `REVOLUT_REFUND` | Refund-related entry specific to Revolut internal
          flows. |

          | `REVOLUT_FEE` | Fee-related entry specific to Revolut internal
          flows. |

          | `WRITE_OFF` | Write-off entry. |

          | `CHARGE` | Charge entry posted to the merchant balance. |
        enum:
          - SETTLEMENT
          - RESERVE
          - REFUND
          - TOPUP
          - TOPUP_RETURN
          - CHARGEBACK
          - CHARGEBACK_REVERSAL
          - CREDIT_REIMBURSEMENT
          - FEE
          - PAYOUT
          - TRANSFER
          - REVOLUT_REFUND
          - REVOLUT_FEE
          - WRITE_OFF
          - CHARGE
      legacy_type:
        type: string
        description: Legacy type value for backwards compatibility.
      state:
        type: string
        description: State of the transaction.
      description:
        type: string
        description: Description of the transaction.
      merchant_order_ext_ref:
        type: string
        description: Merchant's order reference. The value of the
          `merchant_order_data.reference` field set when the order was created.
      customer_id:
        type: string
        format: uuid
        description: Unique identifier of the customer related to the order.
      amount:
        type: number
        description: Total amount of the order.
      currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the order.
        examples:
          - GBP
      settlement_amount:
        type: number
        description: Total amount settled on the merchant's account.
      settlement_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the settled amount.
        examples:
          - GBP
      exchange_rate:
        type: number
        description: Exchange rate applied if currency conversion occurred.
      refunded_amount:
        type: number
        description: Amount refunded for the order.
      statement_descriptor:
        type: string
        description: Statement descriptor shown on the customer's bank statement.
      tip_amount:
        type: number
        description: Tip amount included in the transaction.
      surcharge_amount:
        type: number
        description: Surcharge amount applied to the transaction. Omitted when no
          surcharge applies.
      order_surcharge_amount:
        type: number
        description: Surcharge amount set at the order level.
      terminal_hardware_id:
        type: string
        description: Identifier of the card reader hardware used, for in-person payments.
      customer_name:
        type: string
        description: Name of the customer.
      customer_email:
        type: string
        format: email
        description: Email address of the customer.
      customer_card_number:
        type: string
        description: Masked card number used for the payment.
        examples:
          - 492942******5709
      customer_card_brand:
        type: string
        description: Card brand used for the payment. Derived from BIN data. Example
          values include `VISA`, `MASTERCARD`, `MASTERCARD_DEBIT`, `MAESTRO`,
          `AMEX`, `DINERS`, `DISCOVER`, `JCB`.
        examples:
          - VISA
      customer_card_type:
        type: string
        description: |-
          Card funding type.

          | Value | Description |
          | ----- | ----------- |
          | `DEBIT` | Debit card. |
          | `CREDIT` | Credit card. |
          | `PREPAID` | Prepaid card. |
          | `DEFERRED_DEBIT` | Deferred debit card. |
          | `CHARGE` | Charge card. |
        enum:
          - DEBIT
          - CREDIT
          - PREPAID
          - DEFERRED_DEBIT
          - CHARGE
      customer_card_category:
        type: string
        description: |-
          Card commercial category.

          | Value | Description |
          | ----- | ----------- |
          | `consumer` | Personal card. |
          | `commercial` | Business or corporate card. |
        enum:
          - consumer
          - commercial
      payment_method:
        type: string
        description: Payment method the customer used to pay for the order.
        examples:
          - CARD
      fee_amount:
        type: number
        description: Total fee amount applied to the order, aggregated across all fee
          components (acquiring markup + interchange + scheme fees).
      fee_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the total fee.
        examples:
          - GBP
      processing_fee_amount:
        type: number
        description: Acquiring markup fee only — a subset of `fee_amount`. Represents
          Revolut's service fee, excluding interchange and scheme fees.
      processing_fee_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the acquiring markup fee.
        examples:
          - GBP
      fx_fee_amount:
        type: number
        description: Foreign exchange fee amount, if applicable.
      fx_fee_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the FX fee.
        examples:
          - GBP
      browser_url:
        type: string
        format: uri
        description: The URL where the customer initiated the payment.
      beneficiary_name:
        type: string
        description: Name of the beneficiary, for bank transfer payments.
      beneficiary_account_number:
        type: string
        description: Account number of the beneficiary, for bank transfer payments.
      location_id:
        type: string
        format: uuid
        description: Unique identifier of the location related to the transaction.
      location_name:
        type: string
        description: Name of the location related to the transaction.
      order_custom_field_name:
        type: string
        description: Name of a custom field set on the order.
      order_custom_field_value:
        type: string
        description: Value of a custom field set on the order.
      offline_payment_state:
        type: string
        description: State of an offline payment, if applicable.
      order_authorisation_type:
        type: string
        description: Authorisation type of the order, for example `FULL` or `PRE_AUTH`.
  556244c:
    title: Payments report CSV
    type: object
    description: >-
      CSV output for `payments_report` report type. Contains all payments
      including failed and declined ones.


      The first row is a header row with column names. Subsequent rows contain
      payment data, one row per payment.


      For failed and declined payments, `fee_amount` and `fee_currency` are
      omitted. For payments made without a card, card-related columns are
      omitted.


      :::note

      The actual response is a raw `text/csv` string. The object schema below is
      a documentation convention only: OpenAPI's schema language (JSON Schema)
      describes JSON data shapes and has no native construct for typed CSV
      columns, so each property here corresponds to a CSV column header rather
      than a JSON field.

      :::
    properties:
      payment_id:
        type: string
        format: uuid
        description: Unique identifier of the payment attempt in the acquiring system.
          Corresponds to `id` in the IC++ fee breakdown report for the same
          payment. Not the same as `transaction_id` in the settlement or payout
          reports — a payment and its resulting ledger transaction have
          different UUIDs. Use `order_id` to cross-reference with the settlement
          or payout reports.
      type:
        type: string
        description: >-
          Type of the payment.


          | Value | Description |

          | ----- | ----------- |

          | `PAYMENT` | A payment attempt made against the order. |

          | `REFUND` | A refund record reversing a previously completed payment.
          |
        enum:
          - PAYMENT
          - REFUND
      description:
        type: string
        description: Description of the payment.
      original_payment_id:
        type: string
        format: uuid
        description: For refunds, the acquiring ID of the original payment that this
          record reverses. Corresponds to `payment_id` on the original payment
          row. Populated only when `type` is `REFUND`.
      order_id:
        type: string
        format: uuid
        description: Unique identifier of the order associated with this payment. An
          order can have multiple payment attempts — for example, a retry after
          a declined payment. Use `order_id` to cross-reference with the
          settlement or payout reports.
      state:
        type: string
        description: >-
          State of the payment.


          | Value | Description |

          | ----- | ----------- |

          | `COMPLETED` | The payment completed successfully. |

          | `FAILED` | The payment failed during processing. |

          | `DECLINED` | The payment was rejected by the issuer or payment flow.
          |

          | `CANCELLED` | The payment was cancelled before completion. |

          | `PROCESSING` | The payment is still being processed. |
        enum:
          - COMPLETED
          - FAILED
          - DECLINED
          - CANCELLED
          - PROCESSING
      reason:
        type: string
        description: >-
          Reason code for a failed or declined payment. Present only when
          `state` is `FAILED` or `DECLINED`.


          Example values: `INSUFFICIENT_FUNDS`, `DO_NOT_HONOUR`, `EXPIRED_CARD`,
          `INVALID_CVV`, `THREE_DS_CHALLENGE_FAILED`, `SUSPECTED_FRAUD`,
          `LOST_CARD`, `STOLEN_CARD`, `TECHNICAL_ERROR`.
      amount:
        type: number
        description: Total amount of the payment.
      currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the payment.
        examples:
          - GBP
      surcharge_amount:
        type: number
        description: Surcharge amount applied to the payment. Empty when no surcharge
          applies — this field is empty, not set to `0`.
      tip_amount:
        type: number
        description: Tip amount included in the payment, if any.
      refunded_amount:
        type: number
        description: Amount refunded for the payment.
      created_date:
        type: string
        format: date-time
        description: Date and time the payment was created.
      captured_date:
        type: string
        format: date-time
        description: Date and time the payment was captured, in [ISO
          8601](https://en.wikipedia.org/wiki/ISO_8601) UTC date-time format.
          Empty when the payment has not been captured.
      merchant_order_ext_ref:
        type: string
        description: Merchant's order reference. The value of the
          `merchant_order_data.reference` field set when the order was created.
      payment_method:
        type: string
        description: Payment method used.
        examples:
          - CARD
      location_id:
        type: string
        format: uuid
        description: Unique identifier of the location where the payment was made.
      customer_id:
        type: string
        format: uuid
        description: Unique identifier of the customer.
      customer_card_number:
        type: string
        description: Masked card number used for the payment.
        examples:
          - 492942******5709
      customer_card_country:
        type: string
        description: Country of the card used for the payment, as an [ISO 3166-1
          alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.
        examples:
          - GB
      customer_card_brand:
        type: string
        description: Card brand used for the payment. Derived from BIN data. Example
          values include `VISA`, `MASTERCARD`, `MASTERCARD_DEBIT`, `MAESTRO`,
          `AMEX`, `DINERS`, `DISCOVER`, `JCB`.
        examples:
          - VISA
      customer_card_type:
        type: string
        description: |-
          Card funding type.

          | Value | Description |
          | ----- | ----------- |
          | `DEBIT` | Debit card. |
          | `CREDIT` | Credit card. |
          | `PREPAID` | Prepaid card. |
          | `DEFERRED_DEBIT` | Deferred debit card. |
          | `CHARGE` | Charge card. |
        enum:
          - DEBIT
          - CREDIT
          - PREPAID
          - DEFERRED_DEBIT
          - CHARGE
      customer_card_category:
        type: string
        description: |-
          Card commercial category.

          | Value | Description |
          | ----- | ----------- |
          | `consumer` | Personal card. |
          | `commercial` | Business or corporate card. |
        enum:
          - consumer
          - commercial
      customer_email:
        type: string
        format: email
        description: Email address of the customer.
      fee_amount:
        type: number
        description: Total fee amount charged for the payment. Omitted for failed and
          declined payments.
      fee_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the fee. Omitted for failed and declined payments.
        examples:
          - GBP
  fdeec3b:
    title: Payout statement report CSV
    type: object
    description: >-
      CSV output for `payout_statement_report` report type. Contains all
      transactions that contributed to a specific payout.


      The first row is a header row with column names. Subsequent rows contain
      transaction data, one row per transaction.


      :::note

      The actual response is a raw `text/csv` string. The object schema below is
      a documentation convention only: OpenAPI's schema language (JSON Schema)
      describes JSON data shapes and has no native construct for typed CSV
      columns, so each property here corresponds to a CSV column header rather
      than a JSON field.

      :::
    properties:
      created_date:
        type: string
        format: date-time
        description: Date and time the transaction was created.
      completed_date:
        type: string
        format: date-time
        description: Date and time the transaction was completed.
      payout_affected_date:
        type: string
        format: date-time
        description: Date and time the payout was affected by this transaction.
      affected_payout_amount:
        type: boolean
        description: >-
          Indicates whether this transaction contributed to the payout amount
          (`true`) or not (`false`).


          Note: despite the name implying a monetary amount, this field is a
          boolean flag. A rename is planned for a future API version.
      transaction_id:
        type: string
        format: uuid
        description: Unique identifier of the ledger transaction in the core settlement
          system. Matches `transaction_id` in the settlement report for the same
          event. Use `order_id` to cross-reference with the payments report.
      order_id:
        type: string
        format: uuid
        description: Unique identifier of the order associated with this transaction.
          Use `order_id` to cross-reference with the payments report or
          settlement report.
      dispute_id:
        type: string
        format: uuid
        description: Unique identifier of the dispute associated with a chargeback or
          chargeback reversal transaction. Empty for rows not related to a
          dispute.
      merchant_order_reference:
        type: string
        description: Merchant's order reference. The value of the
          `merchant_order_data.reference` field set when the order was created.
      type:
        type: string
        description: >-
          Type of the transaction.


          | Value | Description |

          | ----- | ----------- |

          | `Settlement` | Settlement of a payment into the merchant balance. |

          | `Refund` | Refund entry reducing the merchant balance. |

          | `External transfer money return` | Return of an external transfer
          entry. |

          | `Topup` | Balance top-up entry. |

          | `Topup Return` | Reversal of a top-up entry. |

          | `Customer dispute - withdrawal` | Chargeback or dispute withdrawal
          from the merchant balance. |

          | `Customer dispute - won` | Reversal of a previous dispute
          withdrawal. |

          | `Transfer from linked pocket` | Transfer from a linked balance
          pocket. |

          | `Automatic negative balance recovery` | Automatic recovery entry for
          a negative balance. |

          | `Payout` | Payout-related ledger entry. |

          | `Payout to an external account` | Transfer of payout funds to an
          external account. |

          | `Transfer from linked pocket with FX` | Transfer from a linked
          pocket involving FX conversion. |

          | `Payout with FX` | Payout-related entry involving FX conversion. |

          | `Money reserve block` | Reserve block entry withholding funds. |

          | `Money reserve unblock` | Release of previously blocked reserve
          funds. |

          | `IC++ post-billing fee` | IC++ fee charged after billing. |

          | `Fee refund` | Reversal of a previously charged fee. |

          | `Unrecognised transaction` | Transaction that does not map to a more
          specific category. |
        enum:
          - Settlement
          - Refund
          - External transfer money return
          - Topup
          - Topup Return
          - Customer dispute - withdrawal
          - Customer dispute - won
          - Transfer from linked pocket
          - Automatic negative balance recovery
          - Payout
          - Payout to an external account
          - Transfer from linked pocket with FX
          - Payout with FX
          - Money reserve block
          - Money reserve unblock
          - IC++ post-billing fee
          - Fee refund
          - Unrecognised transaction
      related_icpp_charge_id:
        type: string
        format: uuid
        description: Unique identifier of the IC++ charge related to the transaction, if
          applicable.
      transaction_amount:
        type: number
        description: Amount of the transaction in the transaction currency.
      transaction_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the transaction.
        examples:
          - GBP
      billing_amount:
        type: number
        description: Amount of the transaction in the billing currency.
      billing_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the billing amount.
        examples:
          - GBP
      state:
        type: string
        description: State of the transaction.
        examples:
          - COMPLETED
      original_transaction_id:
        type: string
        format: uuid
        description: >-
          For refunds and chargebacks, the ledger transaction ID of the original
          payment that this transaction reverses. Corresponds to
          `transaction_id` on the original settlement row. 


          :::note

          Populated only for reversal-type rows — for example, when `type` is
          `Refund` or `Customer dispute - withdrawal`.

          :::
      original_transaction_amount:
        type: number
        description: Amount of the original transaction.
      original_transaction_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the original transaction.
        examples:
          - GBP
      original_order_id:
        type: string
        format: uuid
        description: For refunds and chargebacks, the order ID of the original payment
          that this transaction reverses. Refunds and chargebacks create their
          own order in the system, so `order_id` refers to the refund or
          chargeback order while `original_order_id` points back to the original
          payment's order. For settlement transactions, matches `order_id`.
      original_order_channel:
        type: string
        description: >-
          Channel through which the original order was created.


          The value depends on the original order source and integration. It may
          reflect platform-specific or externally provided values, so the set of
          returned values should not be treated as a fixed enum.
        examples:
          - API
      original_merchant_order_reference:
        type: string
        description: Merchant's order reference for the original order. The value of the
          `merchant_order_data.reference` field set when the original order was
          created.
      fee_amount:
        type: number
        description: Total fee amount charged for the transaction.
      fee_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the fee.
        examples:
          - GBP
      settlement_amount:
        type: number
        description: Total amount settled on the merchant's account.
      settlement_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the settled amount.
        examples:
          - GBP
      location_id:
        type: string
        format: uuid
        description: Unique identifier of the location associated with the transaction.
      location_name:
        type: string
        description: Name of the location associated with the transaction.
      submerchant_id:
        type: string
        format: uuid
        description: Unique identifier of the submerchant associated with the transaction.
      payout_transfer_reference:
        type: string
        description: Reference of the bank transfer for this payout. This value is the
          same across all rows in the report, as each report covers a single
          payout.
      payout_total_amount:
        type: number
        description: Total amount of this payout. This value is the same across all rows
          in the report, as each report covers a single payout.
      payout_date:
        type: string
        format: date-time
        description: Date and time the payout covered by this report was created, in
          [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC date-time
          format. This value is the same across all rows in the report, as each
          report covers a single payout.
  58d8019:
    title: IC++ fee breakdown report CSV
    type: object
    description: >-
      CSV output for `icpp_fee_breakdown_report` report type. Contains IC++ fee
      components broken down per transaction for a specific IC++ charge.


      The first row is a header row with column names. Subsequent rows contain
      one row per transaction.


      `card_interchange_fee_amount` and `card_scheme_fee_amount` are omitted for
      Revolut Pay transactions.


      :::note

      The actual response is a raw `text/csv` string. The object schema below is
      a documentation convention only: OpenAPI's schema language (JSON Schema)
      describes JSON data shapes and has no native construct for typed CSV
      columns, so each property here corresponds to a CSV column header rather
      than a JSON field.


      `payment_method` in this report returns `REVOLUT_PAY` for Revolut Pay
      transactions. Other reports use `PAY_WITH_REVOLUT` for the same payment
      method.

      :::
    properties:
      id:
        type: string
        format: uuid
        description: Unique identifier of the payment in the acquiring system.
          Corresponds to `payment_id` in the payments report for the same
          payment.
      created_at:
        type: string
        format: date-time
        description: Date and time the payment was created.
      operation:
        type: string
        description: |-
          Type of the IC++ transaction.

          | Value | Description |
          | ----- | ----------- |
          | `SALE` | Fee breakdown for a payment sale. |
          | `REFUND` | Fee breakdown for a refund. |
          | `DISPUTE` | Fee breakdown for a dispute-related transaction. |
        enum:
          - SALE
          - REFUND
          - DISPUTE
      amount:
        type: number
        description: Transaction amount.
      currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the transaction.
        examples:
          - GBP
      settlement_amount:
        type: number
        description: Amount settled on the merchant's account.
      settlement_currency:
        type: string
        description: The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
          code of the settled amount.
        examples:
          - GBP
      payment_method:
        type: string
        description: Payment method used. Returns `REVOLUT_PAY` for Revolut Pay, or the
          card scheme name for card payments.
        examples:
          - REVOLUT_PAY
      card_scheme:
        type: string
        description: Card BIN scheme.
        examples:
          - VISA
      card_funding:
        type: string
        description: Card funding type.
        examples:
          - DEBIT
      order_description:
        type: string
        description: Description of the order.
      order_merchant_external_ref:
        type: string
        description: Merchant's order reference. The value of the
          `merchant_order_data.reference` field set when the order was created.
      original_operation_id:
        type: string
        format: uuid
        description: For refunds and disputes, the acquiring ID of the original payment.
          Corresponds to `original_payment_id` in the payments report.
      acquiring_fee_amount:
        type: number
        description: IC++ acquiring markup fee component.
      card_interchange_fee_amount:
        type: number
        description: Interchange fee component. Omitted for Revolut Pay transactions.
      card_scheme_fee_amount:
        type: number
        description: Card scheme fee component. Omitted for Revolut Pay transactions.
      card_type:
        type: string
        description: |-
          Card commercial category.

          | Value | Description |
          | ----- | ----------- |
          | `COMMERCIAL` | Business or corporate card. |
          | `CONSUMER` | Personal card. |
        enum:
          - COMMERCIAL
          - CONSUMER
      order_channel:
        type: string
        description: Channel through which the order was created.
        examples:
          - API
      card_country:
        type: string
        description: Country of the card, as an [ISO 3166-1
          alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.
        examples:
          - GB
  4fef0ad:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/6b43969"
    get:
      summary: Download report file
      operationId: downloadReportFile
      description: >-
        Use this endpoint to download the generated report file.


        A generated report file is available for 24 hours after report
        generation finishes. After that, the report run becomes `expired` and
        the file can no longer be downloaded.


        The response is a raw `text/csv` file. The first row contains the column
        headers. The columns included depend on the report type used when
        creating the report run, and the `options.columns` list if specified.


        ### IDs across report types


        Revolut uses two separate ID systems across report types:


        | ID column | System | Report types |

        | --------- | ------ | ------------ |

        | `payment_id`, `id` | **Acquiring system** - identifies a payment
        attempt | `payments_report`, `icpp_fee_breakdown_report` |

        | `transaction_id` | **Core ledger** - identifies the settlement entry
        created when a payment is captured | `settlement_report`,
        `payout_statement_report`, `custom_report` |

        | `order_id` | **Both systems** - bridges the acquiring and ledger
        perspectives | `settlement_report`, `payments_report`,
        `payout_statement_report`, `custom_report` |


        :::tip

        A payment and its resulting ledger transaction represent the same event
        but have **different UUIDs**. To reconcile `payments_report` data
        against `settlement_report` data, join on `order_id`.

        :::


        Use the schema selector below to see the available columns for each
        report type.
      responses:
        "200":
          description: OK
          content:
            text/csv:
              schema:
                oneOf:
                  - $ref: "#/x-ext/8921dd0"
                  - $ref: "#/x-ext/a67071a"
                  - $ref: "#/x-ext/556244c"
                  - $ref: "#/x-ext/fdeec3b"
                  - $ref: "#/x-ext/58d8019"
              examples:
                settlement_report:
                  $ref: "#/x-ext/4d33cb1"
                custom_report:
                  $ref: "#/x-ext/f589cea"
                payments_report:
                  $ref: "#/x-ext/a8d0fd0"
                payout_statement_report:
                  $ref: "#/x-ext/768a897"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
      security:
        - Api-Key: []
      tags:
        - Report runs
  ee2e597:
    title: Webhook schema for creation and update operations
    type: object
    properties:
      url:
        $ref: "#/x-ext/e740564"
      events:
        $ref: "#/x-ext/a725038"
    required:
      - url
      - events
  8a57fa8:
    title: Webhook with signing secret
    type: object
    properties:
      id:
        $ref: "#/x-ext/dd0635b"
      url:
        $ref: "#/x-ext/e740564"
      events:
        $ref: "#/x-ext/a725038"
      signing_secret:
        $ref: "#/x-ext/48d07ca"
    required:
      - id
      - signing_secret
  2c92918:
    title: Webhook
    type: object
    description: >-
      A `webhook` (also called a web callback) allows your system to receive an
      event from a different app immediately after it happens. 


      For example, you can subscribe to a webhook when an order changes from
      Pending to Completed. When the payment is cleared and the order is
      completed, Revolut servers will send a notification to the URL of your
      choice. This is a much more efficient way to know when an order is paid as
      opposed to trying to get the status of the order every few seconds.


      Many events that happen to a Revolut Merchant account are synchronous,
      which means that they arrive instantly and have immediate results. For
      example, a successful request to create a customer immediately returns a
      Customer object. Such requests don't require webhooks.


      The Revolut Merchant API supports webhooks for events such as
      `ORDER_COMPLETED` and `ORDER_AUTHORISED`.
    properties:
      id:
        $ref: "#/x-ext/dd0635b"
      url:
        $ref: "#/x-ext/e740564"
      events:
        $ref: "#/x-ext/a725038"
    required:
      - id
  18e1dc1:
    name: webhook_id
    in: path
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    required: true
    description: The ID of the webhook.
  4afc7ce:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/18e1dc1"
    post:
      summary: Rotate a webhook signing secret (Deprecated)
      deprecated: true
      operationId: rotateWebhookSigningSecretDeprecated
      description: |-
        Rotate the `signing secret` for a specific webhook.

        For more information, see [Tutorials: Verify the payload signature](/docs/guides/merchant/monitor-and-observe/webhooks/verify-the-payload-signature).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                expiration_period:
                  type: string
                  format: duration
                  description: >-
                    The expiration period of the signing secret in the [ISO 8601
                    format](https://en.wikipedia.org/wiki/ISO_8601#Durations). 


                    If defined, when the signing secret is rotated, it continues
                    to be valid until the expiration period passes.


                    Otherwise, it is invalidated immediately.


                    Maximum expiration period is 7 days.
                  examples:
                    - PT5H30M
            examples:
              webhook_signing_secret_rotate_request:
                summary: Webhook signing secret rotation request
                value:
                  expiration_period: PT5H30M
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/8a57fa8"
              examples:
                updated_webhook:
                  summary: Updated webhook
                  value:
                    id: c6b981f4-53b3-47d5-9b24-4f87af1160eb
                    url: http://business.revolut.com
                    events:
                      - ORDER_COMPLETED
                    signing_secret: wsk_4jETWMz1g1b37gCONjNp84t2KSSIT6aG
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Webhooks
  ee3efc1:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/18e1dc1"
    get:
      summary: Retrieve a webhook (Deprecated)
      deprecated: true
      operationId: retrieveWebhookDeprecated
      description: Get the details of a specific webhook.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/8a57fa8"
              examples:
                retrieved_webhook:
                  summary: Retrieved webhook
                  value:
                    id: c6b981f4-53b3-47d5-9b24-4f87af1160eb
                    url: https://example.com/webhooks
                    events:
                      - ORDER_AUTHORISED
                      - ORDER_COMPLETED
                    signing_secret: wsk_4jETWMz1g1b37gCONjNp84t2KSSIT7dK
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Webhooks
    put:
      summary: Update a webhook (Deprecated)
      deprecated: true
      operationId: updateWebhookDeprecated
      description: Update the details of a specific webhook.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/ee2e597"
            examples:
              webhook_update_request:
                summary: Webhook update request
                value:
                  url: http://business.revolut.com
                  events:
                    - ORDER_COMPLETED
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/2c92918"
              examples:
                updated_webhook:
                  summary: Updated webhook
                  value:
                    id: c6b981f4-53b3-47d5-9b24-4f87af1160eb
                    url: http://business.revolut.com
                    events:
                      - ORDER_COMPLETED
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Webhooks
    delete:
      summary: Delete a webhook (Deprecated)
      deprecated: true
      operationId: deleteWebhookDeprecated
      description: Delete a webhook so that events are not sent to the specified URL
        any more.
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Webhooks
  6b0ce4e:
    title: SynchronousWebhook
    type: object
    properties:
      id:
        type: string
        format: uuid
        description: The ID of the synchronous webhook object.
      signing_key:
        type: string
        pattern: ^swsk_[a-zA-Z0-9]{32}$
        description: "A randomly generated signing key, which can be used by merchants
          to authenticate requests from Revolut by verifying the signature. For
          more information, see: [Payload
          Signature](/docs/api/merchant#authentication)."
      url:
        type: string
        format: uri
        pattern: ^https:\/{2}.+/gi
        maxLength: 2000
        description: >-
          The valid URL of the endpoint, that uses HTTPS URL schema. Revolut
          sends the shipping address of the customer to this URL for validation.


          :::warning

          Restrictions:

          - Must be a valid URI as defined by [RFC
          3986](https://datatracker.ietf.org/doc/html/rfc3986)

          - URI scheme is required and must be `https`

          - URI host is required and cannot be `localhost` or an IP address

          - Max length: `2000`

          - Reserved or invalid characters must be percent-encoded (for example,
          use `%20` instead of a space)

          :::
      event_type:
        type: string
        enum:
          - fast_checkout.validate_address
        description: >-
          Type of event this synchronous webhook is configured for.


          :::note

          At the moment, synchronous webhooks only support address validation
          events. 

          :::
      location_id:
        $ref: "#/x-ext/38a61e6"
    required:
      - id
      - signing_key
      - url
      - event_type
  94aad59:
    name: synchronous_webhook_id
    in: path
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    required: true
    description: The ID of the synchronous webhook.
  048a83d:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/94aad59"
    delete:
      summary: Delete a synchronous webhook
      operationId: deleteSynchronousWebhook
      description: Delete a specific synchronous webhook registration, based on its ID.
      responses:
        "204":
          description: Synchronous webhook deleted
        "401":
          description: Unauthorized
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Other
  741a418:
    name: type
    in: query
    schema:
      type: string
      enum:
        - online
        - physical
    description: Filter the list by location type.
  363f6bd:
    summary: Online location request example
    value:
      name: Grocery website
      type: online
      details:
        domain: groceries.example.com
  4a64a36:
    summary: Physical location request example
    value:
      name: Example Street Store
      type: physical
      details:
        address:
          street_line_1: 123 Example Street
          city: Example city
          postcode: "12345"
          country_code: GB
        geo_location:
          lat: 12.3456
          lon: -12.3456
        opening_hours:
          monday:
            - from: 09:00
              to: 15:00
            - from: 16:00
              to: 18:00
          tuesday:
            - from: 10:00
              to: 13:00
            - from: 16:00
              to: 18:00
  cf5e7ce:
    title: Location
    type: object
    description: Location object represents merchant locations depending on type.
    oneOf:
      - $ref: "#/x-ext/7acd6e0"
      - $ref: "#/x-ext/0cc5e9d"
    discriminator:
      propertyName: type
      mapping:
        online: ./Location-Online.yaml
        physical: ./Location-Physical.yaml
  dd56a7e:
    summary: Online location request example
    value:
      id: 8d9a7125-805f-40f3-a405-bc89765db996
      name: Grocery website
      type: online
      details:
        domain: groceries.example.com
  9ca09cb:
    summary: Physical location request example
    value:
      id: 8d9a7125-805f-40f3-a405-bc89765db996
      name: Example Street Store
      type: physical
      details:
        address:
          street_line_1: 123 Example Street
          city: Example city
          postcode: "12345"
          country_code: GB
        geo_location:
          lat: 12.3456
          lon: -12.3456
        opening_hours:
          monday:
            - from: 09:00
              to: 15:00
            - from: 16:00
              to: 18:00
          tuesday:
            - from: 10:00
              to: 13:00
            - from: 16:00
              to: 18:00
  4814d6b:
    name: location_id
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    in: path
    required: true
    description: The ID of the location.
  aef1bf5:
    name: location_id
    schema:
      type: string
      format: uuid
      description: A UUID string, typically used to identify resources.
    in: query
    required: false
    description: Filter results by location ID.
  fc6d57b:
    summary: List of terminals at a location
    value:
      terminals:
        - id: 0e53f673-7705-473a-a263-89a3e7647c3d
          name: Terminal 1
          type: newland_n950
          serial_number: RT-00123456
          battery_level: 85
          online: true
          last_online_at: 2025-01-15T14:30:00Z
        - id: a7b2c8d1-4e5f-6a7b-8c9d-0e1f2a3b4c5d
          name: Terminal 2
          type: newland_n950
          serial_number: RT-00123457
          battery_level: 92
          online: true
          last_online_at: 2025-01-15T14:32:00Z
  c639151:
    name: payment_intent_id
    in: path
    required: true
    description: The unique identifier of the payment intent.
    schema:
      $ref: "#/x-ext/021590b"
  3375bfc:
    title: Payment Intent
    type: object
    description: >-
      Represents a payment intent that has been pushed to a Revolut Terminal
      device.


      When the payment intent reaches `completed` state, it includes a
      `payment_id` that can be used to [retrieve the final payment
      status](/docs/api/merchant#retrieve-payment-details).
    properties:
      id:
        $ref: "#/x-ext/021590b"
      state:
        $ref: "#/x-ext/826a913"
      terminal_id:
        $ref: "#/x-ext/6b77b6c"
      order_id:
        $ref: "#/x-ext/8ada47f"
      payment_id:
        $ref: "#/x-ext/a001704"
      amount:
        $ref: "#/x-ext/9730fdd"
      currency:
        $ref: "#/x-ext/1b2472a"
      created_at:
        type: string
        format: date-time
        description: The date and time the payment intent was created.
      updated_at:
        type: string
        format: date-time
        description: The date and time the payment intent was last updated.
    required:
      - id
      - order_id
      - state
      - amount
      - currency
      - terminal_id
      - created_at
      - updated_at
  a5e454b:
    summary: Payment intent pending
    value:
      id: b4d58add-b3fe-40e4-a70a-8c78df977888
      state: pending
      order_id: 5c9fc54e-11b4-4f7f-8686-4a64d4d20db4
      amount: 2500
      currency: GBP
  693f7fa:
    summary: Payment intent processing
    value:
      id: b4d58add-b3fe-40e4-a70a-8c78df977888
      order_id: 5c9fc54e-11b4-4f7f-8686-4a64d4d20db4
      state: processing
      amount: 2500
      currency: GBP
      terminal_id: 0e53f673-7705-473a-a263-89a3e7647c3d
      created_at: 2025-01-15T11:01:00Z
      updated_at: 2025-01-15T11:02:15Z
  1934f11:
    summary: Payment intent completed
    value:
      id: b4d58add-b3fe-40e4-a70a-8c78df977888
      state: completed
      terminal_id: 0e53f673-7705-473a-a263-89a3e7647c3d
      order_id: 5c9fc54e-11b4-4f7f-8686-4a64d4d20db4
      payment_id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
      amount: 2500
      currency: GBP
      created_at: 2025-01-15T11:01:00Z
      updated_at: 2025-01-15T11:02:30Z
  3a33638:
    summary: Payment intent cancelled
    value:
      id: b4d58add-b3fe-40e4-a70a-8c78df977888
      state: cancelled
      terminal_id: 0e53f673-7705-473a-a263-89a3e7647c3d
      order_id: 5c9fc54e-11b4-4f7f-8686-4a64d4d20db4
      amount: 2500
      currency: GBP
      created_at: 2025-01-15T11:01:00Z
      updated_at: 2025-01-15T11:01:45Z
  3637d02:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/a200791"
      - $ref: "#/x-ext/c639151"
    post:
      summary: Cancel a payment intent
      operationId: cancelPaymentIntent
      description: |-
        Cancel a payment intent while it's still in `pending` state, before the customer has completed the payment.

        This is useful if the customer changes their mind or if there's an issue with the order before payment is completed.

        :::warning
        **Requirements:**
        - Payment intent must be in `pending` state
        - Cannot cancel payment intents that are already `completed`, `cancelled`, or `failed`
        :::

        :::info
        For the complete push payments flow, see: [Push payments to Revolut Terminal](/docs/guides/merchant/accept-payments/in-person-payments/terminal/push-payments).
        :::
      responses:
        "200":
          description: Payment intent cancelled
          content:
            application/json:
              schema:
                $ref: "#/x-ext/3375bfc"
              examples:
                payment_intent_cancelled:
                  $ref: "#/x-ext/3a33638"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Payment intents
  59d80c8:
    summary: Payment intent failed
    value:
      id: b4d58add-b3fe-40e4-a70a-8c78df977888
      state: failed
      terminal_id: 0e53f673-7705-473a-a263-89a3e7647c3d
      order_id: 5c9fc54e-11b4-4f7f-8686-4a64d4d20db4
      amount: 2500
      currency: GBP
      created_at: 2025-01-15T11:01:00Z
      updated_at: 2025-01-15T11:03:00Z
  bdb9bd1:
    summary: Create payment intent request example
    value:
      amount: 2500
      terminal_id: 0e53f673-7705-473a-a263-89a3e7647c3d
  7dfa842:
    type: integer
    description: >-
      The order total expressed in minor currency units, according to the [ISO
      4217 standard](https://en.wikipedia.org/wiki/ISO_4217). For example,
      `7034` in `EUR` corresponds to €70.34.


      :::info

      - Conversion between major and minor units varies by currency. For
      instance, `100` minor units equal £1.00 in `GBP`, whereas in `ISK` they
      represent 100 units. For more details, see the [ISO 4217
      standard](https://en.wikipedia.org/wiki/ISO_4217).

      - If `line_items` are provided, the order `amount` must equal the sum of
      all line items' `total_amount`.

      - For card payments with a non-zero amount, the order `amount` must be at
      least **$0.005** (or equivalent in different currencies, calculated using
      Revolut's exchange rate on the payment date). Otherwise, card payments
      can't be performed.

      :::
  1b2472a:
    type: string
    format: ISO 4217
    minLength: 3
    maxLength: 3
    description: |-
      [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.

      :::info
      For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
      :::
  4da391a:
    type: string
    description: |-
      [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case. 

      If `settlement_currency` is different from the value of `currency`, the money will be exchanged when the amount is settled to your merchant account. In case of a refund or chargeback, the money will be exchanged to the order's initial `currency`.

      If `settlement_currency` is not specified, this value is taken from `currency`.

      :::info
      For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
      :::
  a0887df:
    type: string
    description: The description of the order.
  f66f113:
    type: object
    description: >-
      Object containing information about a customer.


      If you have it, we strongly advise providing at least either `id`,
      `phone`, or `email`.


      Using the [Customers operations](/docs/api/merchant#tag-customers), you
      can manage customer instances.


      The following behaviours apply to different use cases:

        | Use case | API behavior |
        | -------- | ------------ |
        | Existing customer | If `id` was provided, we ignore other customer details and associate the customer with the order.<br/><br/>If either `email`, `phone`, or `full_name` was provided (without an existing customer's `id`), we always create a new customer, irrespective of another, existing customer object having the same details. |
        | New customer | If either `email`, `phone`, or `full_name` was provided, we create a new customer, irrespective of another customer object having the same details. <br/><br/>If `id` of a non-existent customer was provided, we return a `404` error, irrespective of other details provided. |

      :::note

      To avoid unintentional duplication of customer records, search for an
      existing customer by email or phone using the [List
      customers](/docs/api/merchant#retrieve-customer-list) endpoint first, then
      provide `customer.id` in the order.

      :::
    properties:
      id:
        type: string
        format: uuid
        description: >-
          Permanent ID of a customer used to retrieve, update, delete a
          customer. This ID can also be used to link customer to an order.


          :::note

          If you provide the customer's ID during order creation, no other
          customer data is required, they will be parsed automatically from the
          referenced customer object.

          :::
      full_name:
        $ref: "#/x-ext/0b50233"
      phone:
        $ref: "#/x-ext/e3f9143"
      email:
        $ref: "#/x-ext/7c3734e"
      date_of_birth:
        $ref: "#/x-ext/8f22aa4"
  00ce429:
    type: object
    description: Object containing address details.
    properties:
      street_line_1:
        type: string
        description: Street line 1 information.
        maxLength: 100
      street_line_2:
        type: string
        description: Street line 2 information.
        maxLength: 100
      region:
        type: string
        description: The region associated with the address.
        maxLength: 100
      city:
        type: string
        description: The city associated with the address.
        maxLength: 100
      country_code:
        type: string
        description: The 2-letter country code of the country associated with the address.
        maxLength: 2
      postcode:
        type: string
        description: The postcode associated with the address.
        maxLength: 100
    required:
      - country_code
      - postcode
  d9d8857:
    type: string
    description: >-
      The enforce challenge mode. `automatic` is used by default.


      | Parameter value | Description |

      | --------------- | ----------- |

      | `automatic` | The payments created for an order will have challenge
      requirement calculated by our fraud mechanisms. Not all payments will
      trigger a 3DS challenge. |

      | `forced` | The payments created for an order will always require a 3DS
      challenge. Currently only supported for card payments. |
    default: automatic
    enum:
      - automatic
      - forced
  bca3068:
    type: array
    maxItems: 250
    description: >-
      An array of line items included in the order. Each line item represents an
      individual product or service, along with its quantity, price, taxes, and
      discounts.


      :::info

      Required for merchants collecting payment for one or multiple
      products/services in one transaction. Omitting this information may
      trigger additional scrutiny and risk mitigation actions by Revolut.

      :::
    items:
      $ref: "#/x-ext/a0e71d2"
  e3d4819:
    type: string
    description: >-
      The capture mode of the order. `automatic` is used by default.


      | Parameter value | Description |

      | --------------- | ----------- |

      | `automatic` | The order is captured automatically after payment
      authorisation. |

      | `manual` | The order is not captured automatically. You must manually
      capture the order later. |


      :::info

      For more information, see [Capture an
      order](/docs/api/merchant#capture-order).

      :::
    default: automatic
    enum:
      - automatic
      - manual
  "60768e8":
    type: string
    description: >-
      The type of authorisation for the order. Used with manual capture mode. If
      omitted, `final` is used by default.


      ### Pre-authorisation


      Pre-authorisation allows you to reserve funds on a customer's card without
      immediately capturing them. This is useful for scenarios like:


      - Hotel bookings where the final amount may vary

      - Car rentals where additional charges may apply

      - Deposits that need to be held temporarily


      | Parameter value | Description |

      | --------------- | ----------- |

      | `final` | Standard authorisation for immediate or near-immediate
      capture. |

      | `pre_authorisation` | Reserve funds for later capture, used with manual
      capture mode. |


      :::note

      Pre-authorisation must be used with `capture_mode: manual`. For more
      information, see [Capture an order](/docs/api/merchant#capture-order).

      :::
    default: final
    enum:
      - final
      - pre_authorisation
  bd14ecb:
    type: string
    format: duration
    description: >-
      Automatic cancellation period for uncaptured orders, specified in [ISO
      8601](https://en.wikipedia.org/wiki/ISO_8601) format. 


      After this period, the authorised payment is automatically cancelled and
      the order is cancelled. Maximum: 7 days = `P7D`.


      :::note

      The following limitations apply:
        - Cannot be a negative value.
        - Cannot be updated if the new value is less than or equal to the elapsed time since authorisation. 

          **Failing scenario:**
            - Original value: 7 days
            - Time since authorisation: 3 days
            - Update value: 2 days
            
          In this scenario, an error is returned.
          
          **Successful scenario:**
            - Original value: 7 days
            - Time since authorisation: 3 days
            - Update value: 4 days

          In this scenario, the parameter can be updated.

        - Cannot be updated if cancellation is ≤ 30 minutes away.

          **Failing scenario:**
            - Original value: 12 hours
            - Time since authorisation: 11 hours 40 minutes
                              
          In this scenario, an error is returned.
          
          **Successful scenario:** 
            - Original value: 12 hours
            - Time since authorisation: 11 hours 20 minutes

          In this scenario, the parameter can be updated.
      :::
  9977eda:
    type: string
    format: duration
    description: >-
      Automatic expiration period for pending orders, specified in [ISO
      8601](https://en.wikipedia.org/wiki/ISO_8601) format.


      Orders in `pending` state will be automatically failed if they stay unpaid
      for longer than the period specified.


      When the order expires, it transitions to the `failed` state and an
      `ORDER_FAILED` webhook event is triggered.


      :::note

      - This field can only be set during order creation and cannot be updated
      afterward.

      - Must be between `PT1M` (1 minute) and `PT720H` (30 days).

      - Cannot be a negative value.

      :::
    examples:
      default:
        value: PT15M
  38a61e6:
    type: string
    format: uuid
    description: |-
      Unique ID representing the location where merchants sells products.

      :::info
      For more information, see: [Locations](/docs/api/merchant#tag-locations).
      :::        
  ec6c680:
    title: SynchronousWebhookCreation
    type: object
    description: >-
      The `SynchronousWebhook` object allows merchants to register endpoints on
      their backend for receiving predefined event types. Currently, only
      address validation events are available.


      In addition, merchants can specify locations representing their online
      stores, enabling them to set up different webhooks for different stores.
    properties:
      event_type:
        type: string
        enum:
          - fast_checkout.validate_address
        description: >-
          Type of event this synchronous webhook is configured for.


          :::note

          At the moment, synchronous webhooks only support address validation
          events. 

          :::
      url:
        type: string
        format: uri
        pattern: ^https:\/{2}.+/gi
        maxLength: 2000
        description: >-
          The valid URL of the endpoint, that uses HTTPS URL schema. Revolut
          sends the shipping address of the customer to this URL for validation.


          :::warning

          Restrictions:

          - Must be a valid URI as defined by [RFC
          3986](https://datatracker.ietf.org/doc/html/rfc3986)

          - URI scheme is required and must be `https`

          - URI host is required and cannot be `localhost` or an IP address

          - Max length: `2000`

          - Reserved or invalid characters must be percent-encoded (for example,
          use `%20` instead of a space)

          :::
      location_id:
        $ref: "#/x-ext/38a61e6"
    required:
      - event_type
      - url
  a245669:
    parameters:
      - $ref: "#/x-ext/90b9838"
    post:
      summary: Register address validation endpoint for Fast checkout
      operationId: registerAddressValidationEndpoint
      description: >-
        Use this endpoint to register a URL where Revolut can send shipping
        address(es) from a Revolut Pay customer for validation during the [Fast
        checkout

        process](/docs/guides/merchant/optimise-checkout/fast-checkout).


        Revolut Pay can support Fast checkout for delivering goods. Once your
        customer selects a shipping address, Revolut needs to validate if the
        merchant (or their shipping partner) delivers to the address provided.
        This is done by contacting the merchant's backend and asking for such
        validation and information.


        In order for your backend to support Fast checkout, you need to:


        1. Register an URL to handle address validation

        1. Validate the shipping address sent to your backend

        1. Respond with a JSON object containing the result of the validation


        Additionally, Revolut Pay can support multiple webhooks if you have
        multiple stores. For more information, see:
          - [Manage multiple stores with Fast checkout](/docs/guides/merchant/optimise-checkout/fast-checkout#manage-multiple-stores-with-fast-checkout)
          - [Merchant API: Locations](/docs/api/merchant#tag-locations)

        :::note

        To set up a webhook for tracking order completion, failure, error, etc.
        events, use the [Webhooks endpoints](/docs/api/merchant#tag-webhooks).

        :::
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/ec6c680"
            examples:
              create_webhook:
                summary: Create synchronous webhook
                value:
                  event_type: fast_checkout.validate_address
                  url: https://backend.example.com/webhooks/validate-address
              create_webhook_with_location_id:
                summary: Create synchronous webhook with location ID
                value:
                  event_type: fast_checkout.validate_address
                  url: https://backend.example.com/webhooks/validate-address
                  location_id: 8d9a7125-805f-40f3-a405-bc89765db996
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/6b0ce4e"
              examples:
                example_without_location:
                  summary: Synchronous webhook response
                  value:
                    id: f6abc4df-eb48-417c-8e75-f7c6d7ad394f
                    signing_key: swsk_y5z3LEHYZ9ndote3qegzWD6uL4t1lfp1
                    url: https://backend.example.com/webhooks/validate-address
                    event_type: fast_checkout.validate_address
                example_with_location:
                  summary: Synchronous webhook response with location ID
                  value:
                    id: f6abc4df-eb48-417c-8e75-f7c6d7ad394f
                    signing_key: swsk_y5z3LEHYZ9ndote3qegzWD6uL4t1lfp1
                    url: https://backend.example.com/webhooks/validate-address
                    event_type: fast_checkout.validate_address
                    location_id: b0ebede4-5cbc-4951-977f-70329faa8769
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
      security:
        - Api-Key: []
      tags:
        - Other
    get:
      summary: Retrieve a synchronous webhook list
      operationId: retrieveSynchronousWebhookList
      description: >-
        Retrieve a list of synchronous webhook objects.


        You can use this endpoint to see your different address validation
        endpoints registered to different locations.


        :::info

        For more information about locations, see: [Merchant API:
        Locations](/docs/api/merchant#tag-locations).

        :::
      responses:
        "200":
          description: Synchronous webhook list returned
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/x-ext/6b0ce4e"
              examples:
                example_without_location:
                  summary: List of synchronous webhooks
                  value:
                    - id: f6abc4df-eb48-417c-8e75-f7c6d7ad394f
                      signing_key: swsk_y5z3LEHYZ9ndote3qegzWD6uL4t1lfp1
                      url: https://example.com/webhooks/validate-address
                      event_type: fast_checkout.validate_address
                    - id: 5c08dcc1-cd60-4b7d-a255-e42d24d7365c
                      signing_key: swsk_VsuFcq6FIpa9gOWUu0n2WxiCbsDHIJlN
                      url: https://groceries.example.com/webhooks/validate-address
                      event_type: fast_checkout.validate_address
                      location_id: b0ebede4-5cbc-4951-977f-70329faa8769
                    - id: dbebe6f8-4c47-4176-a94f-576d76e1d0b6
                      signing_key: swsk_0TKYlzoakBgGGVvojCiRRqInMD1ufLZn
                      url: https://clothes.example.com/webhooks/validate-address
                      event_type: fast_checkout.validate_address
                      location_id: 6ebd3d2b-7a51-42e4-84f4-3c513621edd3
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
      security:
        - Api-Key: []
      tags:
        - Other
  a682105:
    type: object
    description: >-
      Object containing industry-specific information associated with the order.


      :::info

      In the following cases, industry-specific info is required. Omitting this
      information may trigger additional scrutiny and risk mitigation actions by
      the Revolut risk team.

        | Transaction type | Required for | 
        | ---------------- | ----------- |
        | `airline`        | Airlines and Online Travel Agencies (OTAs). |
        | `crypto`         | Crypto merchants. |
        | `marketplace`    | Marketplace merchants. |
        | `event`          | Event ticket sellers. |
        | `lodging`        | Lodging providers and OTAs. |
      :::
    discriminator:
      propertyName: type
      mapping:
        airline: ./Airline-Data.yaml
        crypto: ./Crypto-Transactions.yaml
        marketplace: ./Marketplace.yaml
        event: ./Events.yaml
        lodging: ./Lodging.yaml
    oneOf:
      - $ref: "#/x-ext/ea4eaac"
      - $ref: "#/x-ext/3df5792"
      - $ref: "#/x-ext/c490a87"
      - $ref: "#/x-ext/194d710"
      - $ref: "#/x-ext/a947701"
  c146ad0:
    type: object
    description: >-
      Additional information to track your orders in your system, by providing
      custom metadata using `"<key>" : "<value>"` pairs.


      :::warning

      **Restrictions:**


      - Both keys and values must be `string`s

      - Values cannot be `null`.

      - Max number of key-value pairs: `50`

      - Max length of values: `500` characters

      - Format of keys: Must start with a letter and contain only letters,
      digits, and underscores. Max 40 characters. Pattern:
      `^[a-zA-Z][a-zA-Z\\d_]{0,39}$`

      :::
    maxProperties: 50
    additionalProperties:
      type: string
      maxLength: 500
      description: Additional metadata value provided with the corresponding metadata key.
    examples:
      default:
        value:
          order_reference: ORD-12345
          customer_segment: premium
          internal_note: VIP customer - priority handling
  31aea79:
    type: object
    description: "Object for providing additional information stored in the
      merchant's order management system. "
    properties:
      url:
        $ref: "#/x-ext/9a48b63"
      reference:
        $ref: "#/x-ext/331c186"
  7d308f4:
    type: object
    description: Object containing information about upcoming payments associated
      with the order.
    properties:
      date:
        type: string
        format: date-time
        description: The date and time in [ISO 8601
          format](https://en.wikipedia.org/wiki/ISO_8601) when the upcoming
          payment is scheduled to be executed.
      payment_method_id:
        type: string
        description: >-
          The unique ID of the customer's payment method used to complete the
          scheduled payment.


          :::info

          For more information about operations related to customer's payment
          methods, see:
            - [Retrieve payment method list of a customer](/docs/api/merchant#retrieve-payment-method-list)
            - [Retrieve a customer's payment method](/docs/api/merchant#retrieve-payment-method)
            - [Update a customer's payment method](/docs/api/merchant#update-payment-method)
            - [Delete a customer's payment method](/docs/api/merchant#delete-payment-method)
          :::
    required:
      - date
      - payment_method_id
  25c3c73:
    type: string
    format: uri
    pattern: ^https?:\/{2}.+/gi
    maxLength: 2000
    description: |-
      The URL your customer will be redirected to after a successful payment on the hosted checkout page (`checkout_url` parameter's value of the order).

      :::warning
      Restrictions:
      - Must be a valid URI as defined by [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986)
      - URI scheme is required and must be either `http` or `https`
      - URI host is required and cannot be `localhost` or an IP address
      - Max length: `2000`
      - Reserved or invalid characters must be percent-encoded (for example, use `%20` instead of a space)
      :::

      :::info
      For more information on how to use the `redirect_url`, see: [Custom redirection via the API](/docs/guides/merchant/accept-payments/online-payments/hosted-checkout-page/api#custom-post-payment-redirection-optional)
      :::
  52074cd:
    type: string
    description: >-
      You can set a dynamic statement descriptor for your orders by providing a
      custom suffix. 


      A statement descriptor is the text shown on cardholders' bank or card
      statements, helping them recognise a transaction or merchant. This field
      can be used to send extra information with the statement descriptor for
      card transactions.


      The complete descriptor is built using the following format:
      `{base}*{suffix}`, where:
        
        - **`{base}`** is the existing descriptor configured in the Revolut Business dashboard (**Settings > Business account > Merchant profile > Statement descriptor**).  
        - **`{suffix}`** is defined by the `statement_descriptor_suffix` field.

      :::note

      - If the combined descriptor's length (base + suffix) exceeds the
      character limits of card scheme providers, the final value will be
      truncated. For example if the limit is 22 characters, the base descriptor
      is `"base"` and the suffix is `"testdescriptorsuffix"`, the final
      descriptor becomes `"base*testdescriptorsuf"`.

      - The final statement descriptor shown on a cardholder's statement may
      vary by issuing bank, as some banks apply their own custom formatting or
      truncation rules.

      :::
    minLength: 1
    maxLength: 19
    pattern: ^[^*\n\r\\]+$
  fad4ad3:
    type: object
    description: Object schema containing information about order update request.
    properties:
      amount:
        $ref: "#/x-ext/7dfa842"
      currency:
        $ref: "#/x-ext/1b2472a"
      settlement_currency:
        $ref: "#/x-ext/4da391a"
      description:
        $ref: "#/x-ext/a0887df"
      customer:
        $ref: "#/x-ext/f66f113"
      shipping_address:
        $ref: "#/x-ext/00ce429"
      enforce_challenge:
        $ref: "#/x-ext/d9d8857"
      line_items:
        $ref: "#/x-ext/bca3068"
      capture_mode:
        $ref: "#/x-ext/e3d4819"
      cancel_authorised_after:
        $ref: "#/x-ext/bd14ecb"
      metadata:
        $ref: "#/x-ext/c146ad0"
      industry_data:
        $ref: "#/x-ext/a682105"
      merchant_order_data:
        $ref: "#/x-ext/31aea79"
      upcoming_payment_data:
        $ref: "#/x-ext/7d308f4"
      redirect_url:
        $ref: "#/x-ext/25c3c73"
      statement_descriptor_suffix:
        $ref: "#/x-ext/52074cd"
  bd8d547:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/13f2186"
      - $ref: "#/x-ext/6ebce25"
    get:
      summary: Retrieve an order
      operationId: retrieveOrder
      description: >-
        Retrieve the details of an order that has been created. Provide the
        unique

        order ID, and the corresponding order information is returned.
      responses:
        "200":
          description: Order retrieved
          content:
            application/json:
              schema:
                $ref: "#/x-ext/8969f94"
              examples:
                example_order_min:
                  $ref: "#/x-ext/e8e192f"
                example_order_additional:
                  $ref: "#/x-ext/0df7c3d"
                example_order_pre_auth:
                  $ref: "#/x-ext/cfb7391"
                example_order_line_items:
                  $ref: "#/x-ext/312ca55"
                example_order_airline:
                  $ref: "#/x-ext/68329f0"
                example_order_car_rental:
                  $ref: "#/x-ext/157b6be"
                example_order_crypto:
                  $ref: "#/x-ext/60c8415"
                example_order_marketplace:
                  $ref: "#/x-ext/982681c"
                example_order_event:
                  $ref: "#/x-ext/84463ae"
                example_order_lodging:
                  $ref: "#/x-ext/0cf2bd5"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                example-1:
                  value:
                    code: bad_request
                    message: Could not parse JSON
                    timestamp: 1601296792533
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: unauthenticated
                    message: Authentication failed
                    timestamp: 1721049596461
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: not_found
                    message: Order with id abfa5bbd-a20c-4a0e-be66-30e733454518 was not found
                    timestamp: 1721050063886
      tags:
        - Orders
      security:
        - Api-Key: []
    patch:
      summary: Update an order
      operationId: updateOrder
      description: |-
        Update the details of an order.

        You can update an order and specific parameters based on the value of the `state` parameter:
          
        | State parameter value | Modifiable parameters |
        | --------------------- | --------------------- |
        | `pending` | You can modify all listed parameters. |
        | `authorised` | You can modify the following parameters: <br /><br /> <ul><li>`merchant_order_data.reference`</li><li>`description`</li><li>`metadata`</li><li>`shipping_address`</li><li>`industry_data`</li><li>`cancel_authorised_after`</li></ul> |
        | `completed` | You can modify the following parameters: <br /><br /> <ul><li>`merchant_order_data.reference`</li><li>`description`</li><li>`metadata`</li><li>`shipping_address`</li><li>`industry_data`</li></ul> |
        | `processing` | You cannot modify parameters. |

        :::info
        For more information about the order lifecycle, see: [Order and payment lifecycle](/docs/guides/merchant/reference/order-lifecycle).
        :::
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/fad4ad3"
            examples:
              example_update_order:
                summary: Example order update
                value:
                  amount: 1000
                  currency: EUR
                  settlement_currency: GBP
                  capture_mode: manual
                  cancel_authorised_after: P3D
                  metadata:
                    example_key: example_value
                  merchant_order_data:
                    url: https://example.com/orders/12345
                  statement_descriptor_suffix: "12345"
      responses:
        "200":
          description: Order updated
          content:
            application/json:
              schema:
                $ref: "#/x-ext/8969f94"
              examples:
                example_order_updated:
                  summary: Example order update response
                  value:
                    id: 651a941a-02ef-af6f-9b6c-458c652e2c6a
                    token: 0aa685ee-8d86-441d-bedd-3f7fbf41731b
                    type: payment
                    state: pending
                    created_at: 2023-10-02T09:57:46.498026Z
                    updated_at: 2023-10-02T11:54:46.648414Z
                    amount: 1000
                    currency: EUR
                    outstanding_amount: 1000
                    settlement_currency: GBP
                    capture_mode: manual
                    cancel_authorised_after: P3D
                    checkout_url: https://checkout.revolut.com/payment-link/0aa685ee-8d86-441d-bedd-3f7fbf41731b
                    metadata:
                      example_key: example_value
                    enforce_challenge: automatic
                    merchant_order_data:
                      url: https://example.com/orders/12345
                    statement_descriptor_suffix: "12345"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: bad_request
                    message: Could not parse JSON
                    timestamp: 1721049596461
          headers: {}
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: unauthenticated
                    message: Authentication failed
                    timestamp: 1721049596461
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: not_found
                    message: Order with id abfa5bbd-a20c-4a0e-be66-30e733454518 was not found
                    timestamp: 1721050063886
        "422":
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: order_invalid_state
                    message: Operation cannot be performed because order is in completed state and
                      expected is [pending]
                    timestamp: 1721049952145
      tags:
        - Orders
      security:
        - Api-Key: []
  8ada47f:
    type: string
    format: uuid
    description: Permanent order ID used to retrieve, capture, cancel, or refund an
      order after authorization.
  db8ab7a:
    type: string
    description: |-
      Temporary ID for the order, which expires when the payment is authorised.

      The order `token` is used for [token-based initialisation](/docs/sdks/merchant-web-sdk/initialisation/token-based), and is returned by the `createOrder` callback in the following payment methods:

      - [Embedded Checkout](/docs/sdks/merchant-web-sdk/payment-methods/embedded-checkout#embeddedcheckout options-interface)
      - [Revolut Pay](/docs/sdks/merchant-web-sdk/payment-methods/revolut-pay#widgetpaymentsrevolutpayoptions)
      - [Apple Pay and Google Pay](/docs/sdks/merchant-web-sdk/payment-methods/apple-pay-google-pay#paymentrequestoptions-interface)
      - [Pay by Bank](/docs/sdks/merchant-web-sdk/payment-methods/pay-by-bank#paybybankoptions-interface)
  704e5bd:
    type: string
    description: The type of the order.
    enum:
      - payment
      - payment_request
      - refund
      - chargeback
      - chargeback_reversal
      - credit_reimbursement
  e512ba4:
    type: string
    description: >-
      The state of the order in its lifecycle.


      | State | Description |

      |-------|-------------|

      | `pending` | Order created, awaiting payment |

      | `processing` | Payment is being processed |

      | `authorised` | Payment authorised but not yet captured (for manual
      capture) |

      | `completed` | Payment successfully captured and settled |

      | `cancelled` | Order was cancelled |

      | `failed` | Payment failed |


      For more information, see: [Order and payment
      lifecycle](/docs/guides/merchant/reference/order-lifecycle)
    enum:
      - pending
      - processing
      - authorised
      - completed
      - cancelled
      - failed
    examples:
      default:
        value: authorised
  6758f6f:
    type: integer
    description: >-
      The amount not yet paid for a given order (in minor currency units). For
      example, `7034` represents €70.34. 


      The value in this field may differ from `amount` if there are partial
      payments associated with the order.
  c660be4:
    type: integer
    description: >-
      The amount that was refunded from the order (in minor currency units). For
      example, `7034` represents €70.34. 


      This applies to orders that have been refunded (i.e., orders of type
      `payment` that have a related `refund` order).
  a571331:
    type: string
    description: Link to a checkout page hosted by Revolut.
    format: uri
  bc7c68c:
    type: object
    description: >-
      Represents a payment for an order.


      For pre-authorised payments, the `authorised_amount` field tracks the
      currently authorised amount, which may differ from `amount` during
      incremental authorisation processing.
    properties:
      id:
        $ref: "#/x-ext/a001704"
      state:
        $ref: "#/x-ext/9ebf295"
      decline_reason:
        $ref: "#/x-ext/67d79e0"
      bank_message:
        $ref: "#/x-ext/f555917"
      created_at:
        $ref: "#/x-ext/2df9c77"
      updated_at:
        $ref: "#/x-ext/a450668"
      token:
        $ref: "#/x-ext/d21286a"
      amount:
        $ref: "#/x-ext/f26cba6"
      authorised_amount:
        $ref: "#/x-ext/8038e80"
      currency:
        $ref: "#/x-ext/1b2472a"
      settled_amount:
        $ref: "#/x-ext/ff17c84"
      settled_currency:
        $ref: "#/x-ext/be93062"
      payment_method:
        $ref: "#/x-ext/f8a2cbb"
      authentication_challenge:
        $ref: "#/x-ext/faf3b7e"
      billing_address:
        $ref: "#/x-ext/00ce429"
      risk_level:
        $ref: "#/x-ext/24b2457"
      fees:
        $ref: "#/x-ext/87bb99b"
      payer:
        $ref: "#/x-ext/b19be60"
    required:
      - id
      - state
      - created_at
      - updated_at
      - amount
  e539979:
    type: object
    description: >-
      Represents a payment for an order.


      For pre-authorised payments, the `authorised_amount` field tracks the
      currently authorised amount, which may differ from `amount` during
      incremental authorisation processing.
    properties:
      $ref: "#/x-ext/bc7c68c/properties"
      order_id:
        type: string
        format: uuid
        description: The ID of the associated order.
    required:
      - id
      - state
      - created_at
      - updated_at
      - amount
  60081ba:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/ca9e6a1"
      - $ref: "#/x-ext/a200791"
    get:
      summary: Retrieve payment details
      operationId: retrievePaymentDetails
      description: >-
        Retrieve information about a specific payment, based on the payment's
        ID.


        Use this endpoint to track a payment's lifecycle, for example:
          - When you develop a [1-click checkout process](/docs/guides/merchant/optimise-checkout/save-payment-methods/checkout-with-saved-card)
          - When you build a [subscription management system](/docs/guides/merchant/optimise-checkout/save-payment-methods/subscription-management)
      responses:
        "200":
          description: Payment details
          content:
            application/json:
              schema:
                $ref: "#/x-ext/e539979"
              examples:
                revolut_pay_saved:
                  summary: Payment completed via Revolut Pay (card, saved details)
                  value:
                    id: 6633855a-0e4f-a768-8b2c-e765d8872505
                    state: captured
                    created_at: 2024-05-02T12:21:46.638369Z
                    updated_at: 2024-05-02T12:21:55.198089Z
                    token: 0b277730-8b3c-48d4-ab63-8903f40ee520
                    amount: 100
                    currency: GBP
                    settled_amount: 77
                    settled_currency: GBP
                    risk_level: low
                    fees:
                      - type: acquiring
                        amount: 23
                        currency: GBP
                    payment_method:
                      id: 6633855a-3b39-ad95-9782-cd1327ffa0e7
                      type: revolut_pay_card
                      fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
                      card_brand: visa
                      funding: credit
                      card_country_code: MT
                      card_bin: "123456"
                      card_last_four: "1234"
                      card_expiry: 12/28
                      cardholder_name: Example Holder
                      checks:
                        three_ds:
                          eci: "06"
                          state: verified
                          version: 2
                    order_id: 66338534-28a7-a68e-b312-43722430df1b
                revolut_pay_not_saved:
                  summary: Payment completed via Revolut Pay (account, not saved details)
                  value:
                    id: 66338688-fd73-a358-a82d-97da413c5325
                    state: captured
                    created_at: 2024-05-02T12:26:48.134039Z
                    updated_at: 2024-05-02T12:26:49.514594Z
                    token: 8061e645-35e0-42bb-8318-603abaeab7b7
                    amount: 100
                    currency: GBP
                    settled_amount: 79
                    settled_currency: GBP
                    billing_address:
                      street_line_1: 123 Example Street
                      street_line_2: Building A, 3rd Floor
                      city: Example City
                      region: Example Region
                      country_code: GB
                      postcode: E14 4HD
                    risk_level: low
                    fees:
                      - type: acquiring
                        amount: 21
                        currency: GBP
                    payment_method:
                      type: revolut_pay_account
                      fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
                    order_id: 6633865d-d911-a98c-8715-425f8731640c
                apple_tap_to_pay:
                  summary: Payment declined via Apple Tap to Pay
                  value:
                    id: 66338688-fd73-a358-a82d-97da413c5325
                    state: declined
                    created_at: 2024-05-02T12:26:48.134039Z
                    updated_at: 2024-05-02T12:26:49.514594Z
                    token: 8061e645-35e0-42bb-8318-603abaeab7b7
                    amount: 100
                    currency: GBP
                    settled_amount: 79
                    settled_currency: GBP
                    billing_address:
                      street_line_1: 123 Example Street
                      street_line_2: Building A, 3rd Floor
                      city: Example City
                      region: Example Region
                      country_code: GB
                      postcode: E14 4HD
                    risk_level: low
                    fees:
                      - type: acquiring
                        amount: 21
                        currency: GBP
                    payment_method:
                      type: apple_tap_to_pay
                      failure_reason: pin_data_required
                    order_id: 6633865d-d911-a98c-8715-425f8731640c
                apple_pay:
                  summary: Payment completed via Apple Pay
                  value:
                    id: 66338688-fd73-a358-a82d-97da413c5325
                    state: captured
                    created_at: 2024-05-02T12:26:48.134039Z
                    updated_at: 2024-05-02T12:26:49.514594Z
                    token: 8061e645-35e0-42bb-8318-603abaeab7b7
                    amount: 100
                    currency: GBP
                    settled_amount: 79
                    settled_currency: GBP
                    billing_address:
                      street_line_1: 123 Example Street
                      street_line_2: Building A, 3rd Floor
                      city: Example City
                      region: Example Region
                      country_code: GB
                      postcode: E14 4HD
                    risk_level: low
                    fees:
                      - type: acquiring
                        amount: 21
                        currency: GBP
                    payment_method:
                      type: apple_pay
                      fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
                    order_id: 6633865d-d911-a98c-8715-425f8731640c
                google_pay:
                  summary: Payment completed via Google Pay
                  value:
                    id: 66338688-fd73-a358-a82d-97da413c5325
                    state: captured
                    created_at: 2024-05-02T12:26:48.134039Z
                    updated_at: 2024-05-02T12:26:49.514594Z
                    token: 8061e645-35e0-42bb-8318-603abaeab7b7
                    amount: 100
                    currency: GBP
                    settled_amount: 79
                    settled_currency: GBP
                    billing_address:
                      street_line_1: 123 Example Street
                      street_line_2: Building A, 3rd Floor
                      city: Example City
                      region: Example Region
                      country_code: GB
                      postcode: E14 4HD
                    risk_level: low
                    fees:
                      - type: acquiring
                        amount: 21
                        currency: GBP
                    payment_method:
                      type: google_pay
                      fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
                    order_id: 6633865d-d911-a98c-8715-425f8731640c
                card_payment_saved:
                  summary: Payment completed via card (saved details)
                  value:
                    id: 663387f1-1c2e-a295-b143-9f1fb1eec175
                    state: captured
                    created_at: 2024-05-02T12:32:49.033945Z
                    updated_at: 2024-05-02T12:32:57.003519Z
                    token: 294358bf-3818-49b2-aacc-7ca971f52695
                    amount: 100
                    currency: GBP
                    settled_amount: 79
                    settled_currency: GBP
                    billing_address:
                      street_line_1: 123 Example Street
                      street_line_2: Building A, 3rd Floor
                      city: Example City
                      region: Example Region
                      country_code: GB
                      postcode: E14 4HD
                    risk_level: low
                    fees:
                      - type: acquiring
                        amount: 21
                        currency: GBP
                    payment_method:
                      id: 663387f1-c91e-a464-908a-1cc4548ebc6a
                      type: card
                      fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
                      card_brand: visa
                      funding: credit
                      card_country_code: GB
                      card_bin: "123456"
                      card_last_four: "1234"
                      card_expiry: 12/30
                      cardholder_name: Test Holder
                      checks:
                        three_ds:
                          eci: "06"
                          state: verified
                          version: 2
                        cvv_verification: match
                        address: match
                        postcode: match
                        cardholder: n_a
                    order_id: 663387bd-8484-ac57-93a7-3751dc154bbc
                sepa_direct_debit:
                  summary: Payment via SEPA Direct Debit (pending)
                  value:
                    id: 63dd0e4a-42c4-a1a6-ab2c-6ac9d255ca4b
                    state: pending
                    created_at: 2024-05-02T12:32:49.033945Z
                    updated_at: 2024-05-02T12:32:57.003519Z
                    token: 294358bf-3818-49b2-aacc-7ca971f52695
                    amount: 100
                    currency: EUR
                    risk_level: low
                    payment_method:
                      type: sepa_direct_debit
                      debtor_iban_last_four: "1234"
                      debtor_name: John Doe
                      mandate_reference: A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4
                    order_id: 63dd0e3f-7b84-ab5c-927c-1a06f7c9583a
                card_payment_not_saved:
                  summary: Payment completed via card (not saved details)
                  value:
                    id: 663387f1-1c2e-a295-b143-9f1fb1eec175
                    state: captured
                    created_at: 2024-05-02T12:32:49.033945Z
                    updated_at: 2024-05-02T12:32:57.003519Z
                    token: 294358bf-3818-49b2-aacc-7ca971f52695
                    amount: 100
                    currency: GBP
                    settled_amount: 79
                    settled_currency: GBP
                    billing_address:
                      street_line_1: 123 Example Street
                      street_line_2: Building A, 3rd Floor
                      city: Example City
                      region: Example Region
                      country_code: GB
                      postcode: E14 4HD
                    risk_level: low
                    fees:
                      - type: acquiring
                        amount: 21
                        currency: GBP
                    payment_method:
                      type: card
                      fingerprint: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
                      card_brand: visa
                      funding: credit
                      card_country_code: GB
                      card_bin: "123456"
                      card_last_four: "1234"
                      card_expiry: 12/30
                      cardholder_name: Test Holder
                      checks:
                        three_ds:
                          eci: "06"
                          state: verified
                          version: 2
                        cvv_verification: match
                        address: match
                        postcode: match
                        cardholder: n_a
                    order_id: 663387bd-8484-ac57-93a7-3751dc154bbc
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorId:
                    type: string
                    description: |-
                      The ID of the error. You can share this ID with Revolut
                      support for troubleshooting.
                  timestamp:
                    type: integer
                    description: The date and time the error happened.
              examples:
                example-1:
                  value:
                    errorId: 94b27660-fdda-49ec-8b85-cd46a068ade0
                    timestamp: 1601296792533
        "401":
          description: Unauthorized
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorId:
                    type: string
                    description: |-
                      The ID of the error. You can share this ID with Revolut
                      support for troubleshooting.
                  timestamp:
                    type: integer
                    description: The date and time the error happened.
                  code:
                    type: integer
              examples:
                example-1:
                  value:
                    errorId: 94b27660-fdda-49ec-8b85-cd46a068ade0
                    timestamp: 1601296792533
                    code: 1024
      security:
        - Api-Key: []
      tags:
        - Payments
  0f194c2:
    title: Address
    type: object
    properties:
      street_line_1:
        type: string
        description: Street line 1 information.
      street_line_2:
        type: string
        description: Street line 2 information.
      region:
        type: string
        description: The region associated with the address.
      city:
        type: string
        description: The city associated with the address.
      country_code:
        type: string
        description: The country associated with the address.
      postcode:
        type: string
        description: The postcode associated with the address.
    required:
      - country_code
      - postcode
  a078396:
    title: Simplified-Order
    type: object
    properties:
      id:
        type: string
        description: Permanent order ID used to retrieve, capture, cancel, or refund an
          order after authorisation.
      type:
        type: string
        description: The type of the order.
        enum:
          - PAYMENT
          - REFUND
          - CHARGEBACK
      state:
        type: string
        description: >-
          The state of the order.


          :::info

          For more information about the order lifecycle, see: [Order and
          payment lifecycle](/docs/guides/merchant/reference/order-lifecycle).

          :::
        enum:
          - PENDING
          - PROCESSING
          - AUTHORISED
          - COMPLETED
          - CANCELLED
          - FAILED
      created_at:
        type: string
        description: The date and time the order was created.
        format: date-time
      updated_at:
        type: string
        description: The date and time the order was last updated.
        format: date-time
      completed_at:
        type: string
        description: The date and time the order was completed.
        format: date-time
      description:
        type: string
        description: The description of the order.
      capture_mode:
        type: string
        description: >-
          The capture mode of the order. `AUTOMATIC` is used by default.


          - `AUTOMATIC`: The order is captured automatically after payment
          authorisation.

          - `MANUAL`: The order is not captured automatically. You must manually
          capture the order later.


          For more information, see [Capture an
          order](/docs/api/merchant#capture-order).
      settlement_currency:
        type: string
        description: |-
          [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case. All payments made towards this order are settled in this currency.

          :::info
          For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
          :::
      merchant_order_ext_ref:
        type: string
        description: >-
          Merchant order ID for external reference.


          Use this field to set the ID that your own system can use to easily
          track orders.
      customer_id:
        type: string
        description: The ID of the [customer](/docs/api/merchant#tag-customers)
          associated with this order.
      email:
        type: string
        description: The email of the customer.
        format: email
      phone:
        type: string
        description: The phone number of the customer.
      order_amount:
        type: object
        description: The amount and currency of the order.
        required:
          - value
          - currency
        properties:
          value:
            type: integer
            description: The amount of the order (minor currency unit). For example, enter
              `7034` for €70.34 in the field.
          currency:
            type: string
            description: |-
              The currency of the order. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.

              :::info
              For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
              :::
      order_outstanding_amount:
        type: object
        description: The amount and currency outstanding to be paid for this order.
        properties:
          value:
            type: integer
            description: The amount of the order (minor currency unit) that is outstanding.
              For example, enter `7034` for €70.34 in the field.
          currency:
            type: string
            description: |-
              The currency of the amount that is outstanding. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.

              :::info
              For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
              :::
      shipping_address:
        $ref: "#/x-ext/0f194c2"
    required:
      - id
      - type
      - state
      - created_at
      - updated_at
      - order_amount
    description: The `Order` object returned when you retrieve a list of orders.
  da2d82c:
    parameters:
      - $ref: "#/x-ext/90b9838"
    get:
      summary: Retrieve an order list
      operationId: retrieveOrderList
      description: >-
        Retrieve all the orders that you've created. You can also use the query
        parameters for:

          | Filtering | Pagination |
          | --------- | ---------- |
          | Filter the orders that you want to retrieve, for example, only retrieve the orders that have a specific email. <br/><br/>Parameters used for filtering:<br/><ul><li>`from_created_date`</li><li>`to_created_date`</li><li>`customer_id`</li><li>`email`</li><li>`merchant_order_ext_ref`</li><li>`state`</li></ul> | View the orders without loading all of them at once, for example, return a specified number of orders per page. <br/><br/>Parameters used for pagination: <br/><ul><li>`limit`</li><li>`created_before`</li></ul> |

        The response contains an array of simplified `Order` objects. To get the
        full details of an `Order` object, use the [Retrieve an
        order](/docs/api/merchant/2023-09-01#retrieve-order) endpoint.
      parameters:
        - schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 1000
          in: query
          name: limit
          description: The maximum number of orders returned per page. Used for
            **pagination**.
        - schema:
            type: string
            format: date-time
          in: query
          name: created_before
          description: >-
            Retrieve orders with a `created_date` < `created_before`. Used for
            **pagination**. Use the `created_date` of the last order returned in
            the previous response to get to the next page.


            The default value is the current date and time you are calling the
            endpoint.
        - schema:
            type: string
            format: date-time
          in: query
          name: from_created_date
          description: >-
            Retrieve all orders with a `created_date` ≥ `from_created_date`.
            Used for **filtering**.


            Use the [ISO date format](https://en.wikipedia.org/wiki/ISO_8601):
            `yyyy-MM-ddTHH:mm:ss[.SSSSSS]Z`. For example,
            `2021-02-10T16:59:50.886826Z`.
        - schema:
            type: string
            format: date-time
          in: query
          name: to_created_date
          description: >-
            Retrieve all orders with a `created_date` ≤ `to_created_date`. Used
            for **filtering**.


            Use the [ISO date format](https://en.wikipedia.org/wiki/ISO_8601):
            `yyyy-MM-ddTHH:mm:ss[.SSSSSS]Z`. For example,
            `2021-02-10T16:59:50.886826Z`.
        - schema:
            type: string
            format: uuid
          in: query
          name: customer_id
          description: Retrieve all orders that have this `customer_id` associated to
            them. Used for **filtering**.
        - schema:
            type: string
            format: email
          in: query
          name: email
          description: >-
            Retrieve all orders that have this `email` associated to them. Used
            for **filtering**. 


            This parameter is case sensitive.
        - schema:
            type: string
          in: query
          name: merchant_order_ext_ref
          description: >-
            Merchant order ID for external reference. Use this field to filter
            and retrieve all the orders that have this ID. Used for
            **filtering**. 


            This parameter is case sensitive.
        - schema:
            type: array
            items:
              type: string
              enum:
                - PENDING
                - PROCESSING
                - AUTHORISED
                - COMPLETED
                - CANCELLED
                - FAILED
          style: form
          explode: true
          in: query
          name: state
          description: |-
            Retrieve all orders with specific states. You can pass several states. Used for **filtering**.

            If multiple states are selected, for example `AUTHORISED` and `COMPLETED`, orders with either of the selected values are returned. See this example of such a request URL: 

            ```curl
            https://merchant.revolut.com/api/1.0/orders?state=AUTHORISED&state=COMPLETED
            ```

            The parameter is case sensitive.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/x-ext/a078396"
              examples:
                list_of_orders:
                  summary: List of orders
                  value:
                    - id: f0d685f4-07ab-4eff-ba80-5811303c607d
                      type: PAYMENT
                      state: PENDING
                      created_at: 2021-02-10T18:17:37.959383Z
                      updated_at: 2021-02-10T18:17:37.959383Z
                      order_amount:
                        value: 35000
                        currency: GBP
                      order_outstanding_amount:
                        value: 35000
                        currency: GBP
                    - id: feca684a-b9ea-4033-9bc4-b9e6ac12ada6
                      type: PAYMENT
                      state: COMPLETED
                      created_at: 2021-02-10T16:59:23.642673Z
                      updated_at: 2021-02-10T16:59:50.886826Z
                      completed_at: 2021-02-10T16:59:50.886826Z
                      settlement_currency: USD
                      email: sally.gibson@lloydsbank.co.uk
                      order_amount:
                        value: 1000
                        currency: GBP
                      order_outstanding_amount:
                        value: 0
                        currency: GBP
                    - id: f3c5e3f1-f73a-4853-a9e3-b0261301c66a
                      type: PAYMENT
                      state: COMPLETED
                      created_at: 2021-02-10T16:58:47.507560Z
                      updated_at: 2021-02-10T16:59:52.847017Z
                      completed_at: 2021-02-10T16:59:52.847017Z
                      description: URBAN 'Panther' Watch by José Almeida
                      capture_mode: AUTOMATIC
                      merchant_order_ext_ref: testorder123
                      customer_id: 31345442-3d03-4c4b-8354-3bdaf0ca9600
                      email: someothermail@gmail.com
                      order_amount:
                        value: 777
                        currency: GBP
                      order_outstanding_amount:
                        value: 0
                        currency: GBP
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Orders
  22fa5f7:
    type: integer
    minimum: 1
    description: >-
      The new total amount to be authorised (in minor units, e.g., cents).


      This should be the **full new amount**, not the increment value.

      For example, if the current authorised amount is `500` and you want to add
      100, pass `600`.


      :::warning

      - Must be greater than or equal to the current authorised amount
      (incrementing with same amount allowed to extend capture deadline for
      Mastercard)

      - The sum of all increment amounts cannot exceed 5x the initial authorised
      amount (e.g., initial amount £100 allows up to £500 in total increments)

      :::
    examples:
      default:
        value: 600
  a7167a9:
    type: string
    maxLength: 255
    description: >-
      External reference for this incremental authorisation.


      :::tip

      Use your internal charge or invoice ID. This reference is returned in
      webhooks for easy matching to your system.

      :::
    examples:
      default:
        value: CHG-67890
  a378ff5:
    type: object
    properties:
      amount:
        $ref: "#/x-ext/22fa5f7"
      reference:
        $ref: "#/x-ext/a7167a9"
      line_items:
        $ref: "#/x-ext/bca3068"
    required:
      - amount
  3061d3b:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/13f2186"
      - $ref: "#/x-ext/6ebce25"
    post:
      summary: Increment authorisation
      operationId: incrementOrderAuthorisation
      description: |-
        Increase the authorised amount on a pre-authorised order.

        This operation allows you to increment the authorised amount for orders created with `authorisation_type: pre_authorisation` and `capture_mode: manual`.

        :::note
        Currently, only card payments are supported.
        :::

        ### Common use-cases

        - Hotel additional charges (e.g., minibar, room service)
        - Car rental damage or fuel charges
        - Equipment rental extensions

        ### How it works

        1. Create an order with `capture_mode: manual` and `authorisation_type: pre_authorisation`
        1. Take payment using one of our card payment solutions
        1. When payment/order reaches `authorised` state, you can increment authorised amount
        1. When no more increments are expected, [capture the order](/docs/api/merchant/2024-05-01#capture-order) to complete the transaction

        :::warning
        - Can only increment orders in `authorised` state
        - Must have `authorisation_type: pre_authorisation` and `capture_mode: manual`
        - Sum of all increment amounts cannot exceed 5x the initial amount
        - Maximum 10 increments per order
        - Process increments sequentially to avoid declines
        - Currently only supported for card payments
        :::

        :::info
        For more information, see: [Incremental authorisation guide](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/incremental-authorisation)
        :::
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/x-ext/a378ff5"
            examples:
              basic_increment:
                $ref: "#/x-ext/c2c6e40"
              increment_with_additional:
                $ref: "#/x-ext/b947f42"
      responses:
        "200":
          description: Authorization increment initiated successfully
          content:
            application/json:
              schema:
                $ref: "#/x-ext/8969f94"
              examples:
                increment_in_progress:
                  $ref: "#/x-ext/d840984"
                increment_authorised:
                  $ref: "#/x-ext/e19e106"
                increment_declined:
                  $ref: "#/x-ext/8817c1e"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                invalid_amount:
                  value:
                    code: validation
                    message: "New amount: 3 should be greater or equal to order amount: 500"
                    timestamp: 1768397646286
        "404":
          description: Order not found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: not_found
                    message: Order not found
                    timestamp: 1768397646286
        "422":
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                invalid_state:
                  summary: Invalid state
                  value:
                    code: bad_state
                    message: No authorised card not present payment found for order
                      69732536-0379-a2e2-8983-15e7184f8fc6.
                    timestamp: 1768397646286
                invalid_auth_type:
                  summary: Wrong authorisation type
                  value:
                    code: order_invalid_authorisation_type
                    message: Operation cannot be performed for order
                      697325ca-a9a2-a922-8df5-c603664da5a5 because order
                      authorisation type is final and expected is
                      pre_authorisation
                    timestamp: 1768397646286
      tags:
        - Orders
      security:
        - Api-Key: []
  77f28ee:
    type: integer
    description: >-
      Specify an amount to capture, in minor currency units. The amount must not
      exceed the authorised amount.


      An order can only be captured once. Partial capture is supported by
      sending an amount lower than the authorised amount. The uncaptured amount
      will be voided.


      If you resend a capture request for an order that is already captured, no
      additional capture is performed. Resending with the same amount returns
      the current order state, while resending with a different amount returns
      an error.


      If not provided, it defaults to the authorised amount (full capture will
      be executed).
  7f96b03:
    type: object
    description: >-
      Order capture request parameters.


      You can optionally provide line items when capturing an order. This is
      useful when you need to adjust the final order details at capture time
      (for example, when doing partial captures with specific items, or when the
      final delivered items differ from the initial authorisation).


      :::warning

      If you provide `line_items` when capturing, they will **overwrite** the
      original line items that were provided during order creation or update.
      Make sure to include all the items you want to be associated with the
      captured order.

      :::
    properties:
      amount:
        $ref: "#/x-ext/77f28ee"
      line_items:
        $ref: "#/x-ext/bca3068"
  04d0213:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/13f2186"
      - $ref: "#/x-ext/6ebce25"
    post:
      summary: Capture an order
      operationId: captureOrder
      description: |-
        This endpoint is used to capture the funds of an existing, uncaptured order. When the payment for an order is authorised, you can capture the order to send it to the processing stage.

        :::info
        For more information about the order and payment lifecycle, see: [Order and payment
        lifecycle](/docs/guides/merchant/reference/order-lifecycle).
        :::

        ## Capture modes

        When you [create an order](/docs/api/merchant/2024-05-01#create-order), you can choose one of the following capture modes:

          | **Capture mode** | **Description** |
          | ---------------- | --------------- |
          | `automatic` | The order is captured automatically after payment authorisation. No further actions are needed. |
          | `manual` | The order is not captured automatically and stays in `authorised` state. You must manually capture the order using the steps outlined below. |

        :::warning
        By default, uncaptured orders with **final authorisation** (`authorisation_type: final`) remain in `authorised` state for **7 days**. If not captured within this period, the funds are returned to the customer's original payment method.

        The capture deadline can be customised:
        - Use `cancel_authorised_after` parameter when creating an order to set a custom expiry period
        - The effective deadline is the earlier of `cancel_authorised_after` and the card/network clearing window
        - `capture_deadline` is set when the order becomes `authorised` and doesn't change afterwards
        - Use **pre-authorisation** (`authorisation_type: pre_authorisation`) for extended clearing windows (up to 30 days) and incremental authorisation support (see tip below)
        :::

        :::tip [Extended clearing windows]
        If your business requires longer authorisation hold periods (up to 30 days depending on card scheme and MCC), use [pre-authorisation](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/pre-authorisation) instead of standard authorisation. Pre-authorisation also supports [incremental authorisation](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/incremental-authorisation) for variable-amount scenarios.
        :::

        ### Manual capture
          
        To capture an order manually, use one of the following methods:
          
        | **Web UI** | **Merchant API** |
        | ---------- | ------------ |
        | <ol><li>Log in to your [Revolut Business portal](https://business.revolut.com).</li><li>Navigate to the **Merchant** tab on the dashboard, and click the **See all** button in the **Transactions** section.</li><li>Select an uncaptured payment, and click **Capture**.</li></ol> | Use the `/capture` endpoint. |

        :::info
        For more information about manually capturing an order, see: [Authorise an amount to capture
        later](/docs/guides/merchant/operations/capture-and-settlement/capture-later).
        :::

        #### Partial capture

        You have the option to capture only a fraction of the full amount. In such cases, the uncaptured portion of the amount will be voided.

        :::warning
        The following limitations apply to manual captures:
          - An order can only be captured once
          - Captured amount can't exceed the authorised amount
          - On Web UI, only capturing full amount is possible
          - `0` amount captures are not allowed
          - For partial captures, you can only resend the request with the initial amount
        :::

        #### Updating line items at capture

        You can optionally provide `line_items` when capturing an order. This allows you to adjust the final order details at the time of capture, which is useful for scenarios such as:
        - **Partial captures:** Specify which items are being captured when capturing less than the full amount. Line items help accurately reflect which items were captured versus voided (see [Partial capture](#partial-capture) above).
        - **Final adjustments:** Update order details when the delivered items differ from the initial authorisation (e.g., out-of-stock items, substitutions, quantity changes).

        :::warning
        If you provide `line_items` when capturing, they will **overwrite** the original line items provided during order creation or update. Ensure you include all items you want associated with the captured order.
        :::

        :::info
        For a comprehensive guide including use cases and examples, see: [Authorise a payment to capture later](/docs/guides/merchant/operations/capture-and-settlement/capture-later#update-line-items-at-capture).
        :::

        ## Idempotency and repeated requests

        The capture operation is idempotent. This means that an order can only be captured once. If you send a capture request more than once:

        - The first valid request captures the order and moves it to the processing stage.
        - Any subsequent request with the same capture amount will not recapture funds and behaves like a [Retrieve an order](/docs/api/merchant/2024-05-01#retrieve-order) request, returning the current order state.
        - A subsequent request with a different capture amount returns an error.

        :::info
        Utilising the idempotent nature of this endpoint helps maintain data consistency and prevents duplicate processing of the same order.
        :::
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/7f96b03"
            examples:
              example_minimal:
                $ref: "#/x-ext/a441f72"
              example_with_line_items:
                $ref: "#/x-ext/797e8ac"
      responses:
        "200":
          description: Order captured
          content:
            application/json:
              schema:
                $ref: "#/x-ext/8969f94"
              examples:
                captured_order_minimal:
                  $ref: "#/x-ext/a64baa6"
                captured_order_line_items:
                  $ref: "#/x-ext/de68965"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                example-1:
                  value:
                    code: bad_request
                    message: Could not parse JSON
                    timestamp: 1601296792533
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: unauthenticated
                    message: Authentication failed
                    timestamp: 1721049596461
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: not_found
                    message: Order with id abfa5bbd-a20c-4a0e-be66-30e733454518 was not found
                    timestamp: 1721050063886
      security:
        - Api-Key: []
      tags:
        - Orders
  331c186:
    type: string
    description: >-
      Merchant order ID for external reference.


      Use this field to set the ID that your own system can use to easily track
      orders.
  a373882:
    type: object
    properties:
      amount:
        type: integer
        description: >-
          The amount of the refund (minor currency unit). For example, enter
          `7034` for €70.34 in the field.


          This amount can't exceed the remaining amount of the original order.
          To get the refundable amount, subtract the `value` of the
          `refunded_amount` from the `value` of the `order_amount` in the
          original order. See [Retrieve an
          order](/docs/api/merchant#retrieve-order).
      description:
        type: string
        description: The description of the refund.
      merchant_order_ext_ref:
        $ref: "#/x-ext/331c186"
      metadata:
        $ref: "#/x-ext/c146ad0"
    required:
      - amount
  7adf35b:
    type: string
    description: >-
      The capture mode of the order. `AUTOMATIC` is used by default.


      - `AUTOMATIC`: The order is captured automatically after payment
      authorisation.

      - `MANUAL`: The order is not captured automatically. You must manually
      capture the order later.


      For more information, see [Capture an
      order](/docs/api/merchant#capture-order).
    enum:
      - AUTOMATIC
      - MANUAL
  a764195:
    type: string
    format: uri
    pattern: ^https?:\/{2}.+/gi
    maxLength: 2000
    description: >-
      The URI of the order stored in the merchant's order management system.


      This URI will be included in the order confirmation email for payments
      made via Revolut Pay. If specified, this URI will override the default
      link to the merchant's **Business website** configured in the Revolut
      Business account.


      :::warning

      Restrictions:

      - Must be a valid URI as defined by [RFC
      3986](https://datatracker.ietf.org/doc/html/rfc3986)

      - URI scheme is required and must be either `http` or `https`

      - URI host is required and cannot be `localhost` or an IP address

      - Max length: `2000`

      - Reserved or invalid characters must be percent-encoded (for example, use
      `%20` instead of a space)

      :::
  "33e2658":
    type: integer
    description: >-
      The order total expressed in minor currency units, according to the [ISO
      4217 standard](https://en.wikipedia.org/wiki/ISO_4217). For example,
      `7034` in `EUR` corresponds to €70.34.


      :::info

      Conversion between major and minor units varies by currency. For instance,
      `100` minor units equal £1.00 in `GBP`, whereas in `ISK` they represent
      100 units. For more details, see the [ISO 4217
      standard](https://en.wikipedia.org/wiki/ISO_4217).

      :::
  10a5163:
    title: Order-Related
    type: object
    properties:
      id:
        type: string
        description: The ID of the related order. You can use this ID to get more
          information about the related order using the [Retrieve an
          order](/docs/api/merchant#retrieve-order) operation.
      type:
        type: string
        description: The type of the related order.
        enum:
          - PAYMENT
          - REFUND
          - CHARGEBACK
      state:
        type: string
        description: The state of the related order.
        enum:
          - PENDING
          - PROCESSING
          - AUTHORISED
          - COMPLETED
          - CANCELLED
          - FAILED
      amount:
        type: object
        description: The amount and currency of the related order.
        properties:
          value:
            $ref: "#/x-ext/33e2658"
          currency:
            $ref: "#/x-ext/1b2472a"
  8f22aa4:
    type: string
    format: date
    description: The birth date of the customer.
  d5fae67:
    type: object
    properties:
      full_name:
        type: string
        description: The full name of the customer.
      business_name:
        type: string
        description: The name of the customer's business.
      email:
        type: string
        description: >-
          The email address of the customer. 


          :::note

          This value must be unique for each customer for one merchant. If the
          email address matches an existing customer, an error is returned.

          :::
        format: email
      phone:
        type: string
        description: The phone number of the customer in [E.164
          format](https://en.wikipedia.org/wiki/E.164).
      date_of_birth:
        $ref: "#/x-ext/8f22aa4"
  4bd08a9:
    title: Customer object with Payment Method object
    type: object
    properties:
      id:
        type: string
        description: Permanent customer ID used to retrieve, update, and delete a customer.
      full_name:
        type: string
        description: The full name of the customer.
      business_name:
        type: string
        description: The name of the customer's business.
      phone:
        type: string
        description: The phone number of the customer in [E.164
          format](https://en.wikipedia.org/wiki/E.164).
      created_at:
        type: string
        description: The date and time the customer was created.
        format: date-time
      updated_at:
        type: string
        description: The data and time the customer was last updated.
        format: date-time
      email:
        type: string
        description: The email address of the customer.
        format: email
      date_of_birth:
        $ref: "#/x-ext/8f22aa4"
      payment_methods:
        type: array
        uniqueItems: false
        description: All the payment methods for this customer.
        items:
          $ref: "#/x-ext/233ebf4"
    required:
      - id
      - created_at
      - updated_at
      - email
  e6d2435:
    type: object
    properties:
      full_name:
        type: string
        description: The full name of the customer.
      business_name:
        type: string
        description: The name of the customer's business.
      email:
        type: string
        description: The email address of the customer.
        format: email
      phone:
        type: string
        description: The phone number of the customer in [E.164
          format](https://en.wikipedia.org/wiki/E.164).
      date_of_birth:
        $ref: "#/x-ext/8f22aa4"
    required:
      - email
  939dede:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/5cb8929"
    get:
      summary: Retrieve a customer (Deprecated)
      deprecated: true
      operationId: retrieveCustomerDeprecated
      description: Get the information about a specific `customer`, based on its ID.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/4bd08a9"
              examples:
                retrieved_customer:
                  summary: Retrieved customer
                  value:
                    id: 6c7c97a8-cfc1-4cf3-8b38-26a74fdf1fae
                    full_name: Example Customer
                    business_name: Example Business
                    email: example.customer@example.com
                    phone: "+441234567890"
                    date_of_birth: 1990-01-01
                    created_at: 2020-06-24T12:03:39.979397Z
                    updated_at: 2020-06-25T10:03:39.134417Z
                    payment_methods:
                      - id: 648334a8-9546-a983-a81a-efc6d5bdd0be
                        type: REVOLUT_PAY
                        saved_for: MERCHANT
                        method_details:
                          created_at: 2023-06-09T14:18:16.577888Z
                      - id: edef3ba4-60a0-4df3-8f12-e5fc858c2420
                        type: CARD
                        saved_for: CUSTOMER
                        method_details:
                          bin: "459765"
                          last4: "6578"
                          expiry_month: 2
                          expiry_year: 2025
                          cardholder_name: Example Customer
                          brand: VISA
                          funding: DEBIT
                          issuer: EXAMPLE ISSUER
                          issuer_country: GB
                          billing_address:
                            street_line_1: 7, Westferry Circus
                            street_line_2: Columbus Building
                            postcode: E144HD
                            city: London
                            region: Greater London
                            country_code: GB
                          created_at: 2023-03-24T14:15:22Z
        "401":
          description: Unauthorized
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Customers
    patch:
      summary: Update a customer (Deprecated)
      deprecated: true
      operationId: updateCustomerDeprecated
      description: Update the attributes of a specific `customer`.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/d5fae67"
            examples:
              default:
                value:
                  email: example.business@example.com
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/f3e7dc8"
              examples:
                updated_customer:
                  summary: Updated customer
                  value:
                    id: 6c7c97a8-cfc1-4cf3-8b38-26a74fdf1fae
                    full_name: Example Customer
                    business_name: Example Business
                    email: example.business@example.com
                    phone: "+441234567890"
                    date_of_birth: 1990-01-01
                    created_at: 2020-06-24T12:03:39.979397Z
                    updated_at: 2020-06-25T10:03:39.134417Z
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorId:
                    type: string
                    description: |-
                      The ID of the error. You can share this ID with Revolut
                      support for troubleshooting.
                  timestamp:
                    type: integer
                    description: The date and time the error happened.
              examples:
                example-1:
                  value:
                    errorId: 94b27660-fdda-49ec-8b85-cd46a068ade0
                    timestamp: 1601296792533
        "401":
          description: Unauthorized
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Customers
    delete:
      summary: Delete a customer (Deprecated)
      deprecated: true
      operationId: deleteCustomerDeprecated
      description: Delete the profile of a specific `customer`.
      responses:
        "204":
          description: No Content
        "401":
          description: Unauthorized
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Customers
  9234e4e:
    parameters:
      - $ref: "#/x-ext/90b9838"
    post:
      summary: Create a customer (Deprecated)
      deprecated: true
      operationId: createCustomerDeprecated
      description: |-
        Create a `customer` that has the information in the body of the request.

        :::note
        If you wish to save a customer's payment details using any of the available payment methods on the Revolut Checkout Widget ([Revolut Pay](/docs/guides/merchant/accept-payments/online-payments/revolut-pay/introduction), [Card payments](/docs/guides/merchant/accept-payments/online-payments/card-payments/introduction)), you need to meet one of the following requirements:

          - Have a customer object with `email` and assign it to the order by providing `customer.id`
          - Create a new customer with, at least, `customer.email` during [order creation](/docs/api/merchant/Legacy#create-order)

        For more information, see: [Charge a customer's saved payment method](/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method).
        :::
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/e6d2435"
            examples:
              default:
                value:
                  full_name: Example Customer
                  business_name: Example Business
                  email: example.customer@example.com
                  phone: "+441234567890"
                  date_of_birth: 1990-01-01
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: "#/x-ext/f3e7dc8"
              examples:
                created_customer:
                  summary: Created customer
                  value:
                    id: 6c7c97a8-cfc1-4cf3-8b38-26a74fdf1fae
                    full_name: Example Customer
                    business_name: Example Business
                    email: example.customer@example.com
                    phone: "+441234567890"
                    date_of_birth: 1990-01-01
                    created_at: 2020-06-24T12:03:39.979397Z
                    updated_at: 2020-06-24T12:03:39.979397Z
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                description: ""
                type: object
                properties:
                  errorId:
                    type: string
                    description: |-
                      The ID of the error. You can share this ID with Revolut
                      support for troubleshooting.
                  timestamp:
                    type: number
                    description: The date and time the error happened.
                  code:
                    type: number
                    description: "`1018` - The customer already exists."
                required:
                  - errorId
                  - timestamp
              examples:
                Error:
                  value:
                    errorId: 5226f800-e9be-4b74-ae61-6c7b71c913b5
                    timestamp: 1593439990599
                    code: 1018
        "401":
          description: Unauthorized
      security:
        - Api-Key: []
      tags:
        - Customers
    get:
      summary: Retrieve a customer list (Deprecated)
      deprecated: true
      operationId: retrieveAllCustomersDeprecated
      description: Get a list of all your `customers`.
      parameters:
        - schema:
            type: integer
            default: 100
            minimum: 1
            maximum: 100
          in: query
          name: limit
          description: The maximum number of customers returned per page. Used for
            **pagination**.
        - schema:
            type: integer
            default: 0
            minimum: 0
          in: query
          name: page
          description: A zero-based page index for the paginated results, used in
            conjunction with `limit`.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/x-ext/f3e7dc8"
              examples:
                list_of_customers:
                  summary: List of customers
                  value:
                    - id: 9dfb8491-bfb0-4420-ad63-0fa7bdd3dffb
                      full_name: First Customer
                      email: first.customer@example.com
                      date_of_birth: 1990-01-01
                      created_at: 2020-06-24T12:12:56.596703Z
                      updated_at: 2020-06-24T12:12:56.737082Z
                    - id: 6c7c97a8-cfc1-4cf3-8b38-26a74fdf1fae
                      full_name: Second Customer
                      business_name: Second Business
                      email: second.customer@example.com
                      phone: "+441234567890"
                      created_at: 2020-06-24T12:03:39.979397Z
                      updated_at: 2020-06-25T10:03:39.134417Z
                    - id: 014f0ad6-c45b-4d7d-83c6-80eea94fceac
                      full_name: Third Customer
                      email: third.customer@example.com
                      phone: "+441234567890"
                      created_at: 2020-06-23T14:13:08.262336Z
                      updated_at: 2020-06-24T10:47:11.173027Z
        "401":
          description: Unauthorized
      security:
        - Api-Key: []
      tags:
        - Customers
  a001704:
    type: string
    format: uuid
    description: The ID of the payment.
  d21286a:
    type: string
    format: uuid
    description: >-
      Temporary token of the payment used to fetch the reward offer during
      checkout and link user registrations to the given offers. 


      The token is only valid for a limited time.
  f26cba6:
    type: integer
    format: int64
    minimum: 0
    description: >-
      The payment amount in minor units (e.g., cents). The value of this field
      depends on the payment type and state.


      | Payment type | State | Amount value |

      |--------------|-------|--------------|

      | Standard payment | Any | Total payment amount |

      | Pre-authorised payment | `authorisation_started` | New amount being
      authorised (during increment processing) |

      | Pre-authorised payment | `authorised` | Currently authorised amount
      (equals `authorised_amount`) |


      :::info

      For pre-authorised payments, see the `authorised_amount` field for
      tracking the currently authorised amount separately.

      :::
    examples:
      default:
        value: 600
  9ebf295:
    type: string
    description: The status of the payment.
    enum:
      - pending
      - authentication_challenge
      - authentication_verified
      - authorisation_started
      - authorisation_passed
      - authorised
      - capture_started
      - captured
      - refund_validated
      - refund_started
      - cancellation_started
      - declining
      - completing
      - cancelling
      - failing
      - completed
      - declined
      - soft_declined
      - cancelled
      - failed
  67d79e0:
    type: string
    description: >-
      The reason for a `failed` or `declined` payment.


      A failed or declined payment can result from multiple reasons. To learn
      more, check our [failure
      reasons](/docs/guides/merchant/reference/error-codes/decline-reasons).
    enum:
      - 3ds_challenge_abandoned
      - 3ds_challenge_failed_manually
      - cardholder_name_missing
      - customer_challenge_abandoned
      - customer_challenge_failed
      - customer_name_mismatch
      - do_not_honour
      - expired_card
      - high_risk
      - insufficient_funds
      - invalid_address
      - invalid_amount
      - invalid_card
      - invalid_country
      - invalid_cvv
      - invalid_email
      - invalid_expiry
      - invalid_merchant
      - invalid_phone
      - invalid_pin
      - issuer_not_available
      - pick_up_card
      - rejected_by_customer
      - restricted_card
      - suspected_fraud
      - technical_error
      - transaction_not_allowed_for_cardholder
      - unknown_card
      - withdrawal_limit_exceeded
  faf3b7e:
    type: object
    description: >-
      Details about the authentication challenge that should be performed to
      complete the authentication process. For more information about Revolut's
      3DS solution, see: [3D Secure
      overview](/docs/guides/merchant/reference/3d-secure).


      Only returned if the payment's state is `authentication_challenge`.
    discriminator:
      propertyName: type
      mapping:
        three_ds: ./Three-Ds.yaml
        three_ds_fingerprint: ./Three-Ds-Fingerprint.yaml
    oneOf:
      - $ref: "#/x-ext/35cad8b"
      - $ref: "#/x-ext/2d92828"
  c7c0e23:
    properties:
      type:
        type: string
        enum:
          - card
          - revolut_pay
        description: The type of payment method used to pay for the order.
      brand:
        type: string
        description: The type of the card.
      last_four:
        type: string
        description: The last four digits of the card number.
      id:
        type: string
        format: uuid
        description: |-
          ID of the saved payment method.

          :::note
          The `id` parameter is only returned if the payment method is saved.
          :::
    required:
      - type
  8de5ed9:
    type: string
    format: uuid
    description: Permanent payout ID used for payouts operations.
  842508a:
    type: string
    enum:
      - processing
      - completed
      - failed
    description: The state of the payout.
  09d73a0:
    type: string
    enum:
      - current_pocket
      - external_beneficiary
    description: >-
      The destination of the payout funds when a merchant initiates a withdrawal
      from their merchant account.


      | Destination type | Description |

      | ---------------- | ----------- |

      | `current_pocket` | The funds were moved from the merchant account to the
      business account within the platform. This indicates an **internal
      transfer**, allowing the merchant to access the funds within their own
      business account. |

      | `external_beneficiary` | The funds were transferred to an external bank
      account or beneficiary outside the platform. This indicates a **transfer
      to an external account**, enabling the merchant to withdraw funds to
      external financial institutions. |
  05718b6:
    type: integer
    minimum: 1
    description: The total amount of the payout in minor currency units. For
      example, `7034` represents €70.34.
  61bd489:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/13f2186"
    get:
      summary: Retrieve a payout list
      operationId: retrievePayoutList
      description: >-
        Retrieve all the payouts you made from your Merchant account. You can
        also use the query parameters for:

          | Filtering | Pagination |
          | --------- | ---------- |
          | Filter the orders that you want to retrieve, for example, only retrieve the orders that have a specific email. <br/><br/>Parameters used for filtering:<br/><ul><li>`from_created_date`</li><li>`to_created_date`</li><li>`currency`</li><li>`state`</li></ul> | View the orders without loading all of them at once, for example, return a specified number of orders per page. <br/><br/>Parameters used for pagination: <br/><ul><li>`limit`</li></ul> |
      parameters:
        - name: currency
          in: query
          schema:
            type: string
            minLength: 3
            maxLength: 3
          description: |-
            [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.

            :::info
            For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
            :::
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 500
          description: The maximum number of payouts returned per page. Used for
            **pagination**.
        - name: from_created_date
          in: query
          schema:
            type: string
            format: date-time
          description: >-
            Retrieve all payouts with a `created_date` ≥ `from_created_date`.
            Used for **filtering**.


            Use the [ISO date format](https://en.wikipedia.org/wiki/ISO_8601):
            `yyyy-MM-ddTHH:mm:ss[.SSSSSS]Z`. For example,
            `2021-02-10T16:59:50.886826Z`.
        - name: to_created_date
          in: query
          schema:
            type: string
            format: date-time
          description: >-
            Retrieve all payouts with a `created_date` ≤ `to_created_date`. Used
            for **filtering**.


            Use the [ISO date format](https://en.wikipedia.org/wiki/ISO_8601):
            `yyyy-MM-ddTHH:mm:ss[.SSSSSS]Z`. For example,
            `2021-02-10T16:59:50.886826Z`.
        - name: state
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - processing
                - completed
                - failed
          style: form
          explode: true
          description: |-
            Retrieve all payouts with specific states. You can pass several states. Used for **filtering**.

            If multiple states are selected, for example `completed` and `processing`, payouts with either of the selected values are returned. See this example of such a request URL: 

            ```curl
            https://merchant.revolut.com/api/payouts?state=completed&state=processing
            ```

            The parameter is case sensitive.
      responses:
        "201":
          description: Payouts retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/x-ext/fdb8216"
              examples:
                default:
                  value:
                    - id: a830020e-090c-4717-836d-37941a27ad12
                      state: completed
                      created_at: 2024-02-27T00:16:39.079285Z
                      destination_type: current_pocket
                      amount: 50000
                      currency: GBP
                    - id: 66ffee42-7c4a-a15c-9a47-5dc67150386f
                      state: processing
                      created_at: 2024-02-26T17:16:39.079285Z
                      destination_type: external_beneficiary
                      amount: 10000
                      currency: GBP
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: bad_request
                    message: Could not parse JSON
                    timestamp: 1721049596461
          headers: {}
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: unauthenticated
                    message: Authentication failed
                    timestamp: 1721049596461
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
      security:
        - Api-Key: []
      tags:
        - Payouts
  82ecd06:
    type: object
    description: >-
      Filtering parameters to be applied to the report.


      :::note

      For `settlement_report` and `custom_report`, `from` and `to` are evaluated
      against the transaction `created_date`, not the original payment-start
      timeframe or the `payment_created_date` and `payment_captured_date`
      columns.

      :::
    properties:
      from:
        $ref: "#/x-ext/3104eb3"
      to:
        $ref: "#/x-ext/3b5796b"
      entity_types:
        $ref: "#/x-ext/3dfaa9a"
      entity_states:
        $ref: "#/x-ext/dab0a46"
      currency:
        $ref: "#/x-ext/aacd9d1"
      location_id:
        $ref: "#/x-ext/4fa5d34"
    required:
      - from
      - to
  0abca0c:
    type: string
    enum:
      - csv
    description: Format of the generated report file.
    examples:
      default:
        value: csv
  34b6874:
    type: string
    description: >-
      Type of the report.

        | Report type | Description |
        | -------------- | ----------- |
        | `settlement_report` | All settled transactions associated with a Merchant account, with a configurable set of columns. |
        | `custom_report` | Settled and processing transactions associated with a Merchant account, with a configurable set of columns. |
        | `payments_report` | Payments report provides details of all payments associated with a Merchant account, including failed and declined payments. Supports filtering by `from` and `to` creation timestamps, and optionally by `entity_states`. |
        | `payout_statement_report`    | Payout statement Reports provide a detailed breakdown of all transactions contributing to a specific payout amount. It requires the additional parameter `filter.payout_id`, which should be obtained from the payout ID retrieved via the [payout list endpoint](/docs/api/merchant#retrieve-payout-list) or from [webhook events](/docs/api/merchant#create-webhook#callbacks). |
        | `icpp_fee_breakdown_report`  | IC++ fee breakdown reports provide a detailed breakdown of fees for each IC++ transaction related to a payout. It requires the additional parameter `filter.icpp_charge_id`, which should be obtained from the `related_icpp_charge_id` column in the Payout statement report. A separate report should be generated for each IC++ transaction. |
    enum:
      - settlement_report
      - custom_report
      - payments_report
      - payout_statement_report
      - icpp_fee_breakdown_report
    examples:
      default:
        value: settlement_report
  96af67e:
    type: object
    description: Filtering parameters to be applied to the report.
    properties:
      payout_id:
        $ref: "#/x-ext/8de5ed9"
    required:
      - payout_id
  e740564:
    type: string
    format: uri
    pattern: ^https?:\/{2}.+/gi
    maxLength: 2000
    description: >-
      Your webhook's URL to which event notifications will be sent. 


      Must be a valid HTTP or HTTPS URL, capable of receiving `POST` requests.


      :::warning

      Restrictions:

      - Must be a valid URI as defined by [RFC
      3986](https://datatracker.ietf.org/doc/html/rfc3986)

      - URI scheme is required and must be either `http` or `https`

      - URI host is required and cannot be `localhost` or an IP address

      - Max length: `2000`

      - Reserved or invalid characters must be percent-encoded (for example, use
      `%20` instead of a space)

      :::
  a725038:
    type: array
    description: >-
      List of event types that the webhook is configured to listen to.


      Each event is related to status changes of a specific object in the
      Merchant API:

        | Object | Event types |
        | --------- | ----------- |
        | `Order`   | <ul> <li>`ORDER_COMPLETED`</li> <li>`ORDER_AUTHORISED`</li> <li>`ORDER_CANCELLED`</li> <li>`ORDER_FAILED`</li> <li>`ORDER_INCREMENTAL_AUTHORISATION_AUTHORISED`</li> <li>`ORDER_INCREMENTAL_AUTHORISATION_DECLINED`</li> <li>`ORDER_INCREMENTAL_AUTHORISATION_FAILED`</li> </ul> |
        | `Payment` | <ul> <li>`ORDER_PAYMENT_AUTHENTICATION_CHALLENGED`</li> <li>`ORDER_PAYMENT_AUTHENTICATED`</li> <li>`ORDER_PAYMENT_DECLINED`</li> <li>`ORDER_PAYMENT_FAILED`</li> </ul> |
        | `Subscription`  | <ul> <li>`SUBSCRIPTION_INITIATED`</li> <li>`SUBSCRIPTION_FINISHED`</li> <li>`SUBSCRIPTION_CANCELLED`</li> <li>`SUBSCRIPTION_OVERDUE`</li></ul> |
        | `Payout`  | <ul> <li>`PAYOUT_INITIATED`</li> <li>`PAYOUT_COMPLETED`</li> <li>`PAYOUT_FAILED`</li> </ul> |
        | `Dispute`  | <ul> <li>`DISPUTE_ACTION_REQUIRED`</li> <li>`DISPUTE_UNDER_REVIEW`</li> <li>`DISPUTE_WON`</li> <li>`DISPUTE_LOST`</li></ul> |
    items:
      type: string
      description: The available event types your can listen to.
      enum:
        - ORDER_COMPLETED
        - ORDER_AUTHORISED
        - ORDER_CANCELLED
        - ORDER_FAILED
        - ORDER_INCREMENTAL_AUTHORISATION_AUTHORISED
        - ORDER_INCREMENTAL_AUTHORISATION_DECLINED
        - ORDER_INCREMENTAL_AUTHORISATION_FAILED
        - ORDER_PAYMENT_AUTHENTICATION_CHALLENGED
        - ORDER_PAYMENT_AUTHENTICATED
        - ORDER_PAYMENT_DECLINED
        - ORDER_PAYMENT_FAILED
        - SUBSCRIPTION_INITIATED
        - SUBSCRIPTION_FINISHED
        - SUBSCRIPTION_CANCELLED
        - SUBSCRIPTION_OVERDUE
        - PAYOUT_INITIATED
        - PAYOUT_COMPLETED
        - PAYOUT_FAILED
        - DISPUTE_ACTION_REQUIRED
        - DISPUTE_UNDER_REVIEW
        - DISPUTE_WON
        - DISPUTE_LOST
    minItems: 1
  dd0635b:
    type: string
    format: uuid
    description: The ID of the webhook.
  48d07ca:
    type: string
    description: The signing secret for the webhook. Use it to verify the signature
      for the webhook request's payload.
  7acd6e0:
    type: object
    properties:
      id:
        $ref: "#/x-ext/38a61e6"
      name:
        $ref: "#/x-ext/c1e66bb"
      type:
        $ref: "#/x-ext/fc3b5f1"
      details:
        $ref: "#/x-ext/7f31e02"
    required:
      - id
      - name
      - type
      - details
  0cc5e9d:
    title: Location
    type: object
    properties:
      id:
        $ref: "#/x-ext/38a61e6"
      name:
        $ref: "#/x-ext/c1e66bb"
      type:
        $ref: "#/x-ext/fc3b5f1"
      details:
        $ref: "#/x-ext/874157f"
    required:
      - id
      - name
      - type
      - details
  5d4dca2:
    title: Location
    type: object
    description: Location object represents merchant locations depending on type.
    oneOf:
      - $ref: "#/x-ext/7acd6e0"
      - $ref: "#/x-ext/0cc5e9d"
    discriminator:
      propertyName: type
      mapping:
        online: ./Location-Online.yaml
        physical: ./Location-Physical.yaml
  a777633:
    title: Terminal operation mode
    type: string
    description: >-
      The operation mode of the terminal.

        | Value | Description |
      |-------|-------------|

      | `pos` | Returns only terminals in Pay at Counter mode |

      | `payment_acceptance` | Returns only terminals in standard checkout mode
      |
    enum:
      - pos
      - payment_acceptance
  193a752:
    name: operation_mode
    in: query
    required: false
    explode: true
    description: >-
      Filter terminals by operation mode.


      | Value | Description |

      |-------|-------------|

      | `pos` | Returns only terminals in Pay at Counter mode |

      | `payment_acceptance` | Returns only terminals in standard checkout mode
      |
    schema:
      $ref: "#/x-ext/a777633"
  021590b:
    title: Payment Intent ID
    type: string
    format: uuid
    description: The unique identifier of the payment intent.
  826a913:
    type: string
    description: >-
      The current state of the payment intent.


      | State | Description |

      |-------|-------------|

      | `pending` | Payment intent created and sent to terminal, customer has
      not yet started interacting |

      | `processing` | Customer is actively interacting with the terminal (e.g.,
      inserting card, entering PIN) |

      | `completed` | Payment authorization is complete, includes a `payment_id`
      in the response |

      | `cancelled` | Payment intent was cancelled (by system or customer) |

      | `failed` | Payment intent failed due to technical issues (timeout,
      terminal unavailable, network error) |
    enum:
      - pending
      - processing
      - completed
      - cancelled
      - failed
  6b77b6c:
    title: Terminal ID
    type: string
    format: uuid
    description: The unique identifier of the terminal.
  9730fdd:
    title: Payment Intent amount
    type: integer
    description: >-
      The payment amount expressed in minor currency units, according to the
      [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217). For example,
      `7034` in `EUR` corresponds to €70.34.


      :::info

      Conversion between major and minor units varies by currency. For instance,
      `100` minor units equal £1.00 in `GBP`, whereas in `ISK` they represent
      100 units. For more details, see the [ISO 4217
      standard](https://en.wikipedia.org/wiki/ISO_4217).

      :::
  a0c2d2d:
    title: Payment Intent creation
    type: object
    description: Request body for creating a payment intent to push to a terminal.
    properties:
      amount:
        $ref: "#/x-ext/9730fdd"
      terminal_id:
        $ref: "#/x-ext/6b77b6c"
    required:
      - amount
      - terminal_id
  3fb6b5d:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/a200791"
      - $ref: "#/x-ext/6ebce25"
    post:
      summary: Create a payment intent
      operationId: createPaymentIntent
      description: |-
        Create a payment intent to push a payment request to a specific Revolut Terminal device.

        This endpoint is used in push payments to Revolut Terminal integration, where a POS system sends payment requests to physical terminal devices. The terminal must be in Pay at Counter mode and assigned to the same location as the order.

        **Requirements:**
        - Order must be created with `channel: "pos"` and include a `location_id`
        - Terminal must be online, in `pos` operation mode, and assigned to the same location
        - Amount must match the order amount

        **What happens next:**
        - The payment request appears on the Revolut Terminal screen
        - Customer presents their card or device to complete payment
        - You should poll the payment intent status until it reaches a final state (`completed`, `cancelled`, or `failed`)
        - When the payment intent reaches `completed` state, use the returned `payment_id` to retrieve the final payment status

        :::info
        For the complete push payments flow, see: [Push payments to Revolut Terminal](/docs/guides/merchant/accept-payments/in-person-payments/terminal/push-payments).
        :::
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/x-ext/a0c2d2d"
            examples:
              create_payment_intent:
                $ref: "#/x-ext/bdb9bd1"
      responses:
        "201":
          description: Payment intent created
          content:
            application/json:
              schema:
                $ref: "#/x-ext/3375bfc"
              examples:
                payment_intent_pending:
                  $ref: "#/x-ext/a5e454b"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Payment intents
  7f3eb22:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/a200791"
      - $ref: "#/x-ext/c639151"
    get:
      summary: Retrieve a payment intent
      operationId: retrievePaymentIntent
      description: |-
        Retrieve the current state and details of a payment intent.

        This endpoint is used to poll the payment intent status after pushing a payment request to a Revolut Terminal. You should poll this endpoint repeatedly until the payment intent reaches a final state.

        **Payment intent states:**

        | State | Description |
        |-------|-------------|
        | `pending` | Payment intent created and sent to terminal, customer has not yet started interacting |
        | `processing` | Customer is actively interacting with the terminal (e.g., inserting card, entering PIN) |
        | `completed` | Payment authorisation is complete, response includes a `payment_id` that you should use to [retrieve the final payment status](/docs/api/merchant#retrieve-payment-details) |
        | `cancelled` | Payment intent was cancelled (by your system or by the customer on the terminal) |
        | `failed` | Payment intent failed due to technical issues (e.g., timeout, terminal became unavailable) |

        :::tip [Polling strategy]
        - Poll every second while the state is `pending` or `processing`
        - Set a reasonable timeout (e.g., 60 seconds) to handle cases where the customer abandons the payment
        :::

        :::info
        For the complete push payments flow, see: [Push payments to Revolut Terminal](/docs/guides/merchant/accept-payments/in-person-payments/terminal/push-payments).
        :::
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/3375bfc"
              examples:
                payment_intent_pending:
                  $ref: "#/x-ext/a5e454b"
                payment_intent_processing:
                  $ref: "#/x-ext/693f7fa"
                payment_intent_completed:
                  $ref: "#/x-ext/1934f11"
                payment_intent_cancelled:
                  $ref: "#/x-ext/3a33638"
                payment_intent_failed:
                  $ref: "#/x-ext/59d80c8"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Payment intents
  0b50233:
    type: string
    description: The full name of the customer.
  e3f9143:
    type: string
    description: The phone number of the customer in [E.164
      format](https://en.wikipedia.org/wiki/E.164).
  7c3734e:
    type: string
    format: email
    description: The email address of the customer.
  9a48b63:
    type: string
    format: uri
    pattern: ^https?:\/{2}.+/gi
    maxLength: 2000
    description: >-
      The URL of the order stored in the merchant's order management system.


      This URL will be included in the order confirmation email for payments
      made via Revolut Pay. If specified, this URL will override the default
      link to the merchant's **Business website** configured in the Revolut
      Business account.


      :::warning

      Restrictions:

      - Must be a valid URI as defined by [RFC
      3986](https://datatracker.ietf.org/doc/html/rfc3986)

      - URI scheme is required and must be either `http` or `https`

      - URI host is required and cannot be `localhost` or an IP address

      - Max length: `2000`

      - Reserved or invalid characters must be percent-encoded (for example, use
      `%20` instead of a space)

      :::
  a0e71d2:
    type: object
    properties:
      name:
        type: string
        maxLength: 250
        description: Name of the line item.
      type:
        type: string
        enum:
          - physical
          - service
        description: Type of the line item.
      quantity:
        $ref: "#/x-ext/990fbe0"
      unit_price_amount:
        type: integer
        format: int64
        minimum: 0
        description: The unit price of the line item.
      total_amount:
        type: integer
        format: int64
        description: The total amount to be paid for the line item, including taxes and
          discounts.
      external_id:
        type: string
        maxLength: 250
        description: Unique identifier of line item in the merchant's system.
      discounts:
        type: array
        maxItems: 50
        description: A list of discounts applied to the line item. Each discount should
          be subtracted from the total amount payable for the item.
        items:
          $ref: "#/x-ext/e7c4087"
      taxes:
        type: array
        maxItems: 50
        description: A list of taxes applied to the line item. Each tax should be added
          to the total amount payable for the item.
        items:
          $ref: "#/x-ext/0dd3cd4"
      image_urls:
        type: array
        maxItems: 50
        description: A list of URLs pointing to images related to the line item. These
          images can provide visual details or representations of the item.
        items:
          $ref: "#/x-ext/daab7f0"
      description:
        type: string
        maxLength: 1024
        description: Description of the line item.
      url:
        type: string
        format: uri
        pattern: ^https?:\/{2}.+/gi
        maxLength: 2000
        description: >-
          An HTTP/HTTPS URL that links to more information about the line item,
          such as a product page or details.


          :::warning

          Restrictions:

          - Must be a valid URI as defined by [RFC
          3986](https://datatracker.ietf.org/doc/html/rfc3986)

          - URI scheme is required and must be either `http` or `https`

          - URI host is required and cannot be `localhost` or an IP address

          - Max length: `2000`

          - Reserved or invalid characters must be percent-encoded (for example,
          use `%20` instead of a space)

          :::
    required:
      - name
      - unit_price_amount
      - total_amount
      - quantity
      - type
  2bc003b:
    type: object
    description: >-
      Represents a single incremental authorisation attempt on an order.


      The `incremental_authorisations` array tracks all increment attempts
      (successful and failed) in chronological order.
    properties:
      new_amount:
        type: integer
        description: The new total amount requested in this increment (in minor units).
        examples:
          - 600
      old_amount:
        type: integer
        description: The previously authorised amount before this increment (in minor
          units).
        examples:
          - 500
      state:
        type: string
        enum:
          - pending
          - processing
          - authorised
          - declined
          - failed
        description: >-
          The state of this incremental authorization attempt.


          | State | Description |

          |-------|-------------|

          | `pending` | Increment registered in system, not yet submitted to
          card network |

          | `processing` | Increment is being processed by card network |

          | `authorised` | Increment was successfully authorised |

          | `declined` | Increment was declined by card issuer |

          | `failed` | Increment failed due to technical error (not an issuer
          decline) |
      reference:
        $ref: "#/x-ext/a7167a9"
      line_items:
        type: array
        description: >-
          Line items associated with this increment (if provided).


          :::note

          If the increment is successful, these line items will override the
          existing order line items.

          :::
        items:
          $ref: "#/x-ext/a0e71d2"
      reason:
        type: string
        description: |-
          Reason why increment was declined or failed.

          :::note
          Only present when `state` is `declined` or `failed`.
          :::
        examples:
          - insufficient_funds
  a869377:
    type: array
    description: |-
      History of incremental authorisation attempts for this order.

      Only present for orders with `authorisation_type: pre_authorisation`.

      Contains all increment attempts in chronological order.
    items:
      $ref: "#/x-ext/2bc003b"
  f555917:
    type: string
    description: The reason for a `failed` or `declined` payment, sent by the
      financial institution processing the payment.
  2df9c77:
    type: string
    format: date-time
    description: The date and time the payment was created.
  a450668:
    type: string
    format: date-time
    description: The date and time the payment was last updated.
  "8038e80":
    type: integer
    description: >-
      The currently authorised amount for this payment (in minor units).


      For pre-authorised payments with incremental authorization:

      - Initially equals the `amount` field

      - Remains unchanged during increment processing

      - Updates to new amount upon successful increment

      - Remains at original amount if increment is declined


      For standard payments, this field may not be present or will equal the
      `amount` field.
    examples:
      default:
        value: 600
  be93062:
    type: string
    description: |-
      The currency of the settled payment. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.

      :::info
      For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
      :::
  ff17c84:
    type: integer
    description: The amount of the settled payment (minor currency unit). For
      example, `7034` stands for €70.34.
  71cc49f:
    type: object
    description: |-
      Object containing details of a SEPA Direct Debit payment.

      :::info
      For more information, see: [SEPA Direct Debit server-to-server integration](/docs/guides/merchant/accept-payments/payment-methods/sepa-direct-debit/server-to-server)
      :::
    properties:
      id:
        type: string
        format: uuid
        description: >-
          ID of the saved payment method.


          :::note

          The `id` parameter is only returned when the payment method is saved
          for the merchant.

          :::
      type:
        $ref: "#/x-ext/a32ab53"
      debtor_iban_last_four:
        $ref: "#/x-ext/b4be48a"
      debtor_name:
        $ref: "#/x-ext/910c00d"
      mandate_reference:
        $ref: "#/x-ext/ff0c6e3"
    required:
      - type
  24b2457:
    type: string
    description: |-
      The risk level of the card.

      If the risk level is `high`, the payment might be declined.
    enum:
      - low
      - high
  b19be60:
    title: Payer
    type: object
    description: >-
      The person who made the payment. This object is present when an email or
      phone number is provided during the payment flow.


      Capturing payer details lets you identify exactly who authorised the
      charge, reach the right person for receipts or refund queries, and support
      compliance or fraud-review workflows where the paying identity matters.
    properties:
      email:
        $ref: "#/x-ext/7c3734e"
        description: The email of the person who made the payment.
      phone:
        $ref: "#/x-ext/e3f9143"
        description: The phone number of the payer in [E.164
          format](https://en.wikipedia.org/wiki/E.164).
  a263f7b:
    title: Payment-Method
    type: object
    description: The details of the payment method used to make the payment.
    properties:
      id:
        type: string
        description: The ID of the payment method. This value is present only if the
          payment method was previously saved.
        format: uuid
      type:
        type: string
        description: The type of the payment.
        enum:
          - CARD
          - REVOLUT
      card:
        type: object
        description: The details of the card. Only present for payments with
          `payment_method.type` = `CARD`.
        properties:
          card_brand:
            type: string
            description: The type of the card.
            enum:
              - VISA
              - MASTERCARD
          funding:
            type: string
            description: The type of card funding.
            enum:
              - CREDIT
              - DEBIT
              - PREPAID
          card_country:
            type: string
            description: The country where the card was issued.
          card_bin:
            type: string
            description: The BIN of the card.
            minLength: 6
            maxLength: 6
          card_last_four:
            type: string
            description: The last four digits of the card.
            minLength: 4
            maxLength: 4
          card_expiry:
            type: string
            description: The expiry date of the card in the format of MM/YY.
          cardholder_name:
            type: string
            description: The name of the cardholder.
          checks:
            type: object
            description: The details of the check for card payment. Only for orders with
              successful payments.
            properties:
              three_ds:
                type: object
                description: The details of the 3D Secure check. Only for orders with successful
                  payments.
                properties:
                  state:
                    type: string
                    description: The result of 3D Secure check.
                    enum:
                      - VERIFIED
                      - FAILED
                      - CHALLENGE
                  version:
                    type: integer
                    description: The 3D Secure version.
              cvv_verification:
                type: string
                description: >-
                  The result of CVV verification.


                  | Verification result | Description | 

                  | ------------------- | ----------- |

                  | `MATCH` | Provided CVV matches the card's CVV |

                  | `NOT_MATCH` | Provided CVV does not match the card's CVV |

                  | `INCORRECT` | Provided CVV format is incorrect for this type
                  of card |

                  | `NOT_PROCESSED` | CVV verification was not performed |
                enum:
                  - MATCH
                  - NOT_MATCH
                  - INCORRECT
                  - NOT_PROCESSED
              address:
                type: string
                description: The result of address verification.
                enum:
                  - MATCH
                  - NOT_MATCH
                  - N_A
                  - INVALID
              postcode:
                type: string
                description: The result of postcode verification.
                enum:
                  - MATCH
                  - NOT_MATCH
                  - N_A
                  - INVALID
              cardholder:
                type: string
                description: The result of cardholder verification.
                enum:
                  - MATCH
                  - NOT_MATCH
                  - N_A
                  - INVALID
  408ef27:
    title: Payment
    type: object
    description: ""
    properties:
      id:
        type: string
        description: The ID of the payment.
      state:
        type: string
        description: The state of the payment.
        enum:
          - PROCESSING
          - AUTHORISED
          - CAPTURED
          - COMPLETED
          - FAILED
          - DECLINED
          - CANCELLED
      failure_reason:
        type: string
        description: >-
          The reason for a `FAILED` or `DECLINED` payment.



          A failed or declined payment can result from multiple reasons. To
          learn

          more, check our [decline

          reasons](/docs/guides/merchant/reference/error-codes/decline-reasons).
        enum:
          - do_not_honour
          - 3ds_challenge_abandoned
          - 3ds_challenge_failed
          - 3ds_challenge_failed_manually
          - insufficient_funds
          - transaction_not_allowed_for_cardholder
          - high_risk
          - cardholder_name_missing
          - unknown_card
          - invalid_card
          - invalid_email
          - restricted_card
          - expired_card
          - rejected_by_customer
          - withdrawal_limit_exceeded
          - pick_up_card
          - invalid_amount
      created_at:
        type: string
        description: The date and time the payment was created.
        format: date-time
      updated_at:
        type: string
        description: The date and time the payment was last updated.
        format: date-time
      token:
        type: string
        description: |-
          Temporary token of the payment used to fetch the reward offer during
          checkout and link user registrations to the given offers. 


          The token is only valid for a limited time.
      amount:
        type: object
        description: The amount and currency of the payment.
        required:
          - value
          - currency
        properties:
          value:
            type: integer
            description: >-
              The amount of the payment (minor currency unit). For example,
              enter

              `7034` for €70.34 in the field.
          currency:
            type: string
            description: |-
              The currency of the payment. [ISO
              4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper
              case.


              :::info

              For more information about the supported currencies, see: [Help
              Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).

              :::
      settled_amount:
        type: object
        description: The amount and currency of the settled payment.
        properties:
          value:
            type: integer
            description: >-
              The amount of the settled payment (minor currency unit). For
              example,

              enter `7034` for €70.34 in the field.
          currency:
            type: string
            description: |-
              The currency of the settled payment. [ISO
              4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper
              case.


              :::info

              For more information about the supported currencies, see: [Help
              Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).

              :::
      payment_method:
        $ref: "#/x-ext/a263f7b"
      billing_address:
        $ref: "#/x-ext/0f194c2"
      risk_level:
        type: string
        description: |-
          The risk level of the card.

          If the risk level is `HIGH`, the payment might be declined.
        enum:
          - LOW
          - HIGH
      fees:
        type: array
        description: The details of the order fee.
        items:
          type: object
          properties:
            type:
              type: string
              description: The type of the order fee.
              enum:
                - FX
                - ACQUIRING
            amount:
              type: object
              description: The amount and currency of the payment fee.
              properties:
                value:
                  type: integer
                  description: |-
                    The amount of the payment fee (minor currency unit). For
                    example, enter `7034` for €70.34 in the field.
                currency:
                  type: string
                  description: |-
                    The currency of the payment fee. [ISO
                    4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in
                    upper case.


                    :::info

                    For more information about the supported currencies, see: [Help
                    Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).

                    :::
    required:
      - id
      - state
      - created_at
      - updated_at
      - amount
  124f69b:
    title: Order
    type: object
    description: >-
      An Order object helps you through the process of accepting payments from
      your customers.


      Create an order for every customer session or while an order is being
      created in your own system. Then, the order goes through multiple states
      using the [Revolut Checkout
      Widget](/docs/sdks/merchant-web-sdk/install-widget) to collect payments
      from your customers.
    properties:
      id:
        $ref: "#/x-ext/8ada47f"
      public_id:
        type: string
        description: |-
          Temporary ID for the order. 

          It expires when the payment is authorized.
      type:
        type: string
        description: The type of the order.
        enum:
          - PAYMENT
          - REFUND
          - CHARGEBACK
      state:
        type: string
        description: >-
          The state of the order.


          :::info

          For more information about the order lifecycle, see: [Order and
          payment lifecycle](/docs/guides/merchant/reference/order-lifecycle).

          :::
        enum:
          - PENDING
          - PROCESSING
          - AUTHORISED
          - COMPLETED
          - CANCELLED
          - FAILED
      created_at:
        type: string
        description: The date and time the order was created.
        format: date-time
      updated_at:
        type: string
        description: The date and time the order was last updated.
        format: date-time
      completed_at:
        type: string
        description: The date and time the order was completed.
        format: date-time
      description:
        $ref: "#/x-ext/a0887df"
      capture_mode:
        $ref: "#/x-ext/7adf35b"
      settlement_currency:
        $ref: "#/x-ext/4da391a"
      merchant_order_ext_ref:
        $ref: "#/x-ext/331c186"
      customer_id:
        type: string
        description: The ID of the [customer](/docs/api/merchant#tag-customers)
          associated with this order.
      email:
        type: string
        description: The email of the customer.
        format: email
      phone:
        type: string
        description: The phone number of the customer.
      full_name:
        type: string
        description: The customer's full name.
      order_amount:
        type: object
        description: The amount and currency of the order.
        required:
          - value
          - currency
        properties:
          value:
            $ref: "#/x-ext/33e2658"
          currency:
            $ref: "#/x-ext/1b2472a"
      order_outstanding_amount:
        type: object
        description: The amount and currency outstanding to be paid for this order.
        properties:
          value:
            type: integer
            description: The amount of the order (minor currency unit) that is outstanding.
              For example, enter `7034` for €70.34 in the field.
          currency:
            type: string
            description: |-
              The currency of the amount that is outstanding. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.

              :::info
              For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
              :::
      refunded_amount:
        type: object
        description: The amount and currency of the refunded order.
        properties:
          value:
            type: integer
            description: The amount of the refunded order (minor currency unit). For
              example, enter `7034` for €70.34 in the field.
          currency:
            type: string
            description: |-
              The currency of the refunded order. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.

              :::info
              For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
              :::
      shipping_address:
        $ref: "#/x-ext/0f194c2"
      payments:
        type: array
        description: The details of all the payment attempts that have been made towards
          this order (successful or unsuccessful).
        items:
          $ref: "#/x-ext/408ef27"
      related:
        type: array
        description: The details of related orders. You can use the ID of the related
          order to [Retrieve the order
          information](/docs/api/merchant#retrieve-order).
        items:
          $ref: "#/x-ext/10a5163"
      metadata:
        $ref: "#/x-ext/c146ad0"
      checkout_url:
        $ref: "#/x-ext/a571331"
      merchant_order_uri:
        $ref: "#/x-ext/a764195"
    required:
      - id
      - type
      - state
      - created_at
      - updated_at
      - order_amount
  078dd5b:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/c0cdbbb"
      - $ref: "#/x-ext/6ebce25"
    post:
      summary: Refund an order (Deprecated)
      operationId: refundOrderDeprecated
      description: >-
        Issue a refund for a completed order. This operation allows for either a
        full or partial refund, which will be processed back to the customer's
        original payment method.


        ## Operation details


        - The refund operation generates a new order with `type: REFUND`. This
        new order represents a full or partial refund of the original amount
        paid.

        - Refunds can only be initiated for orders that are in the `COMPLETED`
        state. Orders in any other state are not eligible for refunds to ensure
        transaction integrity and to prevent errors.


        :::note
          - Ensure that the order to be refunded is confirmed as `COMPLETED` before attempting a refund operation.
          - Consider using the `Idempotency-Key` header to make the refund operation idempotent, preventing duplicate refund processing in cases of multiple submissions.
        :::
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/a373882"
            examples:
              default:
                value:
                  amount: 40
                  description: Refund for damaged goods
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/124f69b"
              examples:
                refund_example:
                  summary: Refund example
                  value:
                    id: 6a1353a8-3054-40ee-ab39-97a11e4c5f2a
                    type: REFUND
                    state: COMPLETED
                    created_at: 2020-05-12T14:23:11.046526Z
                    updated_at: 2020-05-12T14:23:11.046526Z
                    completed_at: 2020-05-12T14:23:11.046526Z
                    order_amount:
                      value: 40
                      currency: GBP
                    email: customer@gmail.com
                    full_name: Example Customer
                    related:
                      - id: 4695b666-45d0-4f15-ad10-e66a84c914bf
                        type: PAYMENT
                        amount:
                          value: 100
                          currency: GBP
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "422":
          description: Insufficient funds
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorId:
                    type: string
                    description: The ID of the error. You can share this ID with Revolut support for
                      troubleshooting.
                  timestamp:
                    type: integer
                    description: The date and time the error happened.
                  code:
                    type: integer
              examples:
                example-1:
                  value:
                    errorId: 94b27660-fdda-49ec-8b85-cd46a068ade0
                    timestamp: 1601296792533
                    code: 1026
      security:
        - Api-Key: []
      tags:
        - Orders
  6b57408:
    type: object
    description: Browser environment
    properties:
      type:
        type: string
        enum:
          - browser
        description: Type of environment where the payment was made.
        examples:
          - browser
      time_zone_utc_offset:
        type: integer
        description: Defines the offset to UTC in minutes.
        examples:
          - 180
      color_depth:
        type: integer
        description: The browser's available colour depth.
        examples:
          - 32
      screen_width:
        type: integer
        description: The browser's screen width in pixels.
        examples:
          - 1920
      screen_height:
        type: integer
        description: The browser's screen height in pixels.
        examples:
          - 1080
      java_enabled:
        type: boolean
        description: Indicates if the browser has Java enabled.
        examples:
          - false
      challenge_window_width:
        type: integer
        description: Defines the width of the pop-up window where the authentication
          challenge appears.
        examples:
          - 640
      browser_url:
        type: string
        format: url
        description: The URL of the page where the payment was initiated.
        examples:
          - https://business.revolut.com
    required:
      - type
      - time_zone_utc_offset
      - color_depth
      - screen_width
      - screen_height
      - java_enabled
  7a04dee:
    description: |-
      Environment object, indicating in which environment the payment was made.

      :::warning
      Only required if `initiator: customer`.
      :::

      :::note
      Only `browser` is available at the moment.
      :::
    type: object
    discriminator:
      propertyName: type
      mapping:
        browser: ./Browser-Environment.yaml
    oneOf:
      - $ref: "#/x-ext/6b57408"
  e7ed3e3:
    type: object
    properties:
      saved_payment_method:
        type: object
        description: Object containing information about the saved payment method used
          to pay for the order.
        properties:
          type:
            type: string
            enum:
              - card
              - revolut_pay
            description: Type of saved payment method.
            examples:
              - card
          id:
            type: string
            description: Saved payment method ID.
          initiator:
            type: string
            description: >-
              Indicates who is allowed to initiate the payment. 


              :::note

              Using this endpoint, only merchant initiated payments are
              supported with Revolut Pay.

              :::
            enum:
              - customer
              - merchant
            examples:
              - customer
          environment:
            $ref: "#/x-ext/7a04dee"
        required:
          - type
          - id
          - initiator
          - environment
    required:
      - saved_payment_method
  7ddfc2b:
    properties:
      type:
        type: string
        enum:
          - card
          - revolut_pay
        description: The type of payment method used to pay for the order.
      subtype:
        type: string
        enum:
          - revolut_account
          - card
        description: Indicates whether the customer used their card or Revolut account
          via Revolut Pay.
      id:
        type: string
        format: uuid
        description: |-
          ID of the saved payment method.

          :::note
          The `id` parameter is only returned if the payment method is saved.
          :::
    required:
      - type
      - subtype
  f193828:
    properties:
      type:
        type: string
        enum:
          - card
          - revolut_pay
        description: The type of payment method used to pay for the order.
      subtype:
        type: string
        enum:
          - revolut_account
          - card
        description: Indicates whether the customer used their card or Revolut account
          via Revolut Pay.
      id:
        type: string
        format: uuid
        description: |-
          ID of the saved payment method.

          :::note
          The `id` parameter is only returned if the payment method is saved.
          :::
      brand:
        type: string
        description: The type of the card.
      last_four:
        type: string
        description: The last four digits of the card number.
    required:
      - type
      - subtype
  cc64bb8:
    discriminator:
      propertyName: subtype
      mapping:
        revolut_pay_account: ./RPay-Account.yaml
        revolut_pay_card: ./RPay-Card.yaml
    oneOf:
      - $ref: "#/x-ext/7ddfc2b"
      - $ref: "#/x-ext/f193828"
  a32ab53:
    type: string
    enum:
      - apple_pay
      - card
      - google_pay
      - revolut_pay_card
      - revolut_pay_account
      - sepa_direct_debit
    description: >-
      The type of payment method used to pay for the order.


      Available values:


      | Payment method `type` | Description |

      | --------------------- | ----------- |

      | `apple_pay` | The customer paid the order using Apple Pay. |

      | `card` | The customer paid the order using their credit or debit card. |

      | `google_pay` | The customer paid the order using Google Pay. |

      | `revolut_pay_card` | The customer paid the order via Revolut Pay using
      their credit or debit card. |

      | `revolut_pay_account` | The customer paid the order via Revolut Pay
      using their Revolut account. |

      | `sepa_direct_debit` | The customer paid the order using SEPA Direct
      Debit. |
  b4be48a:
    type: string
    description: The last four digits of the debtor's IBAN.
    minLength: 4
    maxLength: 4
  910c00d:
    type: string
    description: The full name of the debtor as provided in the mandate.
  ff0c6e3:
    type: string
    description: The unique mandate reference generated by Revolut. Include this in
      pre-debit notifications sent to your customers.
  3104eb3:
    type: string
    format: date-time
    description: >-
      This parameter specifies the start boundary for filtering report data. It
      accepts ETC/UTC date and time in [ISO 8601
      format](https://en.wikipedia.org/wiki/ISO_8601) and includes all matching
      records on or after this timestamp.


      Combined with the `to` parameter, this determines the report's timeframe,
      including all matching records between the two values.


      For example, by setting the `from` parameter to `2021-01-01T00:00:00Z`,
      the report will include matching records from the first second of January
      1, 2021, UTC, and onwards.
  3b5796b:
    type: string
    format: date-time
    description: >-
      This parameter specifies the end boundary for filtering report data. It
      accepts ETC/UTC date and time in [ISO 8601
      format](https://en.wikipedia.org/wiki/ISO_8601) and includes all matching
      records before this timestamp (exclusive).


      Combined with the `from` parameter, this determines the timeframe for the
      report, including all matching records between the two values.


      For example, setting the `to` parameter to `2021-12-31T23:59:59Z` will
      include all matching records in the report up to, but not including, the
      last second of December 31, 2021, UTC.
  3dfaa9a:
    type: array
    items:
      type: string
      enum:
        - payment
        - refund
        - dispute
    description: >-
      Select source entity families to be included in the report.


      | Value | Description |

      | ----- | ----------- |

      | `payment` | Include rows originating from payment settlement activity. |

      | `refund` | Include rows originating from refund activity. |

      | `dispute` | Include rows originating from dispute and chargeback
      activity. |


      :::note

      These values are filter input categories. They do not map 1:1 to the CSV
      `type` output column. For example, a settlement report filtered with
      `payment`, `refund`, and `dispute` can still return CSV `type` values such
      as `SETTLEMENT`, `REFUND`, `CHARGEBACK`, and `CHARGEBACK_REVERSAL`.

      :::
  dab0a46:
    type: array
    items:
      type: string
      enum:
        - completed
        - processing
        - cancelled
        - reverted
    description: >-
      Select transactions by state to be included in the report.


      | Value | Description |

      | ----- | ----------- |

      | `completed` | Include transactions that reached their final successful
      state. |

      | `processing` | Include transactions that are still being processed. |

      | `cancelled` | Include transactions that were cancelled before final
      completion. |

      | `reverted` | Include transactions that were reversed after initial
      creation. |


      If not provided, only `completed` transactions will be included in the
      report.
  aacd9d1:
    type: string
    description: |-
      Select transactions with specific currencies to include in the report. Provide [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.

      :::info
      For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
      :::
    minLength: 3
    maxLength: 3
    examples:
      default:
        value: GBP
  4fa5d34:
    type: string
    format: uuid
    description: |-
      Select transactions by location ID to be included in the report.

      :::info
      For more information, see: [Locations](/docs/api/merchant#tag-locations).
      :::        
  4aad94b:
    type: array
    items:
      type: string
      enum:
        - completed
        - failed
        - declined
        - cancelled
    description: |-
      Select payments by state to be included in the report.

      | Value | Description |
      | ----- | ----------- |
      | `completed` | Include payments that completed successfully. |
      | `failed` | Include payments that failed during processing. |
      | `declined` | Include payments rejected by the issuer or payment flow. |
      | `cancelled` | Include payments cancelled before completion. |

      If not provided, payments in all states will be included in the report.
  e6c75ed:
    type: object
    description: >-
      Filtering parameters to be applied to the report.


      :::note

      For `payments_report`, `from` and `to` are evaluated against the payment
      `created_date`. The `captured_date` column is returned data and does not
      change the filter key.

      :::
    properties:
      from:
        $ref: "#/x-ext/3104eb3"
      to:
        $ref: "#/x-ext/3b5796b"
      entity_states:
        $ref: "#/x-ext/4aad94b"
    required:
      - from
      - to
  a376209:
    type: string
    format: uuid
    description: >-
      Permanent ID of of the IC++ fee related to a payout transaction.


      This ID can be obtained from the `related_icpp_charge_id` column of a
      payout statement report.
  6eb8be8:
    type: object
    description: Filtering parameters to be applied to the report.
    properties:
      icpp_charge_id:
        $ref: "#/x-ext/a376209"
    required:
      - icpp_charge_id
  fd1b3d8:
    type: string
    description: >-
      Defaults to `ETC/UTC`. Defines the output timezone for all timestamps
      displayed in the report.


      Has no effect on `from` or `to` parameters.
    examples:
      default:
        value: Europe/London
  4d0713e:
    type: object
    description: Further options to customise the report.
    properties:
      timezone:
        $ref: "#/x-ext/fd1b3d8"
      columns:
        type: array
        items:
          type: string
          enum:
            - payment_id
            - type
            - description
            - original_payment_id
            - order_id
            - state
            - reason
            - amount
            - currency
            - surcharge_amount
            - tip_amount
            - refunded_amount
            - created_date
            - captured_date
            - merchant_order_ext_ref
            - payment_method
            - location_id
            - customer_id
            - customer_card_number
            - customer_card_country
            - customer_card_brand
            - customer_card_type
            - customer_card_category
            - customer_email
            - fee_amount
            - fee_currency
        description: >-
          Names of the columns to be included in the report.


          If the `columns` parameter is not defined in the request, all
          available columns will be included in the report. An empty array will
          return an error.


          Available columns:

            | Column name | Description |
            | ----------- | ----------- |
            | `payment_id` | Unique identifier of the payment. |
            | `type` | Category of the payment row, indicating whether the row represents a payment attempt or a refund. For the full list of returned values, see [Download report file](/docs/api/merchant#download-report-file). |
            | `description` | Description of the payment. |
            | `original_payment_id` | For refunds, the unique identifier of the original payment. |
            | `order_id` | Unique identifier of the order associated with the payment. |
            | `state` | Lifecycle state of the payment. For the full list of returned values, see [Download report file](/docs/api/merchant#download-report-file). |
            | `reason` | Reason for a failed or declined payment, for example: `Insufficient Funds`. |
            | `amount` | Total amount of the payment. |
            | `currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the payment. |
            | `surcharge_amount` | Surcharge amount applied to the payment, if any. |
            | `tip_amount` | Tip amount included in the payment, if any. |
            | `refunded_amount` | Amount refunded for the payment. |
            | `created_date` | Date and time the payment was created. |
            | `captured_date` | Date and time the payment was captured. Empty when the payment has not been captured. |
            | `merchant_order_ext_ref` | Merchant's order reference. The value of the `merchant_order_data.reference` field set when the order was created. |
            | `payment_method` | Payment method used, for example: `CARD` or `PAY_WITH_REVOLUT`. |
            | `location_id` | Unique identifier of the location where the payment was made. |
            | `customer_id` | Unique identifier of the customer. |
            | `customer_card_number` | Masked card number used for the payment. |
            | `customer_card_country` | Country of the card used for the payment, as an [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code. |
            | `customer_card_brand` | Card brand used for the payment, for example: `VISA` or `MASTERCARD_DEBIT`. |
            | `customer_card_type` | Card funding type of the card used for the payment. For the full list of returned values, see [Download report file](/docs/api/merchant#download-report-file). |
            | `customer_card_category` | Card commercial category. Values: `consumer` (personal card) and `commercial` (business or corporate card). |
            | `customer_email` | Email address of the customer. |
            | `fee_amount` | Total fee amount charged for the payment. |
            | `fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the fee. |
        examples:
          - - payment_id
            - type
            - state
            - amount
            - currency
  0782f68:
    type: object
    description: Further options to customise the report.
    properties:
      timezone:
        $ref: "#/x-ext/fd1b3d8"
      columns:
        type: array
        description: >-
          Names of the columns to include in the report.


          If not specified, all available columns are included. An empty array
          returns an error.


          To include custom order metadata, use `metadata.*` with the attribute
          name, for example `metadata.my_attribute`.


          Available columns:

            | Column name | Description |
            | ----------- | ----------- |
            | `transaction_id` | Unique identifier of the ledger transaction. Matches `transaction_id` in the settlement and payout reports. Use `order_id` to cross-reference with the payments report. |
            | `related_transaction_id` | For refund and chargeback transactions, the ledger transaction ID of the original payment. Corresponds to `original_transaction_id` in the payout report. |
            | `transaction_description` | Description of the transaction. |
            | `payout_id` | Unique identifier of the payout that this transaction contributed to. |
            | `dispute_id` | Unique identifier of the dispute associated with this transaction, if applicable. |
            | `account_id` | Unique identifier of the merchant account. |
            | `account_balance` | Account balance at the time of the transaction. |
            | `order_id` | Unique identifier of the order. Use to cross-reference with the payments or payout reports. |
            | `original_order_id` | For refunds and chargebacks, the order ID of the original payment. For settlement transactions, matches `order_id`. |
            | `original_order_ext_ref` | Merchant's order identifier of the original order for external reference. |
            | `order_description` | Description of the order. |
            | `order_channel` | Channel through which the order was created. |
            | `order_customer_note` | Note added by the customer at the time of the order. |
            | `order_tip_amount` | Tip amount set at the order level. |
            | `order_created_by` | Identifier of the user who created the order. |
            | `payment_initiated_by` | Identifier of who initiated the payment. |
            | `order_line_items` | Line items included in the order, if any. |
            | `payout_reference` | Reference of the payout transfer associated with the transaction. |
            | `invoice_reference` | Invoice reference associated with the order, if any. |
            | `started_date` | Start timestamp shown on the row. For payment rows, this is the payment start timestamp. For non-payment rows such as refunds and chargebacks, this is the transaction start timestamp. Separate from the report filter timeframe. |
            | `created_date` | Date and time the order was created. |
            | `updated_date` | Last update timestamp shown on the row. For payment rows, this is the payment update timestamp. For non-payment rows such as refunds and chargebacks, this is the transaction update timestamp. Separate from the report filter timeframe. |
            | `completed_date` | Completion timestamp shown on the row. For payment rows, this is the payment completion timestamp. For non-payment rows such as refunds and chargebacks, this is the transaction completion timestamp. Separate from the report filter timeframe. |
            | `payment_created_date` | Payment authorisation or creation timestamp for rows linked to a payment. Empty for refunds and non-payment-related rows where no payment timestamp applies. This is returned data, not the report filter key. |
            | `payment_captured_date` | Payment capture timestamp for rows linked to a captured payment. Empty for refunds, non-payment-related rows, or payments not captured. This is returned data, not the report filter key. |
            | `type` | Category of the reported transaction row, indicating what kind of balance-affecting event the row represents. For the full list of returned values, see [Download report file](/docs/api/merchant#download-report-file). |
            | `legacy_type` | Legacy type value for backwards compatibility. |
            | `state` | State of the transaction. |
            | `description` | Description of the transaction. |
            | `merchant_order_ext_ref` | Merchant's order reference. The value of the `merchant_order_data.reference` field set when the order was created. |
            | `customer_id` | Unique identifier of the customer. |
            | `amount` | Total amount of the order. |
            | `currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the order. |
            | `settlement_amount` | Total amount settled on the merchant's account. |
            | `settlement_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the settled amount. |
            | `exchange_rate` | Exchange rate applied if currency conversion occurred. |
            | `refunded_amount` | Amount refunded for the order. |
            | `statement_descriptor` | Statement descriptor shown on the customer's bank statement. |
            | `tip_amount` | Tip amount included in the transaction. |
            | `terminal_hardware_id` | Identifier of the card reader hardware used, for in-person payments. |
            | `customer_name` | Name of the customer. |
            | `customer_email` | Email address of the customer. |
            | `customer_card_number` | Masked card number used for the payment. |
            | `customer_card_brand` | Card brand used for the payment. Derived from BIN data. Example values: `VISA`, `MASTERCARD`, `MASTERCARD_DEBIT`, `MAESTRO`, `AMEX`, `DINERS`, `DISCOVER`, `JCB`. |
            | `customer_card_type` | Card funding type of the card used for the payment, for example debit, credit, prepaid, deferred debit, or charge. For the full list of returned values, see [Download report file](/docs/api/merchant#download-report-file). |
            | `customer_card_category` | Card commercial category. Values: `consumer` (personal card) and `commercial` (business or corporate card). |
            | `payment_method` | Payment method the customer used to pay for the order. |
            | `fee_amount` | Total fee amount applied to the order, aggregated across all fee components (acquiring markup + interchange + scheme fees). |
            | `fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the total fee. |
            | `processing_fee_amount` | Acquiring markup fee only — a subset of `fee_amount`. Represents Revolut's service fee, excluding interchange and scheme fees. |
            | `processing_fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the acquiring markup fee. |
            | `fx_fee_amount` | Foreign exchange fee amount, if applicable. |
            | `fx_fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the FX fee. |
            | `browser_url` | The URL where the customer initiated the payment. |
            | `beneficiary_name` | Name of the beneficiary, for bank transfer payments. |
            | `beneficiary_account_number` | Account number of the beneficiary, for bank transfer payments. |
            | `location_id` | Unique identifier of the location related to the transaction. |
            | `location_name` | Name of the location related to the transaction. |
            | `surcharge_amount` | Surcharge amount applied to the transaction. Omitted when no surcharge applies. |
            | `order_surcharge_amount` | Surcharge amount set at the order level. |
            | `order_custom_field_name` | Name of a custom field set on the order. |
            | `order_custom_field_value` | Value of a custom field set on the order. |
            | `offline_payment_state` | State of an offline payment, if applicable. |
            | `order_authorisation_type` | Authorisation type of the order, for example `FULL` or `PRE_AUTH`. |
            | `metadata.*` | Custom order metadata. Replace `*` with the attribute name, for example `metadata.my_attribute`. |
        items:
          type: string
          enum:
            - transaction_id
            - related_transaction_id
            - transaction_description
            - payout_id
            - dispute_id
            - account_id
            - account_balance
            - order_id
            - original_order_id
            - original_order_ext_ref
            - order_description
            - order_channel
            - order_customer_note
            - order_tip_amount
            - order_created_by
            - payment_initiated_by
            - order_line_items
            - payout_reference
            - invoice_reference
            - started_date
            - created_date
            - updated_date
            - completed_date
            - payment_created_date
            - payment_captured_date
            - type
            - legacy_type
            - state
            - description
            - merchant_order_ext_ref
            - customer_id
            - amount
            - currency
            - settlement_amount
            - settlement_currency
            - exchange_rate
            - refunded_amount
            - statement_descriptor
            - tip_amount
            - terminal_hardware_id
            - customer_name
            - customer_email
            - customer_card_number
            - customer_card_brand
            - customer_card_type
            - customer_card_category
            - payment_method
            - fee_amount
            - fee_currency
            - processing_fee_amount
            - processing_fee_currency
            - fx_fee_amount
            - fx_fee_currency
            - browser_url
            - beneficiary_name
            - beneficiary_account_number
            - location_id
            - location_name
            - surcharge_amount
            - order_surcharge_amount
            - order_custom_field_name
            - order_custom_field_value
            - offline_payment_state
            - order_authorisation_type
            - metadata.*
        examples:
          - - transaction_id
            - amount
            - currency
            - metadata.my_attribute
  7cff6b1:
    type: object
    description: Further options to customise the report.
    properties:
      timezone:
        $ref: "#/x-ext/fd1b3d8"
      columns:
        type: array
        items:
          type: string
          enum:
            - created_date
            - completed_date
            - payout_affected_date
            - affected_payout_amount
            - transaction_id
            - order_id
            - dispute_id
            - merchant_order_reference
            - type
            - related_icpp_charge_id
            - transaction_amount
            - transaction_currency
            - billing_amount
            - billing_currency
            - state
            - original_transaction_id
            - original_transaction_amount
            - original_transaction_currency
            - original_order_id
            - original_order_channel
            - original_merchant_order_reference
            - fee_amount
            - fee_currency
            - settlement_amount
            - settlement_currency
            - location_id
            - location_name
            - submerchant_id
            - payout_transfer_reference
            - payout_total_amount
            - payout_date
        description: >-
          Names of the columns to be included in the report.


          If the `columns` parameter is not defined in the request, all
          available columns will be included in the report. An empty array will
          return an error.


          Available columns:

            | Column name | Description |
            | ----------- | ----------- |
            | `created_date` | Date and time the transaction was created. |
            | `completed_date` | Date and time the transaction was completed. |
            | `payout_affected_date` | Date and time the payout was affected by this transaction. |
            | `affected_payout_amount` | Boolean flag indicating whether this transaction contributed to the payout amount (`true`) or not (`false`). Despite the name, this is not a monetary value. |
            | `transaction_id` | Unique identifier of the transaction. |
            | `order_id` | Unique identifier of the order associated with the transaction. |
            | `dispute_id` | Unique identifier of the dispute associated with a chargeback or chargeback reversal transaction. Empty for rows not related to a dispute. |
            | `merchant_order_reference` | Merchant's order reference. The value of the `merchant_order_data.reference` field set when the order was created. |
            | `type` | Type of the payout-related ledger event the row represents. For the full list of returned values, see [Download report file](/docs/api/merchant#download-report-file). |
            | `related_icpp_charge_id` | Unique identifier of the IC++ charge related to the transaction, if applicable. |
            | `transaction_amount` | Amount of the transaction in the transaction currency. |
            | `transaction_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the transaction. |
            | `billing_amount` | Amount of the transaction in the billing currency. |
            | `billing_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the billing amount. |
            | `state` | State of the transaction, for example: `COMPLETED`. |
            | `original_transaction_id` | Unique identifier of the original transaction. For refunds, references the transaction being refunded. |
            | `original_transaction_amount` | Amount of the original transaction. |
            | `original_transaction_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the original transaction. |
            | `original_order_id` | Unique identifier of the original order. For refunds, references the order being refunded. |
            | `original_order_channel` | Channel through which the original order was created. |
            | `original_merchant_order_reference` | Merchant's order reference for the original order. The value of the `merchant_order_data.reference` field set when the original order was created. |
            | `fee_amount` | Total fee amount charged for the transaction. |
            | `fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the fee. |
            | `settlement_amount` | Total amount settled on the merchant's account. |
            | `settlement_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the settled amount. |
            | `location_id` | Unique identifier of the location associated with the transaction. |
            | `location_name` | Name of the location associated with the transaction. |
            | `submerchant_id` | Unique identifier of the submerchant associated with the transaction. |
            | `payout_transfer_reference` | Reference of the bank transfer for this payout. This value is the same across all rows in the report, as each report covers a single payout. |
            | `payout_total_amount` | Total amount of this payout. This value is the same across all rows in the report, as each report covers a single payout. |
            | `payout_date` | Date and time the payout covered by this report was created. This value is the same across all rows in the report, as each report covers a single payout. |
        examples:
          - - transaction_id
            - type
            - transaction_amount
            - transaction_currency
  979a492:
    type: object
    description: Further options to customise the report.
    properties:
      timezone:
        $ref: "#/x-ext/fd1b3d8"
      columns:
        type: array
        items:
          type: string
          enum:
            - id
            - created_at
            - operation
            - amount
            - currency
            - settlement_amount
            - settlement_currency
            - payment_method
            - card_scheme
            - card_funding
            - order_description
            - order_merchant_external_ref
            - original_operation_id
            - acquiring_fee_amount
            - card_interchange_fee_amount
            - card_scheme_fee_amount
            - card_type
            - order_channel
            - card_country
        description: >-
          Names of the columns to be included in the report.


          If the `columns` parameter is not defined in the request, all
          available columns will be included in the report. An empty array will
          return an error.


          Available columns:

            | Column name | Description |
            | ----------- | ----------- |
            | `id` | Unique identifier of the payment. |
            | `created_at` | Date and time the payment was created. |
            | `operation` | IC++ transaction type. Values: `SALE` (payment sale), `REFUND` (refund), and `DISPUTE` (dispute-related transaction). |
            | `amount` | Transaction amount. |
            | `currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the transaction. |
            | `settlement_amount` | Amount settled on the merchant's account. |
            | `settlement_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the settled amount. |
            | `payment_method` | Payment method used for the transaction. Returns `REVOLUT_PAY` for Revolut Pay payments, or the card scheme name for card payments. |
            | `card_scheme` | Card BIN scheme. |
            | `card_funding` | Card funding type, for example: `DEBIT` or `PREPAID`. |
            | `order_description` | Description of the order. |
            | `order_merchant_external_ref` | Merchant's order reference. The value of the `merchant_order_data.reference` field set when the order was created. |
            | `original_operation_id` | Unique identifier of the related original transaction. |
            | `acquiring_fee_amount` | IC++ acquiring markup fee component. |
            | `card_interchange_fee_amount` | Interchange fee component. Omitted for Revolut Pay transactions. |
            | `card_scheme_fee_amount` | Card scheme fee component. Omitted for Revolut Pay transactions. |
            | `card_type` | Card commercial category. Values: `COMMERCIAL` (business or corporate card) and `CONSUMER` (personal card). |
            | `order_channel` | Channel through which the order was created. |
            | `card_country` | Country of the card, as an [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code. |
        examples:
          - - id
            - operation
            - acquiring_fee_amount
            - card_interchange_fee_amount
            - card_scheme_fee_amount
  a709559:
    type: object
    description: Further options to customise the report.
    properties:
      timezone:
        $ref: "#/x-ext/fd1b3d8"
      columns:
        type: array
        items:
          type: string
          enum:
            - transaction_id
            - order_id
            - original_order_id
            - started_date
            - updated_date
            - completed_date
            - payment_created_date
            - payment_captured_date
            - type
            - state
            - description
            - merchant_order_ext_ref
            - customer_id
            - amount
            - currency
            - settlement_amount
            - settlement_currency
            - payment_method
            - fee_amount
            - fee_currency
            - processing_fee_amount
            - processing_fee_currency
            - browser_url
            - location_id
        description: >-
          Names of the columns to be included in the report.


          If the `columns` parameter is not defined in the request, all
          available columns will be included in the report. An empty array will
          return an error.


          Available columns:

            | Column name | Description |
            | ----------- | ----------- |
            | `transaction_id` | Unique identifier of the ledger transaction related to an order. |
            | `order_id` | Unique identifier of the order. |
            | `original_order_id` | Unique identifier of the original order. For refunds and chargebacks, references the order being reversed. |
            | `started_date` | Start timestamp shown on the row. For payment rows, this is the payment start timestamp. For non-payment rows such as refunds and chargebacks, this is the transaction start timestamp. Separate from the report filter timeframe. |
            | `updated_date` | Last update timestamp shown on the row. For payment rows, this is the payment update timestamp. For non-payment rows such as refunds and chargebacks, this is the transaction update timestamp. Separate from the report filter timeframe. |
            | `completed_date` | Completion timestamp shown on the row. For payment rows, this is the payment completion timestamp. For non-payment rows such as refunds and chargebacks, this is the transaction completion timestamp. Separate from the report filter timeframe. |
            | `payment_created_date` | Payment authorisation or creation timestamp for rows linked to a payment. Empty for refunds and non-payment-related rows where no payment timestamp applies. This is returned data, not the report filter key. |
            | `payment_captured_date` | Payment capture timestamp for rows linked to a captured payment. Empty for refunds, non-payment-related rows, or payments not captured. This is returned data, not the report filter key. |
            | `type` | Settlement report row type. A partial-settlement is represented by separate `SETTLEMENT` and `REFUND` rows, not a dedicated type. |
            | `state` | State of the transaction. |
            | `description` | Description of the order. |
            | `merchant_order_ext_ref` | Merchant's order reference. The value of the `merchant_order_data.reference` field set when the order was created. |
            | `customer_id` | Unique identifier of the customer. |
            | `amount` | Total amount of the order. |
            | `currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the order. |
            | `settlement_amount` | Total amount settled on the merchant's account. |
            | `settlement_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the settled amount. |
            | `payment_method` | Type of the payment method the customer used to pay for the order. |
            | `fee_amount` | Total fee amount applied to the order, aggregated across all fee components (acquiring markup + interchange + scheme fees). |
            | `fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the total fee. |
            | `processing_fee_amount` | Acquiring markup fee only — a subset of `fee_amount`. Represents Revolut's service fee, excluding interchange and scheme fees. |
            | `processing_fee_currency` | The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code of the acquiring markup fee. |
            | `browser_url` | The URL where the customer initiated the payment. |
            | `location_id` | Unique identifier of the location related to the transaction. |
        examples:
          - - transaction_id
            - type
            - amount
            - currency
            - settlement_amount
            - settlement_currency
  7b213d5:
    title: Payments report
    type: object
    description: A payments report contains all the query information for generating
      reports of payments associated with a Merchant account, including failed
      and declined payments.
    properties:
      filter:
        $ref: "#/x-ext/e6c75ed"
      format:
        $ref: "#/x-ext/0abca0c"
      type:
        $ref: "#/x-ext/34b6874"
      options:
        $ref: "#/x-ext/4d0713e"
    required:
      - filter
      - format
      - type
  7f82492:
    title: Custom report
    type: object
    description: A custom report contains all the query information for generating
      reports of selected transactions associated with a Merchant account.
    properties:
      filter:
        $ref: "#/x-ext/82ecd06"
      format:
        $ref: "#/x-ext/0abca0c"
      type:
        $ref: "#/x-ext/34b6874"
      options:
        $ref: "#/x-ext/0782f68"
    required:
      - filter
      - format
      - type
  21e464e:
    title: Payout statement report
    type: object
    description: A payout statement report contains all the query information for
      generating reports of a selected payout associated with a Merchant
      account.
    properties:
      filter:
        $ref: "#/x-ext/96af67e"
      format:
        $ref: "#/x-ext/0abca0c"
      type:
        $ref: "#/x-ext/34b6874"
      options:
        $ref: "#/x-ext/7cff6b1"
    required:
      - filter
      - format
      - type
  d5e1bd0:
    title: IC++ fee breakdown report
    type: object
    description: A IC++ fee breakdown report contains all the query information for
      generating reports of fees for each IC++ transaction related to a payout.
    properties:
      filter:
        $ref: "#/x-ext/6eb8be8"
      format:
        $ref: "#/x-ext/0abca0c"
      type:
        $ref: "#/x-ext/34b6874"
      options:
        $ref: "#/x-ext/979a492"
    required:
      - filter
      - format
      - type
  f0f1fcd:
    title: Settlement report
    type: object
    description: A settlement report contains all the query information for
      generating reports of settled transactions associated with a Merchant
      account.
    properties:
      filter:
        $ref: "#/x-ext/82ecd06"
      format:
        $ref: "#/x-ext/0abca0c"
      type:
        $ref: "#/x-ext/34b6874"
      options:
        $ref: "#/x-ext/a709559"
    required:
      - filter
      - format
      - type
  ee6af6f:
    parameters:
      - $ref: "#/x-ext/90b9838"
    post:
      summary: Create a report run
      operationId: createReportRun
      description: >-
        Start generating a report of all transactions that match the filter and
        options specified in the request body.


        Use the returned `report_run_id` and the [Retrieve report run
        details](/docs/api/merchant#retrieve-report-run) operation to check the
        status of the generation.


        After generation is done, use the [Download report
        file](/docs/api/merchant#download-report-file) operation to retrieve the
        CSV. The `file_url` in the completed report run object is the request
        URL for that endpoint and requires the same authorisation as any other
        Merchant API request. 


        ### Report types


        The table below helps to choose the right report type for your use case:


        | Report type | What it covers |

        | ----------- | -------------- |

        | `custom_report` | Settled and processing transactions with
        configurable columns |

        | `settlement_report` | All settled transactions, with a configurable
        set of columns |

        | `payments_report` | All payments including failed and declined ones |

        | `payout_statement_report` | All transactions contributing to a
        specific payout |

        | `icpp_fee_breakdown_report` | IC++ fees per transaction for a specific
        IC++ charge |


        ### IDs across report types


        Each report type uses a different primary ID, depending on which system
        the data comes from:


        | ID column | System | Report types |

        | --------- | ------ | ------------ |

        | `payment_id`, `id` | **Acquiring system** - identifies a payment
        attempt | `payments_report`, `icpp_fee_breakdown_report` |

        | `transaction_id` | **Core ledger** - identifies the settlement entry
        created when a payment is captured | `settlement_report`,
        `payout_statement_report`, `custom_report` |

        | `order_id` | **Both systems** - bridges the acquiring and ledger
        perspectives | `settlement_report`, `payments_report`,
        `payout_statement_report`, `custom_report` |
      requestBody:
        content:
          application/json:
            schema:
              discriminator:
                propertyName: type
                mapping:
                  settlement_report: ../components/schemas/Report-Run-Settlement-Report.yaml
                  custom_report: ../components/schemas/Report-Run-Custom-Report.yaml
                  payments_report: ../components/schemas/Report-Run-Payments-Report.yaml
                  payout_statement_report: ../components/schemas/Report-Run-Payout-Report.yaml
                  icpp_fee_breakdown_report: ../components/schemas/Report-Run-Icpp-Report.yaml
              oneOf:
                - $ref: "#/x-ext/f0f1fcd"
                - $ref: "#/x-ext/7f82492"
                - $ref: "#/x-ext/7b213d5"
                - $ref: "#/x-ext/21e464e"
                - $ref: "#/x-ext/d5e1bd0"
            examples:
              custom_report:
                summary: Custom report
                value:
                  filter:
                    from: 2020-01-01T00:00:00Z
                    to: 2020-01-02T00:00:00Z
                    entity_types:
                      - payment
                    entity_states:
                      - completed
                      - processing
                  format: csv
                  type: custom_report
                  options:
                    timezone: Europe/London
                    columns:
                      - transaction_id
                      - amount
                      - currency
                      - metadata.custom_attribute
              settlement_report:
                summary: Settlement report
                value:
                  filter:
                    from: 2020-01-01T00:00:00Z
                    to: 2020-01-02T00:00:00Z
                    entity_types:
                      - payment
                  format: csv
                  type: settlement_report
              payments_report:
                summary: Payments report
                value:
                  filter:
                    from: 2020-01-01T00:00:00Z
                    to: 2020-01-02T00:00:00Z
                    entity_states:
                      - completed
                      - failed
                      - declined
                  format: csv
                  type: payments_report
              payout_statement_report:
                summary: Payout statement report
                value:
                  filter:
                    payout_id: a830020e-090c-4717-836d-37941a27ad12
                  format: csv
                  type: payout_statement_report
              icpp_fee_breakdown_report:
                summary: IC++ fee breakdown report
                value:
                  filter:
                    icpp_charge_id: 41d6c699-744a-4994-91c0-9227539c587f
                  format: csv
                  type: icpp_fee_breakdown_report
      responses:
        "201":
          description: Report run created, report started generating
          content:
            application/json:
              schema:
                $ref: "#/x-ext/ae49498"
              examples:
                report_run_processing:
                  summary: Report run processing
                  value:
                    report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
                    status: processing
                report_run_completed:
                  summary: Report run completed, report file ready
                  value:
                    report_run_id: d6f6ef64-f668-4e64-8967-1cdf8afb2561
                    status: completed
                    file_url: https://merchant.revolut.com/api/report-runs/d6f6ef64-f668-4e64-8967-1cdf8afb2561/file
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
      security:
        - Api-Key: []
      tags:
        - Report runs
  840a457:
    type: string
    enum:
      - ORDER_COMPLETED
      - ORDER_AUTHORISED
      - ORDER_CANCELLED
      - ORDER_FAILED
      - ORDER_INCREMENTAL_AUTHORISATION_AUTHORISED
      - ORDER_INCREMENTAL_AUTHORISATION_DECLINED
      - ORDER_INCREMENTAL_AUTHORISATION_FAILED
      - ORDER_PAYMENT_AUTHENTICATION_CHALLENGED
      - ORDER_PAYMENT_AUTHENTICATED
      - ORDER_PAYMENT_DECLINED
      - ORDER_PAYMENT_FAILED
      - SUBSCRIPTION_INITIATED
      - SUBSCRIPTION_FINISHED
      - SUBSCRIPTION_CANCELLED
      - SUBSCRIPTION_OVERDUE
      - PAYOUT_INITIATED
      - PAYOUT_COMPLETED
      - PAYOUT_FAILED
      - DISPUTE_ACTION_REQUIRED
      - DISPUTE_UNDER_REVIEW
      - DISPUTE_WON
      - DISPUTE_LOST
    description: >-
      The event type of the webhook notification that's sent by Revolut to your
      webhook URL.


      Each event is related to status changes of a specific object in the
      Merchant API:

        | Object | Event types |
        | --------- | ----------- |
        | `Order`   | <ul> <li>`ORDER_COMPLETED`</li> <li>`ORDER_AUTHORISED`</li> <li>`ORDER_CANCELLED`</li> <li>`ORDER_FAILED`</li> <li>`ORDER_INCREMENTAL_AUTHORISATION_AUTHORISED`</li> <li>`ORDER_INCREMENTAL_AUTHORISATION_DECLINED`</li> <li>`ORDER_INCREMENTAL_AUTHORISATION_FAILED`</li> </ul> |
        | `Payment` | <ul> <li>`ORDER_PAYMENT_AUTHENTICATION_CHALLENGED`</li> <li>`ORDER_PAYMENT_AUTHENTICATED`</li> <li>`ORDER_PAYMENT_DECLINED`</li> <li>`ORDER_PAYMENT_FAILED`</li> </ul> |
        | `Subscription`  | <ul> <li>`SUBSCRIPTION_INITIATED`</li> <li>`SUBSCRIPTION_FINISHED`</li> <li>`SUBSCRIPTION_CANCELLED`</li> <li>`SUBSCRIPTION_OVERDUE`</li></ul> |
        | `Payout`  | <ul> <li>`PAYOUT_INITIATED`</li> <li>`PAYOUT_COMPLETED`</li> <li>`PAYOUT_FAILED`</li> </ul> |
        | `Dispute`  | <ul> <li>`DISPUTE_ACTION_REQUIRED`</li> <li>`DISPUTE_UNDER_REVIEW`</li> <li>`DISPUTE_WON`</li> <li>`DISPUTE_LOST`</li></ul> |
  471852d:
    type: object
    properties:
      event:
        $ref: "#/x-ext/840a457"
      order_id:
        type: string
        format: uuid
        description: The ID of the order the event is related to.
      merchant_order_ext_ref:
        type: string
        description: |-
          The information sent during order creation in the
          `merchant_order_data.reference` field.
      incremental_authorisation_ext_reference:
        type: string
        description: The reference sent in the `reference` field of the [Increment
          authorisation](/docs/api/merchant#increment-authorisation) request.
          Only present for incremental authorisation events.
    required:
      - event
      - order_id
  7f3912f:
    type: object
    properties:
      event:
        $ref: "#/x-ext/840a457"
      payout_id:
        type: string
        format: uuid
        description: The ID of the payout the event is related to.
    required:
      - event
      - payout_id
  845bfaa:
    type: object
    properties:
      event:
        $ref: "#/x-ext/840a457"
      dispute_id:
        type: string
        format: uuid
        description: The ID of the dispute the event is related to.
    required:
      - event
      - dispute_id
  459b5b0:
    type: object
    properties:
      event:
        $ref: "#/x-ext/840a457"
      subscription_id:
        type: string
        format: uuid
        description: The ID of the subscription the event is related to.
      external_reference:
        type: string
        description: The information sent in the `external_reference` field of the
          [Create a subscription](/docs/api/merchant#create-subscription)
          request.
    required:
      - event
      - subscription_id
  de972c2:
    "{$request.body#/url}":
      post:
        summary: Send webhook event to webhook URL
        description: |-
          The following webhook event payload is sent as a HTTP POST request to the URL registered as the merchant's webhook server via the [Create a webhook](/docs/api/merchant#create-webhook) operation.

          The delivery of the webhook events happen asynchronously, based on the events you subscribed to.

          :::info
          For more information, see: [Use webhooks to track order and payment lifecycle](/docs/guides/merchant/monitor-and-observe/webhooks/using-webhooks).
          :::

          ### IP allowlisting

          To ensure secure delivery of webhook events, please allowlist the following IP addresses from which the events originate:

          **Production webhook IPs:**
          - `35.246.21.235`
          - `34.89.70.170`

          **Sandbox webhook IPs:**
          - `35.242.130.242`
          - `35.242.162.241`
        parameters:
          - name: Revolut-Request-Timestamp
            in: header
            required: true
            schema:
              type: string
            description: |-
              The [UNIX timestamp](https://www.unixtimestamp.com/) of the date and time when the webhook event was sent from Revolut. Used to verify the webhook event payload was actually sent by Revolut.

              :::info
              For more information, see: [Verify payload signature](/docs/guides/merchant/monitor-and-observe/webhooks/verify-the-payload-signature)
              :::
          - name: Revolut-Signature
            in: header
            required: true
            schema:
              type: string
            description: |-
              The payload signature computed by Revolut using a Hash-based Message Authentication Code (HMAC). Used to verify the webhook event payload was actually sent by Revolut.

              :::info
              For more information, see: [Verify payload signature](/docs/guides/merchant/monitor-and-observe/webhooks/verify-the-payload-signature)
              :::
        requestBody:
          required: true
          content:
            application/json:
              schema:
                discriminator:
                  propertyName: event
                  mapping:
                    Order or payment event: ../schemas/Webhook-Order-Event.yaml
                    Subscription: ../schemas/Webhook-Subscription-Event.yaml
                    Payout event: ../schemas/Webhook-Payout-Event.yaml
                    Dispute event: ../schemas/Webhook-Dispute-Event.yaml
                oneOf:
                  - $ref: "#/x-ext/471852d"
                  - $ref: "#/x-ext/459b5b0"
                  - $ref: "#/x-ext/7f3912f"
                  - $ref: "#/x-ext/845bfaa"
              examples:
                order_event:
                  summary: Webhook event related to an order or payment
                  value:
                    event: ORDER_COMPLETED
                    order_id: 6634c172-3398-ac93-aee9-50de0282e3ac
                    merchant_order_ext_ref: "Example reference #123"
                subscription_event:
                  summary: Webhook event related to a subscription
                  value:
                    event: SUBSCRIPTION_INITIATED
                    subscription_id: 550e8400-e29b-41d4-a716-446655440000
                    external_reference: ext-ref-12345
                incremental_auth_authorised:
                  summary: Webhook event for successful incremental authorisation
                  value:
                    event: ORDER_INCREMENTAL_AUTHORISATION_AUTHORISED
                    order_id: 6634c172-3398-ac93-aee9-50de0282e3ac
                    incremental_authorisation_ext_reference: CHG-67890
                incremental_auth_declined:
                  summary: Webhook event for declined incremental authorisation
                  value:
                    event: ORDER_INCREMENTAL_AUTHORISATION_DECLINED
                    order_id: 6634c172-3398-ac93-aee9-50de0282e3ac
                    incremental_authorisation_ext_reference: CHG-67891
                incremental_auth_failed:
                  summary: Webhook event for failed incremental authorisation
                  value:
                    event: ORDER_INCREMENTAL_AUTHORISATION_FAILED
                    order_id: 6634c172-3398-ac93-aee9-50de0282e3ac
                    incremental_authorisation_ext_reference: CHG-67892
                payout_event:
                  summary: Webhook event related to a payout
                  value:
                    event: PAYOUT_COMPLETED
                    payout_id: 6634c172-3398-ac93-aee9-50de0282e3ac
                dispute_event:
                  summary: Webhook event related to a dispute
                  value:
                    event: DISPUTE_ACTION_REQUIRED
                    dispute_id: ab934829-e4ba-4e7f-8a21-365cad85c763
        responses:
          "204":
            description: >-
              If the webhook event was delivered successfully, we recommend to
              respond with a `204` code.


              :::info

              You can respond to and acknowledge the delivery of a webhook event
              by any HTTP response code between `200-399`.

              :::
          4XX:
            description: If the webhook event delivery times out or the delivery of the
              events fails, you can respond with any HTTP `4XX` code. In this
              case, Revolut will retry sending the webhook event 3 more times,
              each with a 10-minute delay.
  a513720:
    parameters:
      - $ref: "#/x-ext/90b9838"
    post:
      summary: Create a webhook (Deprecated)
      deprecated: true
      operationId: createWebhookDeprecated
      description: >-
        Set up a webhook URL so that the Merchant API can push event
        notifications to the specified URL.


        :::warning

        Merchants can register a **maximum of 10 webhook URLs**. If you attempt
        to register more than 10, the API will return a `422 - Unprocessable
        Content` error. 


        Ensure your webhook registrations are necessary and within the allowed
        limit.

        :::
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/ee2e597"
            examples:
              example_webhook_request:
                summary: Example webhook request
                value:
                  url: https://example.com/webhooks
                  events:
                    - ORDER_COMPLETED
                    - ORDER_AUTHORISED
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/8a57fa8"
              examples:
                created_webhook:
                  summary: Created webhook
                  value:
                    id: c6b981f4-53b3-47d5-9b24-4f87af1160eb
                    url: https://example.com/webhooks
                    events:
                      - ORDER_AUTHORISED
                      - ORDER_COMPLETED
                    signing_secret: wsk_4jETWMz1g1b37gCONjNp84t2KSSIT7dK
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
      callbacks:
        Send webhook event:
          $ref: "#/x-ext/de972c2"
      security:
        - Api-Key: []
      tags:
        - Webhooks
    get:
      summary: Retrieve a webhook list (Deprecated)
      deprecated: true
      operationId: retrieveAllWebhooksDeprecated
      description: Get a list of webhooks that you are currently subscribed to.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/x-ext/2c92918"
              examples:
                list_of_webhooks:
                  summary: List of webhooks
                  value:
                    - id: 6fc8db62-6489-4470-a9e0-84b462fe3908
                      url: https://revolut.com/webhooks
                      events:
                        - ORDER_COMPLETED
                    - id: b466ab77-4932-4850-beb0-113bfc1166f8
                      url: https://business.revolut.com/webhooks
                      events:
                        - ORDER_COMPLETED
                        - ORDER_AUTHORISED
                    - id: 4a31c8a3-8037-4260-a09e-090475d37025
                      url: https://developer.revolut.com/webhooks
                      events:
                        - ORDER_AUTHORISED
                    - id: 5d815041-5753-46bc-aebc-315fe99f30aa
                      url: https://example.com/webhooks
                      events:
                        - ORDER_COMPLETED
                        - ORDER_AUTHORISED
        "401":
          description: Unauthorized
      security:
        - Api-Key: []
      tags:
        - Webhooks
  c1e66bb:
    type: string
    description: |-
      Name of the location. 

      :::warning
      The `name` parameter's value must be unique across all locations.
      :::
  fc3b5f1:
    type: string
    description: |-
      Type of the location.

      | Value | Description |
      | ----- | ----------- |
      | `online` | Represents an online store. |
      | `physical` | Represents a physical point of sale. |
    enum:
      - online
      - physical
  7f31e02:
    type: object
    description: Additional details of the location.
    properties:
      domain:
        type: string
        description: |-
          Domain address of the location. Required for online locations.

          :::warning
          The `domain` parameter's value must be unique across all locations.
          :::
    required:
      - domain
  3a0e142:
    type: object
    properties:
      name:
        $ref: "#/x-ext/c1e66bb"
      details:
        $ref: "#/x-ext/7f31e02"
  efeb826:
    type: object
    description: Request body for updating a location. The structure of the
      `details` object depends on the `type` of the location.
    oneOf:
      - $ref: "#/x-ext/3a0e142"
      - $ref: "#/x-ext/5d4dca2"
    discriminator:
      propertyName: type
      mapping:
        online: ./Location-Update-Online.yaml
        physical: ./Location-Update-Physical.yaml
  c17f5d5:
    type: object
    properties:
      name:
        $ref: "#/x-ext/c1e66bb"
      type:
        $ref: "#/x-ext/fc3b5f1"
      details:
        $ref: "#/x-ext/7f31e02"
    required:
      - name
      - type
      - details
  83ba3d8:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/4814d6b"
    get:
      summary: Retrieve a location
      operationId: retrieveLocation
      description: Retrieve details of a specific location, based on its ID.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/cf5e7ce"
              examples:
                example_online_location:
                  $ref: "#/x-ext/dd56a7e"
                example_physical_location:
                  $ref: "#/x-ext/9ca09cb"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Locations
    patch:
      summary: Update a location
      operationId: updateLocation
      description: >-
        Update details of a specific location, based on its ID. 


        Only the fields provided in the request will be updated. Any omitted
        fields will retain their current values.


        :::note

        The value of the location's `type` parameter cannot be updated.

        :::
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/efeb826"
            examples:
              online_location:
                summary: Online location example
                value:
                  name: Cars website - Name update
                  details:
                    domain: cars.example.com
              physical_location:
                summary: Physical location example
                value:
                  name: Example Street Store
                  details:
                    opening_hours:
                      monday:
                        - from: 10:00
                          to: 18:00
                      wednesday:
                        - from: 11:00
                          to: 18:00
      responses:
        "200":
          description: Location updated
          content:
            application/json:
              schema:
                $ref: "#/x-ext/cf5e7ce"
              examples:
                online_location:
                  summary: Online location example
                  value:
                    id: 8d9a7125-805f-40f3-a405-bc89765db996
                    name: Cars website - Name update
                    type: online
                    details:
                      domain: cars.example.com
                physical_location:
                  summary: Physical location example
                  value:
                    name: Example Street Store
                    type: physical
                    details:
                      address: null
                      street_line_1: 123 Example Street
                      city: Example city
                      postcode: "12345"
                      country_code: GB
                    geo_location:
                      lat: 12.3456
                      lon: -12.3456
                    opening_hours:
                      monday:
                        - from: 10:00
                          to: 18:00
                      tuesday:
                        - from: 10:00
                          to: 13:00
                        - from: 16:00
                          to: 18:00
                      wednesday:
                        - from: 11:00
                          to: 18:00
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Locations
    delete:
      summary: Delete a location
      operationId: deleteLocation
      description: Delete a specific location, based on its ID.
      responses:
        "204":
          description: Location deleted
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Locations
  874157f:
    type: object
    description: Additional details of the location.
    properties:
      address:
        $ref: "#/x-ext/7e82680"
      geo_location:
        $ref: "#/x-ext/d4c2387"
      opening_hours:
        $ref: "#/x-ext/51f7943"
    required:
      - address
      - geo_location
      - opening_hours
  990fbe0:
    type: object
    description: Object representing the quantity details of a line item, including
      the amount and its associated unit of measurement.
    properties:
      value:
        type: number
        format: double
        minimum: 0
        description: The number of units of the line item.
      unit:
        type: string
        maxLength: 100
        description: The measurement unit for the quantity, such as `cm`, or `kg`.
    required:
      - value
  e7c4087:
    type: object
    description: Details of a discount applied to the line item, including its name
      and monetary value.
    properties:
      name:
        type: string
        maxLength: 100
        description: The specific name or label of the discount applied to the line item.
      amount:
        type: integer
        format: int64
        minimum: 0
        description: "The monetary value of the discount. "
    required:
      - name
      - amount
  0dd3cd4:
    type: object
    description: Details about a tax applied to the line item, including its name
      and the corresponding amount.
    properties:
      name:
        type: string
        description: The specific name or designation of the tax applied to the line item.
        maxLength: 100
      amount:
        type: integer
        format: int64
        description: The monetary value of the tax in minor currency units (e.g., cents
          for EUR).
        minimum: 0
    required:
      - name
      - amount
  afa9242:
    type: string
    enum:
      - airline
      - car_rental
      - crypto
      - event
      - lodging
      - marketplace
    description: >-
      Type of the industry-specific data object, determining what additional
      data is expected.


      Available types:

        | Object type   | Description |
        | ------------- | ----------- |
        | `airline`     | Object containing information about a specific airline ticket purchase. |
        | `car_rental`  | Object containing information about a car rental booking associated with the order. |
        | `crypto`      | Object containing information about crypto transactions associated with the order. |
        | `marketplace` | This object is required by Mastercard and Visa for merchants operating as marketplaces under the **Merchant Category Code (MCC):** `5262`. The marketplace object ensures compliance with the card schemes' regulations by providing detailed information about the subseller involved in the transaction. |
        | `event` | Object containing information about event ticket bookings associated with the order. |
        | `lodging` | Object containing information about lodging bookings associated with the order. |
  daab7f0:
    type: string
    format: uri
    pattern: ^https?:\/{2}.+/gi
    maxLength: 2000
    description: >-
      URL to an image associated with the line item.


      :::warning

      Restrictions:

      - Must be a valid URI as defined by [RFC
      3986](https://datatracker.ietf.org/doc/html/rfc3986)

      - URI scheme is required and must be either `http` or `https`

      - URI host is required and cannot be `localhost` or an IP address

      - Max length: `2000`

      - Reserved or invalid characters must be percent-encoded (for example, use
      `%20` instead of a space)

      :::
  91fdcb6:
    type: string
    description: >-
      A unique identifier provided by the merchant associated with the order. 


      This `booking_id` is used to reference and correlate booking information
      with the Merchant API and the merchant's internal system.
  111a824:
    type: string
    enum:
      - refundable
      - non_refundable
      - partially_refundable
    description: Parameter indicating whether the booking is refundable, partially
      refundable, or not refundable.
  a448e4a:
    type: object
    properties:
      id:
        type: string
        maxLength: 255
        description: The public transaction hash of the crypto transaction.
      status:
        type: string
        enum:
          - pending
          - failed
          - cancelled
          - completed
        description: The status of the crypto transaction.
      recipient_wallet_id:
        type: string
        maxLength: 255
        description: >-
          The wallet ID of the recipient.


          :::note

          At least one of the parameters: `recipient_user_id` or
          `recipient_wallet_id` is required.

          ::: 
      recipient_user_id:
        type: string
        maxLength: 255
        description: >-
          The user ID of the recipient.


          :::note

          At least one of the parameters: `recipient_user_id` or
          `recipient_wallet_id` is required.

          :::              
    required:
      - id
      - status
      - recipient
  3df5792:
    type: object
    description: >-
      Object containing information about crypto transactions associated with
      the order.


      :::info

      These are the specific data field requirements for merchants offering
      crypto services. Note that these requirements can be extended on a case by
      case basis as decided by Revolut.


      ```

      transactions[].id

      transactions[].status

      transactions[].recipient_wallet_id

      subseller_mcc

      subseller_url

      customer.full_name

      customer.date_of_birth

      ```

      :::
    properties:
      type:
        $ref: "#/x-ext/afa9242"
      transactions:
        type: array
        description: Array of crypto transaction data associated with the order.
        items:
          $ref: "#/x-ext/a448e4a"
        minItems: 1
      subseller_mcc:
        type: string
        description: >-
          A string representing the four-digit [Merchant Category Code
          (MCC)](https://en.wikipedia.org/wiki/Merchant_category_code) of the
          subseller. 


          This code should be provided when a customer completes a payment on a
          subseller's website rather than directly on the merchant's website,
          providing insight into the type of business conducted by the
          subseller.
        maxLength: 4
        minLength: 4
        pattern: ^\d{4}$
      subseller_url:
        type: string
        format: uri
        pattern: ^https?:\/{2}.+/gi
        maxLength: 2000
        description: >-
          The URL of the subseller's website.


          This parameter should be provided when a customer completes a payment
          on a subseller's website rather than directly on the merchant's
          website, providing additional insight into the type of business
          conducted by the subseller.


          :::warning

          Restrictions: 

          - Must be a valid URI as defined by [RFC
          3986](https://datatracker.ietf.org/doc/html/rfc3986)

          - URI scheme is required and must be either `http` or `https`

          - URI host is required and cannot be `localhost` or an IP address

          - Max length: `2000`

          - Reserved or invalid characters must be percent-encoded (for example,
          use `%20` instead of a space)

          :::
    required:
      - type
      - transactions
  6a1e83e:
    type: string
    format: date-time
    description: "[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time
      when the funds are released to merchants."
  "7e82680":
    type: object
    description: Details of a physical address.
    properties:
      street_line_1:
        type: string
        description: Primary address line.
        maxLength: 100
      street_line_2:
        type: string
        description: Secondary address line, such as floor and apartment number.
        maxLength: 100
      region:
        type: string
        description: State or province of the address.
        maxLength: 100
      city:
        type: string
        description: City of the address.
        maxLength: 100
      country_code:
        type: string
        pattern: ^[A-Z]{2}$
        description: ISO 2-letter country code.
        minLength: 2
        maxLength: 2
      postcode:
        type: string
        description: Postal code of the address.
        maxLength: 100
    required:
      - street_line_1
      - city
      - country_code
      - postcode
  4282f0c:
    type: object
    description: Object containing details of the card used for the payment.
    properties:
      id:
        type: string
        format: uuid
        description: |-
          ID of the saved payment method.

          :::note
          The `id` parameter is only returned when the payment method is saved.
          :::
      type:
        $ref: "#/x-ext/a32ab53"
      card_brand:
        type: string
        description: The type of the card.
        enum:
          - visa
          - mastercard
          - american_express
      funding:
        type: string
        description: The type of card funding.
        enum:
          - credit
          - debit
          - prepaid
      card_country_code:
        type: string
        description: The 2-letter country code of the country where the card was issued.
      card_bin:
        type: string
        description: The BIN of the card.
        minLength: 6
        maxLength: 6
      card_last_four:
        type: string
        description: The last four digits of the card number.
        minLength: 4
        maxLength: 4
      card_expiry:
        type: string
        format: MM/YY
        description: The expiry date of the card in the format of MM/YY.
      cardholder_name:
        type: string
        description: The name of the cardholder.
      checks:
        $ref: "#/x-ext/c7dd364"
      authorisation_code:
        $ref: "#/x-ext/81aebf6"
      arn:
        $ref: "#/x-ext/a164737"
      capture_deadline:
        $ref: "#/x-ext/3cfba3a"
      fingerprint:
        $ref: "#/x-ext/1a4ec64"
      network_transaction_id:
        $ref: "#/x-ext/9bbb548"
    required:
      - type
  30ffe89:
    type: object
    description: Object containing details of a card used via Apple Pay.
    properties:
      $ref: "#/x-ext/4282f0c/properties"
    required:
      - type
  6b05d26:
    type: object
    description: Object containing details of a card used via Google Pay.
    properties:
      $ref: "#/x-ext/4282f0c/properties"
    required:
      - type
  9146afc:
    type: object
    description: Object containing details of a card used via Revolut Pay.
    properties:
      $ref: "#/x-ext/4282f0c/properties"
    required:
      - type
  fa3eb14:
    type: object
    properties:
      type:
        type: string
        description: The type of the order fee.
        enum:
          - fx
          - acquiring
      amount:
        type: integer
        description: The amount of the payment fee (minor currency unit). For example,
          enter `7034` for €70.34 in the field.
      currency:
        type: string
        description: |-
          The currency of the payment fee. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.

          :::info
          For more information about the supported currencies, see: [Help Center](https://help.revolut.com/business/help/merchant-accounts/payments/in-which-currencies-can-i-accept-payments/).
          :::
  87bb99b:
    type: array
    description: The details of the order fee.
    items:
      $ref: "#/x-ext/fa3eb14"
  8f4fd3d:
    type: string
    enum:
      - three_ds
      - three_ds_fingerprint
    description: Type of the authentication challenge the payment triggers.
  2d92828:
    title: three_ds_fingerprint
    type: object
    description: Information about the 3DS fingerprint challenge.
    properties:
      type:
        $ref: "#/x-ext/8f4fd3d"
      fingerprint_url:
        type: string
        format: url
        description: The URL of the fingerprint. (Used only internally by Revolut.)
      fingerprint_data:
        type: string
        format: JSON
        description: >-
          Data about the fingerprint used for authentication. (Used only
          internally

          by Revolut.)
    required:
      - type
      - fingerprint_url
      - fingerprint_data
  35cad8b:
    title: three_ds
    type: object
    description: Information about the 3DS challenge.
    properties:
      type:
        $ref: "#/x-ext/8f4fd3d"
      acs_url:
        type: string
        format: url
        description: The URL of the authentication challenge.
    required:
      - type
      - acs_url
  16d7e79:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/6ebce25"
    post:
      summary: Pay for an order
      operationId: payOrder
      description: |-
        Initiate a payment to pay full amount for an order using a customer's saved payment method.

        :::note
        The `/orders/{order_id}/confirm` endpoint has been deprecated. It will be only supported for already existing implementations.
        :::

        :::warning
        This endpoint is part of a new API, pay attention to the different endpoint URL. 
        :::

        For more information about how to save and charge payment methods, see: [Charge a customer's saved payment method](/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method).

        The following table shows who can initiate payments on saved payment methods (`initiator` parameter), depending on if the payment method was saved for the customer or the merchant (`savedPaymentMethodFor` parameter):

          |                           | `savePaymentMethodFor: customer` | `savePaymentMethodFor: merchant` |
          | ------------------------- | -------------------------------- | -------------------------------- |
          | **`initiator: customer`** | Allowed                          | Allowed                          |
          | **`initiator: merchant`** | Not allowed                      | Allowed                          |


        :::note
        Using this endpoint, only merchant initiated payments are supported with Revolut Pay.
        :::
                  
        For more information about customers' payment methods, see the [Retrieve payment method list of a customer](/docs/api/merchant#retrieve-payment-method-list) operation.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/e7ed3e3"
            examples:
              saved_card_customer:
                summary: Saved card (customer initiator)
                value:
                  saved_payment_method:
                    type: card
                    id: 2b83c23a-650e-40c3-8989-00ee24478738
                    initiator: customer
                    environment:
                      type: browser
                      time_zone_utc_offset: 180
                      color_depth: 48
                      screen_width: 1920
                      screen_height: 1080
                      java_enabled: true
                      challenge_window_width: 640
                      browser_url: https://business.revolut.com
              saved_card_merchant:
                summary: Saved card (merchant initiator)
                value:
                  saved_payment_method:
                    type: card
                    id: 2b83c23a-650e-40c3-8989-00ee24478738
                    initiator: merchant
              revolut_pay:
                summary: Saved Revolut Pay (merchant initiator)
                value:
                  saved_payment_method:
                    type: revolut_pay
                    id: 2b83c23a-650e-40c3-8989-00ee24478738
                    initiator: merchant
      responses:
        "200":
          description: Payment initiated
          content:
            application/json:
              schema:
                $ref: "#/x-ext/11ca5af"
              examples:
                successful_payment_card:
                  summary: Payment authorised (card)
                  value:
                    id: 63c55e04-4208-a43d-9c96-eaee848ffbaf
                    order_id: 63c55df6-1461-a886-b90f-f49d3c370253
                    payment_method:
                      type: card
                      id: 2b83c23a-650e-40c3-8989-00ee24478738
                      brand: mastercard_credit
                      last_four: "1234"
                    state: authorisation_passed
                successful_payment_revolut_pay_account:
                  summary: Payment authorised (Revolut Pay - Revolut account)
                  value:
                    id: 63c55e04-4208-a43d-9c96-eaee848ffbaf
                    order_id: 63c55df6-1461-a886-b90f-f49d3c370253
                    payment_method:
                      type: revolut_pay
                      subtype: revolut_account
                      id: 2b83c23a-650e-40c3-8989-00ee24478738
                    state: authorisation_passed
                successful_payment_revolut_pay_card:
                  summary: Payment authorised (Revolut Pay - card)
                  value:
                    id: 63c55e04-4208-a43d-9c96-eaee848ffbaf
                    order_id: 63c55df6-1461-a886-b90f-f49d3c370253
                    payment_method:
                      type: revolut_pay
                      subtype: card
                      id: 2b83c23a-650e-40c3-8989-00ee24478738
                      brand: visa
                      last_four: "1234"
                    state: authorisation_passed
                three_ds:
                  summary: Saved card payment (3DS challenge)
                  value:
                    id: 5e96b328-4054-41ed-b089-595ccc4d0870
                    order_id: a16718e0-077a-4942-89bc-23ac17a2e14c
                    payment_method:
                      type: card
                      id: 2b83c23a-650e-40c3-8989-00ee24478738
                      brand: mastercard_credit
                      last_four: "1234"
                    state: authentication_challenge
                    authentication_challenge:
                      type: three_ds
                      acs_url: https://example.com
                three_ds_fingerprint:
                  summary: Saved card payment (3DS fingerprint challenge)
                  value:
                    id: 5e96b328-4054-41ed-b089-595ccc4d0870
                    order_id: a16718e0-077a-4942-89bc-23ac17a2e14c
                    payment_method:
                      type: card
                      id: 2b83c23a-650e-40c3-8989-00ee24478738
                      brand: mastercard_credit
                      last_four: "1234"
                    state: authentication_challenge
                    authentication_challenge:
                      type: three_ds_fingerprint
                      fingerprint_url: https://example.com
                      fingerprint_data: string
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorId:
                    type: string
                    description: |-
                      The ID of the error. You can share this ID with Revolut
                      support for troubleshooting.
                  timestamp:
                    type: integer
                    description: The date and time the error happened.
              examples:
                example-1:
                  value:
                    errorId: 94b27660-fdda-49ec-8b85-cd46a068ade0
                    timestamp: 1601296792533
        "401":
          description: Unauthorized
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorId:
                    type: string
                    description: |-
                      The ID of the error. You can share this ID with Revolut
                      support for troubleshooting.
                  timestamp:
                    type: integer
                    description: The date and time the error happened.
                  code:
                    type: integer
              examples:
                example-1:
                  value:
                    errorId: 94b27660-fdda-49ec-8b85-cd46a068ade0
                    timestamp: 1601296792533
                    code: 1024
      security:
        - Api-Key: []
      tags:
        - Orders
        - Payments
    get:
      summary: Retrieve payment list of an order
      operationId: retrievePaymentList
      description: >-
        Retrieve a list of payments for a specific order, based on the order's
        ID.


        :::note

        This endpoint is part of a new API, pay attention to the different
        endpoint URL.

        :::


        Use this endpoint to retrieve payment details for saved payment methods
        to make merchant and customer initiated transactions. For more
        information, see: 
          - [Speed up customer checkout by using saved card details](/docs/guides/merchant/optimise-checkout/save-payment-methods/checkout-with-saved-card)
          - [Manage subscriptions](/docs/guides/merchant/optimise-checkout/save-payment-methods/subscription-management)
      responses:
        "200":
          description: List of payments
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/x-ext/11ca5af"
              examples:
                payment_list:
                  summary: List of payments (failed card attempt, SEPA Direct Debit retry)
                  value:
                    - id: 63dd0e4a-42c4-a1a6-ab2c-6ac9d255ca4b
                      token: 294358bf-3818-49b2-aacc-7ca971f52695
                      order_id: 63dd0e3f-7b84-ab5c-927c-1a06f7c9583a
                      state: declined
                      amount: 100
                      currency: EUR
                      payment_method:
                        type: card
                        card_brand: visa
                        funding: credit
                        card_last_four: "1234"
                    - id: 649adc44-3e86-a832-879c-2f6d0255dd4c
                      token: 8061e645-35e0-42bb-8318-603abaeab7b7
                      order_id: 63dd0e3f-7b84-ab5c-927c-1a06f7c9583a
                      state: declined
                      amount: 100
                      currency: EUR
                      decline_reason: insufficient_funds
                      payment_method:
                        type: revolut_pay
                        subtype: revolut_account
                    - id: 663387f1-1c2e-a295-b143-9f1fb1eec175
                      token: 663387f1-c91e-a464-908a-1cc4548ebc6a
                      order_id: 63dd0e3f-7b84-ab5c-927c-1a06f7c9583a
                      state: pending
                      amount: 100
                      currency: EUR
                      payment_method:
                        type: sepa_direct_debit
                        debtor_iban_last_four: "1234"
                        debtor_name: John Doe
                        mandate_reference: A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: bad_request
                    message: Could not parse JSON
                    timestamp: 1720528890647
        "401":
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: unauthenticated
                    message: Authentication failed
                    timestamp: 1720528890647
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
                examples:
                  - code: not_found
                    message: Order with id b8883ab5-964a-4329-aa44-4d3c76cf3f54 was not found
                    timestamp: 1720528890647
      security:
        - Api-Key: []
      tags:
        - Orders
        - Payments
  d4c2387:
    type: object
    description: Coordinates of the location.
    properties:
      lat:
        type: number
        format: double
        description: The latitude of the location, in decimal degrees.
        minimum: -90
        maximum: 90
      lon:
        type: number
        format: double
        description: To longitude of the location, in decimal degrees.
        minimum: -180
        maximum: 180
    required:
      - lat
      - lon
  9ab4dd9:
    title: Terminal name
    type: string
    description: The name of the terminal device.
  b5263b8:
    title: Terminal serial number
    type: string
    description: The serial number of the terminal device.
    examples:
      default:
        value: RT-00123456
  a651264:
    title: Terminal type
    type: string
    description: The hardware type/model of the terminal device.
    enum:
      - youtransactor_ucube_touch
      - newland_n950
      - newland_n750
      - newland_r25p
  519b915:
    title: Terminal battery level
    type: integer
    description: The current battery level of the terminal as a percentage (0-100).
    minimum: 0
    maximum: 100
  be470bf:
    title: Terminal online status
    type: boolean
    description: |-
      Indicates whether the terminal is currently online and connected.

      | Value | Description |
      |-------|-------------|
      | `true` | Terminal is online and available |
      | `false` | Terminal is offline |
  25d3924:
    title: Terminal last online timestamp
    type: string
    format: date-time
    description: The date and time when the terminal was last seen online.
  d594899:
    title: Terminal
    type: object
    description: Represents a Revolut Terminal device.
    properties:
      id:
        $ref: "#/x-ext/6b77b6c"
      name:
        $ref: "#/x-ext/9ab4dd9"
      type:
        $ref: "#/x-ext/a651264"
      serial_number:
        $ref: "#/x-ext/b5263b8"
      battery_level:
        $ref: "#/x-ext/519b915"
      online:
        $ref: "#/x-ext/be470bf"
      last_online_at:
        $ref: "#/x-ext/25d3924"
    required:
      - id
      - name
      - type
      - serial_number
      - battery_level
      - online
      - last_online_at
  11efa34:
    type: array
    description: List of terminal devices.
    items:
      $ref: "#/x-ext/d594899"
  1df77f8:
    title: Terminals response
    type: object
    description: Response containing a list of terminals.
    properties:
      terminals:
        $ref: "#/x-ext/11efa34"
    required:
      - terminals
  2226ae4:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/a200791"
    get:
      summary: Retrieve terminal list
      operationId: retrieveTerminalList
      description: |-
        Retrieve a list of Revolut Terminal devices available to the merchant.

        This endpoint is primarily used for push payments to Revolut Terminal integration, allowing POS systems to discover available terminals at a specific location and in the correct operation mode.

        :::tip
        For push payments integration, use the `operation_mode=pos` query parameter to filter only terminals in **Pay at Counter** mode that are ready to receive payment intents.
        :::

        :::info
        For more information about integration, see: [Push payments to Revolut Terminal](/docs/guides/merchant/accept-payments/in-person-payments/terminal/push-payments).
        :::
      parameters:
        - $ref: "#/x-ext/193a752"
        - $ref: "#/x-ext/aef1bf5"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/x-ext/1df77f8"
              examples:
                terminals_list:
                  $ref: "#/x-ext/fc6d57b"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
      security:
        - Api-Key: []
      tags:
        - Terminals
  fb0171f:
    type: object
    properties:
      first_name:
        type: string
        description: Passenger's first name.
      last_name:
        type: string
        description: Passenger's last name.
    required:
      - first_name
      - last_name
  4ab1712:
    type: array
    description: Array containing information of passengers associated with the booking.
    items:
      $ref: "#/x-ext/fb0171f"
  73478d8:
    type: object
    description: Details of a physical address.
    properties:
      street_line_1:
        type: string
        description: Primary address line.
        maxLength: 100
      street_line_2:
        type: string
        description: Secondary address line, such as floor and apartment number.
        maxLength: 100
      region:
        type: string
        description: State or province of the address.
        maxLength: 100
      city:
        type: string
        description: City of the address.
        maxLength: 100
      country_code:
        type: string
        pattern: ^[A-Z]{2}$
        description: ISO 2-letter country code.
        minLength: 2
        maxLength: 2
      country_subdivision_code:
        type: string
        pattern: ^[A-Z]{2}-[A-Z0-9]{1,3}$
        description: >-
          The subdivision code represents the state, province, or region within
          the country, following the [ISO
          3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) standard. This code
          uniquely identifies subdivisions within a country. 


          For example, for London in the United Kingdom, use `GB-LND`.


          :::warning

          The parameter is required for countries listed on the [ISO
          3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) page.

          :::
        minLength: 5
        maxLength: 6
      postcode:
        type: string
        description: Postal code of the address.
        maxLength: 100
    required:
      - street_line_1
      - city
      - country_code
      - postcode
  a0570c6:
    type: object
    description: Information about the subseller related to this order.
    properties:
      id:
        type: string
        description: The ID of the subseller in the marketplace's internal system.
        minLength: 1
        maxLength: 15
      name:
        type: string
        description: The business or legal name of the subseller.
        minLength: 1
        maxLength: 50
      website:
        type: string
        format: uri
        pattern: ^https?:\/{2}.+/gi
        maxLength: 255
        description: >-
          The URL of the website of the subseller.


          :::warning

          Restrictions:

          - Must be a valid URI as defined by [RFC
          3986](https://datatracker.ietf.org/doc/html/rfc3986)

          - URI scheme is required and must be either `http` or `https`

          - URI host is required and cannot be `localhost` or an IP address

          - Max length: `255`

          - Reserved or invalid characters must be percent-encoded (for example,
          use `%20` instead of a space)

          :::
      phone:
        type: string
        description: The phone number of the subseller.
      address:
        $ref: "#/x-ext/73478d8"
    required:
      - id
      - name
      - website
      - phone
      - address
  c490a87:
    type: object
    description: >-
      This object is required by Mastercard and Visa for merchants operating as
      marketplaces under the Merchant Category Code (MCC) `5262`. The
      marketplace object ensures compliance with the card schemes' regulations
      by providing detailed information about the subseller involved in the
      transaction.


      :::info

      These are the specific data field requirements for merchants who must
      provide marketplace data.


      ```

      subseller.id

      subseller.name

      subseller.phone

      ```

      :::
    properties:
      type:
        $ref: "#/x-ext/afa9242"
      subseller:
        $ref: "#/x-ext/a0570c6"
    required:
      - type
      - subseller
  db10c08:
    type: object
    properties:
      sequence:
        type: integer
        description: >-
          Sequence of the journey legs. Increment by 1 for each flight included
          in the ticket.


          For example: For a `FRA > LHR > DUB > LHR > FRA` journey the sequence
          will be assigned as:
            - `FRA > LHR`: 1
            - `LHR > DUB`: 2
            - `DUB > LHR`: 3
            - `LHR > FRA`: 4
      departure_airport_code:
        type: string
        description: The [IATA](https://www.iata.org/en/services/codes) 3-letter airport
          code for the departure airport.
      arrival_airport_code:
        type: string
        description: The [IATA](https://www.iata.org/en/services/codes) 3-letter airport
          code for the arrival airport.
      flight_number:
        type: string
        description: The flight identifier, without airline code.
      fare_base_code:
        type: string
        description: The fare base code for the given journey leg.
      travel_date:
        type: string
        format: date-time
        description: The UTC date and time of the flight departure for the given journey
          leg.
      airline_name:
        type: string
        description: The name of the airline associated with the journey leg.
      airline_code:
        type: string
        description: The IATA 2-letter accounting code identifying the airline
          associated with the journey leg.
      pnr:
        type: string
        format: alphanumeric
        pattern: ^[a-zA-Z0-9]*$
        maxLength: 20
        description: >-
          The Passenger Name Record (PNR) for the journey leg issued by the
          airline. 


          PNR is a unique identifier for the booking, acting as a digital
          certificate allowing passengers to retrieve or manage their booking
          details.


          :::warning

          This is a required field for OTAs.

          :::
    required:
      - sequence
      - departure_airport_code
      - arrival_airport_code
      - travel_date
      - airline_name
      - airline_code
  bf1b821:
    type: array
    description: >-
      Array containing information of journey legs associated with the booking.


      :::info

      This field is required for activating **Revolut Flight Alerts**
      functionalities within the Revolut app. 


      This information is used to compile a tracking widget that provides
      real-time updates on flight status and sends notifications, such as a
      check-in reminders, boarding alerts, and notifications for cancellations
      or delays. 


      To enable the widget the following fields are required on order creation
      or update, before capturing the order:

        ```
        sequence,
        departure_airport_code,
        arrival_airport_code,
        flight_number,
        travel_date,
        airline_name,
        airline_code,
        ```
      :::
    items:
      $ref: "#/x-ext/db10c08"
  ea4eaac:
    type: object
    description: |-
      Object containing additional information about an airline booking associated with the order. 

      Use this object to provide required data to enable **Revolut Flight Alerts**. This feature allows users to receive real-time flight updates such as check-in reminders, boarding alerts, and notifications for cancellations or delays in the Revolut app.

      To enable **Revolut Flight Alerts** functionalities in the Revolut app, the following fields are **required** on order creation or update, before capturing the order:
        ```
        tickets_purchase,
        journey_legs,
        booking_url
        ```

      :::note
      These are the specific data field requirements for merchants who must provide airline data. Note that these requirements can be extended on a case by case basis as decided by Revolut.

      | Required for airline/charter merchants | Required for OTA merchants |
      | -------------------------------------- | -------------------------- |
      | <ul><li>`booking_id`</li><li>`fulfillment_date`</li><li>`passengers[].first_name`</li><li>`passengers[].last_name`</li><li>`journey_legs[].pnr`</li><li>`journey_legs[].sequence`</li><li>`journey_legs[].flight_number`</li><li>`journey_legs[].travel_date`</li><li>`journey_legs[].airline_code`</li><li>`journey_legs[].departure_airport_code`</li><li>`journey_legs[].arrival_airport_code`</li></ul> | <ul><li>`booking_id`</li><li>`fulfillment_date`</li><li>`passengers[].first_name`</li><li>`passengers[].last_name`</li><li>`journey_legs[].pnr`</li><li>`journey_legs[].arrival_airport_code`</li></ul> |
      :::
    properties:
      type:
        $ref: "#/x-ext/afa9242"
      booking_id:
        $ref: "#/x-ext/91fdcb6"
      fulfillment_date:
        type: string
        format: date-time
        description: >-
          The UTC date and time of the final journey leg.


          :::warning

          The following limitations apply:
            - When creating or updating an order, `fulfillment_date` cannot be set to a date in the past.
            - When updating an order, if the current `fulfillment_date` value is already in the past, it cannot be modified. The date must remain as is to maintain data integrity for completed transactions.
          :::
      tickets_purchase:
        type: boolean
        description: >-
          Flag indicating whether the order includes actual ticket purchases.
          Set to `true` if the order contains ticket purchases, and `false` if
          it does not (e.g., it **only** contains seat reservations, or baggage
          upgrades). 


          :::info

          This field is required for activating **Revolut Flight Alerts**
          functionalities within the Revolut app.


          Provide the info on order creation or update, before capturing the
          order.

          :::
      ticket_type:
        type: string
        enum:
          - fixed
          - flexible
        description: >-
          The type of the ticket.


          | Parameter value | Description |

          | --------------- | ----------- |

          | `fixed`         | Non-modifiable once confirmed. |

          | `flexible`      | Allows modifications or cancellations under
          specified conditions. |
      crs_code:
        type: string
        maxLength: 4
        description: The code of the Computer Reservation System (CRS) used to make the
          booking and purchase the ticket.
      ticket_change_indicator:
        type: string
        enum:
          - new
          - modification
        description: Parameter indicating whether this order is related to a new ticket
          reservation or a modification of an existing one.
      refundability:
        $ref: "#/x-ext/111a824"
      passengers:
        $ref: "#/x-ext/4ab1712"
      journey_legs:
        $ref: "#/x-ext/bf1b821"
      booking_url:
        type: string
        format: uri
        pattern: ^https?:\/{2}.+/gi
        maxLength: 2000
        description: >-
          URL to the online portal for managing the airline booking, which
          includes check-in functionality. This URL may be a personalised,
          pre-populated check-in link specific to the user or a generic link,
          and it is essential for enabling direct access to booking details
          within the Revolut app.


          :::info

          This field is required for activating **Revolut Flight Alerts**
          functionalities within the Revolut app. 


          Provide the info on order creation or update, before capturing the
          order.

          :::


          :::warning

          Restrictions:

          - Must be a valid URI as defined by [RFC
          3986](https://datatracker.ietf.org/doc/html/rfc3986)

          - URI scheme is required and must be either `http` or `https`

          - URI host is required and cannot be `localhost` or an IP address

          - Max length: `2000`

          - Reserved or invalid characters must be percent-encoded (for example,
          use `%20` instead of a space)

          :::
    required:
      - type
      - booking_id
  613db16:
    type: object
    description: Object containing information about a ticket associated with the booking.
    properties:
      id:
        type: string
        description: A unique identifier provided by the merchant associated with the
          ticket.
      transferable:
        type: boolean
        description: Indicates whether the ticket is transferable to another buyer.
      refundability:
        $ref: "#/x-ext/111a824"
    required:
      - id
  ffbe862:
    type: object
    description: "Object containing booking information about a specific event. "
    properties:
      start_date:
        type: string
        format: date-time
        description: "[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time
          when the event starts."
      end_date:
        type: string
        format: date-time
        description: "[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time
          when the event ends."
      supplier:
        type: string
        description: Legal name of the ticket vendor/event organiser.
      supplier_payment_date:
        $ref: "#/x-ext/6a1e83e"
      name:
        type: string
        description: The name of the event.
      location:
        type: object
        description: The address of the event location.
        properties:
          $ref: "#/x-ext/7e82680/properties"
        required:
          $ref: "#/x-ext/7e82680/required"
      category:
        type: string
        enum:
          - concert
          - conference
          - convention
          - exhibition
          - festival
          - party
          - performance
          - other
        description: The type of the event.
      market:
        type: string
        enum:
          - primary
          - secondary
        description: >-
          Indicates the relationship between the ticket vendor and the event
          organiser. 


          | Parameter value | Description |

          | --------------- | ----------- |

          | `primary`       | The merchant is the organiser and primary
          distributor of the tickets. |

          | `secondary`     | The merchant is a reseller, only distributing the
          tickets. |
      tickets:
        type: array
        items:
          $ref: "#/x-ext/613db16"
        description: A list of tickets associated with the booking.
  194d710:
    type: object
    description: >-
      Object containing booking information for a list of event tickets
      associated with the order.


      :::info

      These are the specific data field requirements for merchants who must
      provide event data. Note that these requirements can be extended on a case
      by case basis as decided by Revolut.


      ```

      booking_id

      events[].start_date

      events[].end_date

      events[].supplier

      events[].tickets[].id

      ```

      :::
    properties:
      type:
        $ref: "#/x-ext/afa9242"
      booking_id:
        $ref: "#/x-ext/91fdcb6"
      events:
        type: array
        description: A list of events associated with the booking.
        items:
          $ref: "#/x-ext/ffbe862"
    required:
      - type
      - booking_id
  ae9a74f:
    type: object
    properties:
      first_name:
        type: string
        description: Guest's first name.
      last_name:
        type: string
        description: Guest's last name.
    required:
      - first_name
      - last_name
  d0bd4f7:
    type: array
    items:
      $ref: "#/x-ext/ae9a74f"
    description: List of guests associated with the booking.
  a947701:
    type: object
    description: >-
      Object containing details of a lodging booking.


      :::info

      These are the specific data field requirements for merchants who must
      provide lodging data. Note that these requirements can be extended on a
      case by case basis as decided by Revolut.


      ```

      booking_id

      check_in_date

      check_out_date

      supplier_payment_date

      ```

      :::
    properties:
      type:
        $ref: "#/x-ext/afa9242"
      booking_id:
        $ref: "#/x-ext/91fdcb6"
      check_in_date:
        type: string
        format: date-time
        description: "[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time
          of the check-in."
      check_out_date:
        type: string
        format: date-time
        description: "[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time
          of the check-out."
      supplier_payment_date:
        $ref: "#/x-ext/6a1e83e"
      category:
        type: string
        enum:
          - bed_and_breakfast
          - hostel
          - hotel
          - short_term_rental
          - other
        description: The type of the accommodation associated with the booking.
      booking_type:
        type: string
        enum:
          - fixed
          - flexible
        description: >-
          Indicates whether the booking terms are fixed or flexible.


          | Parameter value | Description |

          | --------------- | ----------- |

          | `fixed`         | Non-modifiable once confirmed. |

          | `flexible`      | Allows modifications or cancellations under
          specified conditions. |
      refundability:
        $ref: "#/x-ext/111a824"
      location:
        type: object
        description: Address of the accommodation.
        properties:
          $ref: "#/x-ext/7e82680/properties"
        required:
          $ref: "#/x-ext/7e82680/required"
      guests:
        $ref: "#/x-ext/d0bd4f7"
    required:
      - type
      - booking_id
  1bee50e:
    type: object
    description: Object schema containing information about order creation body
      request parameters.
    properties:
      amount:
        $ref: "#/x-ext/7dfa842"
      currency:
        $ref: "#/x-ext/1b2472a"
      settlement_currency:
        $ref: "#/x-ext/4da391a"
      description:
        $ref: "#/x-ext/a0887df"
      customer:
        $ref: "#/x-ext/f66f113"
      shipping_address:
        $ref: "#/x-ext/00ce429"
      enforce_challenge:
        $ref: "#/x-ext/d9d8857"
      line_items:
        $ref: "#/x-ext/bca3068"
      capture_mode:
        $ref: "#/x-ext/e3d4819"
      authorisation_type:
        $ref: "#/x-ext/60768e8"
      cancel_authorised_after:
        $ref: "#/x-ext/bd14ecb"
      expire_pending_after:
        $ref: "#/x-ext/9977eda"
      location_id:
        $ref: "#/x-ext/38a61e6"
      metadata:
        $ref: "#/x-ext/c146ad0"
      industry_data:
        $ref: "#/x-ext/a682105"
      merchant_order_data:
        $ref: "#/x-ext/31aea79"
      upcoming_payment_data:
        $ref: "#/x-ext/7d308f4"
      redirect_url:
        $ref: "#/x-ext/25c3c73"
      statement_descriptor_suffix:
        $ref: "#/x-ext/52074cd"
    required:
      - amount
      - currency
  c7dd364:
    type: object
    description: The details of the check for card payment. Only for orders with
      successful payments.
    properties:
      three_ds:
        type: object
        description: >-
          The details of the 3D Secure check. Only for orders with successful
          payments.


          :::note

          Not returned for Apple Pay and Google Pay payments.

          :::
        properties:
          eci:
            type: string
            description: The Electronic Commerce Indicator (ECI) value corresponds to the
              authentication result and indicates the level of security used
              when the payment information was provided.
          state:
            type: string
            description: The result of 3D Secure check.
            enum:
              - verified
              - failed
              - challenge
          version:
            type: integer
            description: The 3D Secure version.
      cvv_verification:
        type: string
        description: |-
          The result of CVV verification.

          | Parameter value | Description |
          | ----- | ----------- |
          | `match` | CVV matches the card's CVV |
          | `not_match` | CVV does not match the card's CVV |
          | `incorrect` | CVV format is incorrect for this type of card |
          | `not_processed` | CVV verification was not performed |
        enum:
          - match
          - not_match
          - incorrect
          - not_processed
      address:
        type: string
        description: The result of address verification.
        enum:
          - match
          - not_match
          - n_a
          - invalid
      postcode:
        type: string
        description: The result of postcode verification.
        enum:
          - match
          - not_match
          - n_a
          - invalid
      cardholder:
        type: string
        description: The result of cardholder verification.
        enum:
          - match
          - not_match
          - n_a
          - invalid
  81aebf6:
    type: string
    description: >-
      The authorisation code (or auth code) is a short, alphanumeric code
      returned by the cardholder's issuing bank to the merchant's terminal or
      payment gateway.


      It serves as confirmation that the transaction has been approved and funds
      are available.
    pattern: ^[a-zA-Z0-9]{2,6}$
    minLength: 2
    maxLength: 6
    examples:
      default:
        value: T483XF
  a164737:
    type: string
    description: |-
      Acquirer Reference Number (ARN) of the payment.

      :::note
      Only returned for refund payments made by a card.
      :::
    minLength: 23
    maxLength: 23
    examples:
      default:
        value: "74839572049583726403928"
  3cfba3a:
    type: string
    format: date-time
    description: >-
      The date and time by which the payment must be captured.


      After this deadline, the authorised funds may be automatically released by
      the card issuer.
  1a4ec64:
    type: string
    minLength: 44
    maxLength: 44
    description: >-
      A unique identifier for a payment method, always 44 characters long. This
      fingerprint can be used to uniquely identify various payment methods.


      #### Fingerprint generation


      | Payment method | Description |

      | -------- | ----------- |

      | **All payment methods** | A fingerprint is generated for all payment
      methods, including cards, Revolut Pay (card, account-to-account payments),
      Apple Pay, and Google Pay. |

      | **Cards (Revolut Pay & Card Gateway)** | For cards, the fingerprint is
      based on the PAN. Cards processed via Revolut Pay and our card gateway
      will share the same fingerprint. Renewed cards (new expiry/CVV) retain the
      same fingerprint for efficient blocking. |

      | **Apple Pay & Google Pay** | Since Apple Pay and Google Pay provide us
      Device PANs (DPAN), the fingerprint is based on the DPAN provided by
      Apple/Google, not the connected card's PAN. This means that a new DPAN
      (and fingerprint) is generated for cards in case they are re-added to the
      customer's digital wallet, or added to different devices. |


      #### Detecting duplicate payment methods


      Fingerprints are a valuable tool for detecting duplicate payment methods
      by identifying if a payment method has been seen before. This capability,
      in turn, helps in preventing various types of misuse (e.g., exploitation
      of free trials, or association with known problematic accounts, which can
      be a form of fraud). To effectively use fingerprints for this purpose, you
      will need to create and maintain your own lists (e.g., blocklists of known
      problematic fingerprints, allowlists for trusted customers, or tracking
      frequently used fingerprints). 


      The ideal way to utilise fingerprints is by combining them with a manual
      capture process. While automatic capture with subsequent refunds for
      problematic payments is possible, manual capture based on fingerprint
      validation is recommended.


      During your manual capture workflow, after a payment was authorised:
        
        - Check the fingerprint status by comparing it against your maintained lists and internal business rules.
        - If you decide to proceed with the payment (e.g., the fingerprint is not on a blocklist, or matches a trusted customer's previous payment method): [Capture the order](/docs/api/merchant#capture-order).
        - If you decide not to proceed with the payment (e.g., the fingerprint matches a known fraudulent fingerprint, or exhibits suspicious patterns): [Cancel the order](/docs/api/merchant#cancel-order).
    examples:
      default:
        value: 1JAllfQY4POhBV8DaddAQ4LC5RbMP8LMLvUdJW4s5JY=
  861939a:
    type: object
    properties:
      id:
        type: string
        format: uuid
        description: |-
          ID of the saved payment method.

          :::note
          The `id` parameter is only returned when the payment method is saved.
          :::
      type:
        $ref: "#/x-ext/a32ab53"
      fingerprint:
        $ref: "#/x-ext/1a4ec64"
    required:
      - type
  9bbb548:
    type: string
    description: >-
      The Network Transaction ID (NTI) is a unique identifier assigned by the
      card scheme (e.g., Visa or Mastercard) to a card transaction.


      It can be used to trace the transaction across the payment network, link
      recurring or instalment payments to the original authorisation, and
      support dispute resolution.
  f8a2cbb:
    type: object
    description: The details of the payment method used to make the payment.
    discriminator:
      propertyName: type
      mapping:
        apple_pay: ./Apple-Pay.yaml
        card: ./Card.yaml
        google_pay: ./Google-Pay.yaml
        revolut_pay_card: ./Revolut-Pay-Card.yaml
        revolut_pay_account: ./Revolut-Pay-Account.yaml
        sepa_direct_debit: ./Sepa-Direct-Debit.yaml
    oneOf:
      - $ref: "#/x-ext/30ffe89"
      - $ref: "#/x-ext/4282f0c"
      - $ref: "#/x-ext/6b05d26"
      - $ref: "#/x-ext/9146afc"
      - $ref: "#/x-ext/861939a"
      - $ref: "#/x-ext/71cc49f"
  8351cd0:
    parameters:
      - $ref: "#/x-ext/90b9838"
      - $ref: "#/x-ext/13f2186"
    post:
      summary: Create an order
      operationId: createOrder
      description: |-
        Create an `Order` object.

        Creating orders is one of the basic operations of the Merchant API. Most of the other operations are related to creating orders. Furthermore, the payment methods merchants can use to take payments for their orders are also building on order creation.

        To learn more about how you can accept payments, see:
          - [Revolut Pay](/docs/guides/merchant/accept-payments/online-payments/revolut-pay/introduction)
          - [Card payments](/docs/guides/merchant/accept-payments/online-payments/card-payments/introduction)
          - [Apple Pay and Google Pay](/docs/guides/merchant/accept-payments/online-payments/apple-pay-google-pay/introduction)
          - [Pay by Bank](/docs/guides/merchant/accept-payments/online-payments/pay-by-bank/introduction)
          - [Revolut Checkout](/docs/guides/merchant/accept-payments/online-payments/revolut-checkout/introduction)
          - [Hosted Checkout Page](/docs/guides/merchant/accept-payments/online-payments/hosted-checkout-page/introduction)


        ### Pre-authorisation and incremental authorisation

        Orders can be created with `authorisation_type: pre_authorisation` to enable incremental authorisation. This allows you to increase the authorised amount after the initial authorisation.

        **Requirements:**
        - `capture_mode` must be set to `manual`
        - `authorisation_type` must be set to `pre_authorisation`
        - Only supported for card payments currently

        **Example use cases:**
        - Hotels: authorise deposit, then increment for room service and minibar
        - Car rentals: authorise deposit, then increment for damages or fuel

        :::info
        For more information, see:
        - [Pre-authorisation guide](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/pre-authorisation)
        - [Incremental authorisation guide](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/incremental-authorisation)
        - [Increment authorisation endpoint](/docs/api/merchant/2024-05-01#increment-authorisation)
        :::

        <details>
        <summary>Industry-specific requirements</summary>

        If you operate in any of the industries listed below, sharing industry-specific data is mandatory. Not providing the necessary information will result in further scrutiny from Revolut and/or the imposition of risk mitigation actions.

        | Industry | Related fields |
        | ------- | --------------- |
        | Retail merchants | `line_items` |
        | Airlines | `industry_data` with `type: airline` |
        | Car rentals | `industry_data` with `type: car_rental` |
        | Hotels & accommodation | `industry_data` with `type: lodging` |
        | Travel agencies (OTAs) | `industry_data` with `type: airline` or `industry_data` with `type: lodging` |
        | Crypto merchants | `industry_data` with `type: crypto`; `customer.full_name`, `customer.date_of_birth` |
        | Financial institutions | `customer.full_name`, `customer.date_of_birth` |
        | Stored value / Wallets | `customer.full_name`, `customer.date_of_birth` |
        | Event ticket sellers | `industry_data` with `type: event` |
        | Marketplace merchants | `industry_data` with `type: marketplace` |

        </details>
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/1bee50e"
            examples:
              example_order_min:
                $ref: "#/x-ext/e37bb36"
              example_order_additional:
                $ref: "#/x-ext/b9095ac"
              example_order_pre_auth:
                $ref: "#/x-ext/95e8559"
              example_order_line_items:
                $ref: "#/x-ext/15a16ad"
              example_order_airline:
                $ref: "#/x-ext/1a159c9"
              example_order_car_rental:
                $ref: "#/x-ext/291db52"
              example_order_crypto:
                $ref: "#/x-ext/6807cfe"
              example_order_marketplace:
                $ref: "#/x-ext/dfc2e3e"
              example_order_event:
                $ref: "#/x-ext/c63e1b3"
              example_order_lodging:
                $ref: "#/x-ext/4035d20"
      responses:
        "201":
          description: Order created
          content:
            application/json:
              schema:
                $ref: "#/x-ext/8969f94"
              examples:
                example_order_min:
                  $ref: "#/x-ext/e8e192f"
                example_order_additional:
                  $ref: "#/x-ext/0df7c3d"
                example_order_pre_auth:
                  $ref: "#/x-ext/cfb7391"
                example_order_line_items:
                  $ref: "#/x-ext/312ca55"
                example_order_airline:
                  $ref: "#/x-ext/68329f0"
                example_order_car_rental:
                  $ref: "#/x-ext/157b6be"
                example_order_crypto:
                  $ref: "#/x-ext/60c8415"
                example_order_marketplace:
                  $ref: "#/x-ext/982681c"
                example_order_event:
                  $ref: "#/x-ext/84463ae"
                example_order_lodging:
                  $ref: "#/x-ext/0cf2bd5"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: bad_request
                    message: Could not parse JSON
                    timestamp: 1721049596461
          headers: {}
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
              examples:
                default:
                  value:
                    code: unauthenticated
                    message: Authentication failed
                    timestamp: 1721049596461
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/a4a371d"
      tags:
        - Orders
      security:
        - Api-Key: []
  bd72d25:
    type: array
    description: |-
      A list of one or more time intervals for a single day. 

      A day can have multiple intervals (e.g., closing for a lunch break).
    items:
      type: object
      properties:
        from:
          type: string
          format: time
          description: >-
            The local time when the interval begins.


            :::note

            The format is `hh:mm[:ss]`; seconds are optional and must be `00` if
            provided.

            :::
          examples:
            - 09:00:00
        to:
          type: string
          format: time
          description: >-
            The local time when the interval ends.


            :::note

            The format is `hh:mm[:ss]`; seconds are optional and must be `00` if
            provided.

            :::
          examples:
            - 18:00:00
      required:
        - from
        - to
  51f7943:
    type: object
    description: |-
      An object containing the opening hours for each day of the week.

      A day can have multiple intervals (e.g., closing for a lunch break).
    properties:
      monday:
        description: Opening hours for Monday.
        $ref: "#/x-ext/bd72d25"
      tuesday:
        description: Opening hours for Tuesday.
        $ref: "#/x-ext/bd72d25"
      wednesday:
        description: Opening hours for Wednesday.
        $ref: "#/x-ext/bd72d25"
      thursday:
        description: Opening hours for Thursday.
        $ref: "#/x-ext/bd72d25"
      friday:
        description: Opening hours for Friday.
        $ref: "#/x-ext/bd72d25"
      saturday:
        description: Opening hours for Saturday.
        $ref: "#/x-ext/bd72d25"
      sunday:
        description: Opening hours for Sunday.
        $ref: "#/x-ext/bd72d25"
  86ae415:
    type: object
    properties:
      name:
        $ref: "#/x-ext/c1e66bb"
      type:
        $ref: "#/x-ext/fc3b5f1"
      details:
        $ref: "#/x-ext/874157f"
    required:
      - name
      - type
      - details
  2975c2e:
    type: object
    description: Request body for creating a location. The structure of the
      `details` object depends on the `type` of the location.
    oneOf:
      - $ref: "#/x-ext/c17f5d5"
      - $ref: "#/x-ext/86ae415"
    discriminator:
      propertyName: type
      mapping:
        online: ./Location-Creation-Online.yaml
        physical: ./Location-Creation-Physical.yaml
  45a45bc:
    parameters:
      - $ref: "#/x-ext/90b9838"
    post:
      summary: Create a location
      operationId: createLocation
      description: Create a `Location` object. Supports `online` and `physical`
        location types.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/x-ext/2975c2e"
            examples:
              example_online_location:
                $ref: "#/x-ext/363f6bd"
              example_physical_location:
                $ref: "#/x-ext/4a64a36"
      responses:
        "201":
          description: Location created
          content:
            application/json:
              schema:
                $ref: "#/x-ext/cf5e7ce"
              examples:
                example_online_location:
                  $ref: "#/x-ext/dd56a7e"
                example_physical_location:
                  $ref: "#/x-ext/9ca09cb"
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: "#/x-ext/329b2d1"
      security:
        - Api-Key: []
      tags:
        - Locations
    get:
      summary: Retrieve location list
      operationId: retrieveLocationList
      description: >-
        Retrieve a list of locations registered for the merchant.


        :::note [Default behavior]

        Without the `type` query parameter, this endpoint returns only
        **online** locations by default. To retrieve physical locations, you
        must explicitly specify `type=physical` in the query parameters.

        :::
      parameters:
        - $ref: "#/x-ext/741a418"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/x-ext/cf5e7ce"
              examples:
                list_of_locations:
                  summary: Location list
                  value:
                    - id: 8d9a7125-805f-40f3-a405-bc89765db996
                      name: Grocery website
                      type: online
                      details:
                        domain: groceries.example.com
                    - id: 066223df-d5a8-42f0-b3ce-688c7a76f9a8
                      name: Cars website
                      type: online
                      details:
                        domain: cars.example.com
                    - id: 299050a4-cc7a-44b0-8b2b-7cd1e335ef38
                      name: Example Street Store
                      type: physical
                      details:
                        address:
                          street_line_1: 123 Example Street
                          city: Example city
                          postcode: "12345"
                          country_code: GB
                        geo_location:
                          lat: 12.3456
                          lon: -12.3456
                        opening_hours:
                          monday:
                            - from: 09:00
                              to: 15:00
                            - from: 16:00
                              to: 18:00
                          tuesday:
                            - from: 10:00
                              to: 13:00
                            - from: 16:00
                              to: 18:00
        "401":
          description: Unauthorized
      security:
        - Api-Key: []
      tags:
        - Locations
