Sandbox
Help

Merchant API2023-09-01

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:

... and more.

API versions

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: 2023-09-01'

For more information, see: API versions

Test the Merchant API

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

View in Postman

Authentication

Security scheme type:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Orders

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.

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.

The Create an order endpoint 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.

Create an order

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:

Industry-specific requirements

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.

IndustryRelated fields
Airlinesindustry_data with type: airline
Car rentalsindustry_data with type: car_rental
Hotels & accommodationindustry_data with type: lodging
Travel agencies (OTAs)industry_data with type: airline or industry_data with type: lodging
Crypto merchantsindustry_data with type: crypto; customer.full_name, customer.date_of_birth
Financial institutionscustomer.full_name, customer.date_of_birth
Stored value / Walletscustomer.full_name, customer.date_of_birth
Event ticket sellersindustry_data with type: event
Marketplace merchantsindustry_data with type: marketplace

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)required
Request body
amount
integerrequired
currency
string(ISO 4217)required
settlement_currency
string
description
string
customer
object
shipping_address
object
enforce_challenge
string
capture_mode
string
authorisation_type
string
cancel_authorised_after
string(duration)
expire_pending_after
string(duration)
location_id
string(uuid)
metadata
object
industry_data
object
merchant_order_data
object
upcoming_payment_data
object
redirect_url
string(uri)
statement_descriptor_suffix
string

Response

Order created

Body
object
id
string(uuid)
token
string
type
string
state
string
created_at
string(date-time)
updated_at
string(date-time)
description
string
capture_mode
string
authorisation_type
string
cancel_authorised_after
string(duration)
amount
integer
outstanding_amount
integer
refunded_amount
integer
currency
string(ISO 4217)
settlement_currency
string
customer
object
shipping_address
object
payments
array
location_id
string(uuid)
metadata
object
industry_data
object
merchant_order_data
object
upcoming_payment_data
object
checkout_url
string(uri)
redirect_url
string(uri)
enforce_challenge
string
statement_descriptor_suffix
string
post/api/orders
curl -X POST "https://merchant.revolut.com/api/orders" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01" \
  -d '{
  "amount": 500,
  "currency": "GBP"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "amount": 500,
  "currency": "GBP"
}

Response body samples

{
  "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"
}

Retrieve an order

Retrieve the details of an order that has been created. Provide the unique order ID, and the corresponding order information is returned.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)required
Path parameters
order_id
string(uuid)required

Response

Order retrieved

Body
object
id
string(uuid)
token
string
type
string
state
string
created_at
string(date-time)
updated_at
string(date-time)
description
string
capture_mode
string
authorisation_type
string
cancel_authorised_after
string(duration)
amount
integer
outstanding_amount
integer
refunded_amount
integer
currency
string(ISO 4217)
settlement_currency
string
customer
object
shipping_address
object
payments
array
location_id
string(uuid)
metadata
object
industry_data
object
merchant_order_data
object
upcoming_payment_data
object
checkout_url
string(uri)
redirect_url
string(uri)
enforce_challenge
string
statement_descriptor_suffix
string
get/api/orders/{order_id}
curl -X GET "https://merchant.revolut.com/api/orders/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "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"
}

Update an order

Update the details of an order.

You can update an order and specific parameters based on the value of the state parameter:

State parameter valueModifiable parameters
pendingYou can modify all listed parameters.
authorisedYou can modify the following parameters:

  • merchant_order_data.reference
  • description
  • metadata
  • shipping_address
  • industry_data
  • cancel_authorised_after
completedYou can modify the following parameters:

  • merchant_order_data.reference
  • description
  • metadata
  • shipping_address
  • industry_data
processingYou cannot modify parameters.

For more information about the order lifecycle, see: Order and payment lifecycle.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)required
Path parameters
order_id
string(uuid)required
Request body
amount
integer
currency
string(ISO 4217)
settlement_currency
string
description
string
customer
object
shipping_address
object
enforce_challenge
string
capture_mode
string
cancel_authorised_after
string(duration)
metadata
object
industry_data
object
merchant_order_data
object
upcoming_payment_data
object
redirect_url
string(uri)
statement_descriptor_suffix
string

Response

Order updated

Body
object
id
string(uuid)
token
string
type
string
state
string
created_at
string(date-time)
updated_at
string(date-time)
description
string
capture_mode
string
authorisation_type
string
cancel_authorised_after
string(duration)
amount
integer
outstanding_amount
integer
refunded_amount
integer
currency
string(ISO 4217)
settlement_currency
string
customer
object
shipping_address
object
payments
array
location_id
string(uuid)
metadata
object
industry_data
object
merchant_order_data
object
upcoming_payment_data
object
checkout_url
string(uri)
redirect_url
string(uri)
enforce_challenge
string
statement_descriptor_suffix
string
patch/api/orders/{order_id}
curl -X PATCH "https://merchant.revolut.com/api/orders/123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01" \
  -d '{
  "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"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "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"
}

Response body samples

{
  "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"
}

Retrieve an order list

Retrieve all the orders that you've created. You can also use the query parameters for:

FilteringPagination
Filter the orders that you want to retrieve, for example, only retrieve the orders that have a specific email.

Parameters used for filtering:
  • from_created_date
  • to_created_date
  • customer_id
  • email
  • merchant_order_ext_ref
  • state
View the orders without loading all of them at once, for example, return a specified number of orders per page.

Parameters used for pagination:
  • limit
  • created_before

The response contains an array of simplified Order objects. To get the full details of an Order object, use the Retrieve an order endpoint.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Query parameters
limit
integer
created_before
string(date-time)
from_created_date
string(date-time)
to_created_date
string(date-time)
customer_id
string(uuid)
email
string(email)
merchant_order_ext_ref
string
state
array

Response

OK

Body
array of object
id
stringrequired
type
stringrequired
state
stringrequired
created_at
string(date-time)required
updated_at
string(date-time)required
completed_at
string(date-time)
description
string
capture_mode
string
settlement_currency
string
merchant_order_ext_ref
string
customer_id
string
email
string(email)
phone
string
order_amount
objectrequired
order_outstanding_amount
object
shipping_address
object
get/api/1.0/orders
curl -X GET "https://merchant.revolut.com/api/1.0/orders?limit=100&created_before=2024-01-01T00%3A00%3A00Z&from_created_date=2024-01-01T00%3A00%3A00Z&to_created_date=2024-01-01T00%3A00%3A00Z&customer_id=123e4567-e89b-12d3-a456-426614174000&email=user%40example.com&merchant_order_ext_ref=string&state=%5B%5D" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

[
  {
    "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"
    }
  }
]

Capture an order

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.

For more information about the order and payment lifecycle, see: Order and payment lifecycle.

Capture modes

When you create an order, you can choose one of the following capture modes:

Capture modeDescription
automaticThe order is captured automatically after payment authorisation. No further actions are needed.
manualThe order is not captured automatically and stays in authorised state. You must manually capture the order using the steps outlined below.

Uncaptured orders remain in authorised state for 7 days. If not captured within this period, the funds are returned to the customer's original payment method.

Manual capture

To capture an order manually, use one of the following methods:

Web UIMerchant API
  1. Log in to your Revolut Business portal.
  2. Navigate to the Merchant tab on the dashboard, and click the See all button in the Transactions section.
  3. Select an uncaptured payment, and click Capture.
Use the /capture endpoint.

For more information about manually capturing an order, see: Authorise an amount to 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.

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

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 request, returning the current order state.
  • A subsequent request with a different capture amount returns an error.

Utilising the idempotent nature of this endpoint helps maintain data consistency and prevents duplicate processing of the same order.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)required
Path parameters
order_id
string(uuid)required
Request body
amount
integer

Response

Order captured

Body
object
id
string(uuid)
token
string
type
string
state
string
created_at
string(date-time)
updated_at
string(date-time)
description
string
capture_mode
string
authorisation_type
string
cancel_authorised_after
string(duration)
amount
integer
outstanding_amount
integer
refunded_amount
integer
currency
string(ISO 4217)
settlement_currency
string
customer
object
shipping_address
object
payments
array
location_id
string(uuid)
metadata
object
industry_data
object
merchant_order_data
object
upcoming_payment_data
object
checkout_url
string(uri)
redirect_url
string(uri)
enforce_challenge
string
statement_descriptor_suffix
string
post/api/orders/{order_id}/capture
curl -X POST "https://merchant.revolut.com/api/orders/123e4567-e89b-12d3-a456-426614174000/capture" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01" \
  -d '{
  "amount": 100
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "amount": 100
}

Response body samples

{
  "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": [],
      "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"
}

Cancel an order

Cancel an existing uncaptured order.

You can only cancel an order that is in one of the following states:

Order stateDescription
pendingThe order does not have any successful payment.
authorisedThe capture_mode of an order is set to manual and the customer has made a successful payment.

For more information about the order lifecycle, see: Order and payment lifecycle.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)
Path parameters
order_id
string(uuid)required

Response

OK

Body
object
id
string(uuid)
token
string
type
string
state
string
created_at
string(date-time)
updated_at
string(date-time)
description
string
capture_mode
string
authorisation_type
string
cancel_authorised_after
string(duration)
amount
integer
outstanding_amount
integer
refunded_amount
integer
currency
string(ISO 4217)
settlement_currency
string
customer
object
shipping_address
object
payments
array
location_id
string(uuid)
metadata
object
industry_data
object
merchant_order_data
object
upcoming_payment_data
object
checkout_url
string(uri)
redirect_url
string(uri)
enforce_challenge
string
statement_descriptor_suffix
string
post/api/orders/{order_id}/cancel
curl -X POST "https://merchant.revolut.com/api/orders/123e4567-e89b-12d3-a456-426614174000/cancel" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "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"
}

Refund an order (Deprecated)

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

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Idempotency-Key
string
Path parameters
order_id
string(uuid)required
Request body
amount
integerrequired
description
string
merchant_order_ext_ref
string
metadata
object

Response

OK

Body
object
id
string(uuid)required
public_id
string
type
stringrequired
state
stringrequired
created_at
string(date-time)required
updated_at
string(date-time)required
completed_at
string(date-time)
description
string
capture_mode
string
settlement_currency
string
merchant_order_ext_ref
string
customer_id
string
email
string(email)
phone
string
full_name
string
order_amount
objectrequired
order_outstanding_amount
object
refunded_amount
object
shipping_address
object
payments
array
related
array
metadata
object
checkout_url
string(uri)
merchant_order_uri
string(uri)
post/api/1.0/orders/{order_id}/refund
curl -X POST "https://merchant.revolut.com/api/1.0/orders/123e4567-e89b-12d3-a456-426614174000/refund" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Idempotency-Key: string" \
  -d '{
  "amount": 40,
  "description": "Refund for damaged goods"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "amount": 40,
  "description": "Refund for damaged goods"
}

Response body samples

{
  "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"
      }
    }
  ]
}

Pay for an order

Initiate a payment to pay full amount for an order using a customer's saved payment method.

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

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.

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: customersavePaymentMethodFor: merchant
initiator: customerAllowedAllowed
initiator: merchantNot allowedAllowed

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

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
order_id
string(uuid)required
Request body
saved_payment_method
objectrequired

Response

Payment initiated

Body
object
id
string(uuid)required
order_id
string(uuid)required
payment_method
objectrequired
token
string(uuid)
amount
integer(int64)
currency
string(ISO 4217)
state
string
decline_reason
string
authentication_challenge
object
post/api/orders/{order_id}/payments
curl -X POST "https://merchant.revolut.com/api/orders/123e4567-e89b-12d3-a456-426614174000/payments" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "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"
    }
  }
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "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"
    }
  }
}

Response body samples

{
  "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"
}

Retrieve payment list of an order

Retrieve a list of payments for a specific order, based on the order's ID.

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:

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
order_id
string(uuid)required

Response

List of payments

Body
array of object
id
string(uuid)required
order_id
string(uuid)required
payment_method
objectrequired
token
string(uuid)
amount
integer(int64)
currency
string(ISO 4217)
state
string
decline_reason
string
authentication_challenge
object
get/api/orders/{order_id}/payments
curl -X GET "https://merchant.revolut.com/api/orders/123e4567-e89b-12d3-a456-426614174000/payments" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

[
  {
    "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"
    }
  }
]

Customers

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

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.

Create a customer (Deprecated)deprecated

Create a customer that has the information in the body of the request.

If you wish to save a customer's payment details using any of the available payment methods on the Revolut Checkout Widget (Revolut Pay, Card payments), 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

For more information, see: Charge a customer's saved payment method.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Request body
full_name
string
business_name
string
email
string(email)required
phone
string
date_of_birth
string(date)

Response

Created

Body
object
id
stringrequired
full_name
string
business_name
string
phone
string
created_at
string(date-time)required
updated_at
string(date-time)required
email
string(email)required
date_of_birth
string(date)
post/api/1.0/customers
curl -X POST "https://merchant.revolut.com/api/1.0/customers" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "full_name": "Example Customer",
  "business_name": "Example Business",
  "email": "example.customer@example.com",
  "phone": "+441234567890",
  "date_of_birth": "1990-01-01"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "full_name": "Example Customer",
  "business_name": "Example Business",
  "email": "example.customer@example.com",
  "phone": "+441234567890",
  "date_of_birth": "1990-01-01"
}

Response body samples

{
  "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"
}

Retrieve a customer list (Deprecated)deprecated

Get a list of all your customers.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Query parameters
limit
integer
page
integer

Response

OK

Body
array of object
id
stringrequired
full_name
string
business_name
string
phone
string
created_at
string(date-time)required
updated_at
string(date-time)required
email
string(email)required
date_of_birth
string(date)
get/api/1.0/customers
curl -X GET "https://merchant.revolut.com/api/1.0/customers?limit=100&page=0" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

[
  {
    "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"
  }
]

Retrieve a customer (Deprecated)deprecated

Get the information about a specific customer, based on its ID.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
customer_id
string(uuid)required

Response

OK

Body
object
id
stringrequired
full_name
string
business_name
string
phone
string
created_at
string(date-time)required
updated_at
string(date-time)required
email
string(email)required
date_of_birth
string(date)
payment_methods
array
get/api/1.0/customers/{customer_id}
curl -X GET "https://merchant.revolut.com/api/1.0/customers/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "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"
      }
    }
  ]
}

Update a customer (Deprecated)deprecated

Update the attributes of a specific customer.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
customer_id
string(uuid)required
Request body
full_name
string
business_name
string
email
string(email)
phone
string
date_of_birth
string(date)

Response

OK

Body
object
id
stringrequired
full_name
string
business_name
string
phone
string
created_at
string(date-time)required
updated_at
string(date-time)required
email
string(email)required
date_of_birth
string(date)
patch/api/1.0/customers/{customer_id}
curl -X PATCH "https://merchant.revolut.com/api/1.0/customers/123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "email": "example.business@example.com"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "email": "example.business@example.com"
}

Response body samples

{
  "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"
}

Delete a customer (Deprecated)deprecated

Delete the profile of a specific customer.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
customer_id
string(uuid)required

Response

No Content

delete/api/1.0/customers/{customer_id}
curl -X DELETE "https://merchant.revolut.com/api/1.0/customers/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

No contentThis response does not have a body.

Retrieve all payment methods of a customer (Deprecated)deprecated

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.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
customer_id
string(uuid)required
Query parameters
only_merchant
boolean

Response

OK

Body
array of object
id
string(uuid)required
type
string
saved_for
string
method_details
object
get/api/1.0/customers/{customer_id}/payment-methods
curl -X GET "https://merchant.revolut.com/api/1.0/customers/123e4567-e89b-12d3-a456-426614174000/payment-methods?only_merchant=false" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

[
  {
    "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"
    }
  }
]

Retrieve a customer's payment method (Deprecated)deprecated

Retrieve the information of a specific payment method that is saved.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
customer_id
string(uuid)required
payment_method_id
string(uuid)required

Response

OK

Body
object
id
string(uuid)required
type
string
saved_for
string
method_details
object
get/api/1.0/customers/{customer_id}/payment-methods/{payment_method_id}
curl -X GET "https://merchant.revolut.com/api/1.0/customers/123e4567-e89b-12d3-a456-426614174000/payment-methods/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "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"
  }
}

Update a customer's payment method (Deprecated)deprecated

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:

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
customer_id
string(uuid)required
payment_method_id
string(uuid)required
Request body
saved_for
stringrequired

Response

OK

Body
object
id
string(uuid)required
type
string
saved_for
string
method_details
object
patch/api/1.0/customers/{customer_id}/payment-methods/{payment_method_id}
curl -X PATCH "https://merchant.revolut.com/api/1.0/customers/123e4567-e89b-12d3-a456-426614174000/payment-methods/123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "saved_for": "CUSTOMER"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "saved_for": "CUSTOMER"
}

Response body samples

{
  "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"
  }
}

Delete a customer's payment method (Deprecated)deprecated

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.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
customer_id
string(uuid)required
payment_method_id
string(uuid)required

Response

No Content

delete/api/1.0/customers/{customer_id}/payment-methods/{payment_method_id}
curl -X DELETE "https://merchant.revolut.com/api/1.0/customers/123e4567-e89b-12d3-a456-426614174000/payment-methods/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

No contentThis response does not have a body.

Payments

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.

For more information about the payment lifecycle, see: Order and payment lifecycle.

Retrieve payment details

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
payment_id
string(uuid)required

Response

Payment details

Body
object
id
string(uuid)required
order_id
string(uuid)required
payment_method
objectrequired
token
string(uuid)
amount
integer(int64)
currency
string(ISO 4217)
state
string
decline_reason
string
authentication_challenge
object
get/api/payments/{payment_id}
curl -X GET "https://merchant.revolut.com/api/payments/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "id": "64905d4b-a205-aac3-a5ef-dab978b1b7ee",
  "order_id": "64905d0f-3f95-a2ac-91ea-57c77f9dbe69",
  "state": "completed",
  "payment_method": {
    "type": "revolut_pay",
    "subtype": "revolut_account",
    "id": "648334a8-9546-a983-a81a-efc6d5bdd0be"
  }
}

Payouts

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 that provide comprehensive breakdowns of all transactions contributing to the payout amounts.

Payout information, including IDs, can be retrieved via the Retrieve payout list endpoint or from webhook events related to payouts.

Retrieve a payout list

Retrieve all the payouts you made from your Merchant account. You can also use the query parameters for:

FilteringPagination
Filter the orders that you want to retrieve, for example, only retrieve the orders that have a specific email.

Parameters used for filtering:
  • from_created_date
  • to_created_date
  • currency
  • state
View the orders without loading all of them at once, for example, return a specified number of orders per page.

Parameters used for pagination:
  • limit

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)required
Query parameters
currency
string
limit
integer
from_created_date
string(date-time)
to_created_date
string(date-time)
state
array

Response

Payouts retrieved

Body
array of object
id
string(uuid)required
state
stringrequired
created_at
string(date-time)required
destination_type
stringrequired
amount
integer
currency
string(ISO 4217)
get/api/payouts
curl -X GET "https://merchant.revolut.com/api/payouts?currency=aaa&limit=1&from_created_date=2024-01-01T00%3A00%3A00Z&to_created_date=2024-01-01T00%3A00%3A00Z&state=%5B%5D" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

[
  {
    "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"
  }
]

Retrieve a payout

Retrieve the details of a payout. Provide the unique payout ID, and the corresponding payout information is returned.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)required
Path parameters
payout_id
string(uuid)required

Response

Payout retrieved

Body
object
id
string(uuid)required
state
stringrequired
created_at
string(date-time)required
destination_type
stringrequired
amount
integer
currency
string(ISO 4217)
get/api/payouts/{payout_id}
curl -X GET "https://merchant.revolut.com/api/payouts/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "id": "a830020e-090c-4717-836d-37941a27ad12",
  "state": "completed",
  "created_at": "2024-02-27T00:16:39.079285Z",
  "destination_type": "current_pocket",
  "amount": 50000,
  "currency": "GBP"
}

Report runs

In addition to the CSV statements you can export via the Revolut Business Dashboard, you can generate custom CSV reports using the Report runs operations. Unlike the default statements, creating custom reports offers you more flexibility in determining what data you wish to incorporate. This allows you to have more control over your analytics.

For more information about how to generate custom CSV reports, see: Create CSV reports of transactions.

Create a new report run

Start generating a new report of the relevant transactions, and receive report_run_id.

After generation is done, use the link in file_url to download the report. Use the Retrieve report run details operation to check the status of the report run.

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

Report typeWhat it coversRequired filter
custom_reportSettled and processing transactions with configurable columnsfrom, to
settlement_reportPredefined settled transaction viewfrom, to
payout_statement_reportAll transactions contributing to a specific payoutfilter.payout_id
icpp_fee_breakdown_reportIC++ fees per transaction for a specific IC++ chargefilter.icpp_charge_id
payments_reportAll payments including failed and declined onesfrom, to

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Request body
filter
objectrequired
format
stringrequired
type
stringrequireddiscriminator
options
object

Response

Report run created, report started generating

Body
object
report_run_id
string(uuid)required
status
stringrequired
file_url
string
post/api/report-runs
curl -X POST "https://merchant.revolut.com/api/report-runs" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "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"
    ]
  }
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "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"
    ]
  }
}

Response body samples

{
  "report_run_id": "d6f6ef64-f668-4e64-8967-1cdf8afb2561",
  "status": "processing"
}

Retrieve report run details

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.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
report_run_id
string(uuid)required

Response

Report run found

Body
object
report_run_id
string(uuid)required
status
stringrequired
file_url
string
get/api/report-runs/{report_run_id}
curl -X GET "https://merchant.revolut.com/api/report-runs/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "report_run_id": "d6f6ef64-f668-4e64-8967-1cdf8afb2561",
  "status": "processing"
}

Download report file

Use this endpoint to download the generated report file.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
report_run_id
string(uuid)required

Response

OK

Body
string

CSV-formatted text representing the generated report file.

get/api/report-runs/{report_run_id}/file
curl -X GET "https://merchant.revolut.com/api/report-runs/123e4567-e89b-12d3-a456-426614174000/file" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

"transaction_id,order_id,payment_method,amount,currency,state,updated_date\n\n649ae37f-99ca-a7db-a4fb-5924af14ad7c,649ae35c-2558-adea-bf98-3a7156a764e7,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T13:30:46.07498Z\n\n649ae3de-e945-af9f-98c8-1d6172e350b5,649ae3ab-3998-ab2b-ad95-41b48346be69,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T13:30:46.075569Z\n\n649ae48b-37f6-a097-9cb0-4fc2a89d9e5a,649ae479-d7e8-a139-993b-bf75865c5059,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T13:38:46.084289Z\n\n649af325-0695-ac77-8868-ab421510a964,649af29d-be4a-a854-b872-3ececa585e0a,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T14:34:56.894573Z\n\n649af3a5-efbd-af7e-8c95-022bbdb91f1b,649af383-670d-a390-b22c-799a00892645,PAY_WITH_REVOLUT,0.05,GBP,COMPLETED,2023-06-28T14:42:56.903122Z\n\n649ab540-352a-ac19-866f-47189c00d1a2,649ab53e-53ba-a398-88e1-78cf5bd9d348,PAY_WITH_REVOLUT,0.50,GBP,COMPLETED,2023-06-28T10:14:18.000566Z"

Webhooks

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.

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.

For more information about the order and payment lifecycle, see: Order and payment lifecycle.

Create a webhook (Deprecated)deprecated

Set up a webhook URL so that the Merchant API can push event notifications to the specified URL.

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.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Request body
url
string(uri)required
events
arrayrequired

Response

OK

Body
object
id
string(uuid)required
url
string(uri)
events
array
signing_secret
stringrequired
post/api/1.0/webhooks
curl -X POST "https://merchant.revolut.com/api/1.0/webhooks" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "url": "https://example.com/webhooks",
  "events": [
    "ORDER_COMPLETED",
    "ORDER_AUTHORISED"
  ]
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "url": "https://example.com/webhooks",
  "events": [
    "ORDER_COMPLETED",
    "ORDER_AUTHORISED"
  ]
}

Response body samples

{
  "id": "c6b981f4-53b3-47d5-9b24-4f87af1160eb",
  "url": "https://example.com/webhooks",
  "events": [
    "ORDER_AUTHORISED",
    "ORDER_COMPLETED"
  ],
  "signing_secret": "wsk_4jETWMz1g1b37gCONjNp84t2KSSIT7dK"
}

Retrieve a webhook list (Deprecated)deprecated

Get a list of webhooks that you are currently subscribed to.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required

Response

OK

Body
array of object
id
string(uuid)required
url
string(uri)
events
array
get/api/1.0/webhooks
curl -X GET "https://merchant.revolut.com/api/1.0/webhooks" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

[
  {
    "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"
    ]
  }
]

Retrieve a webhook (Deprecated)deprecated

Get the details of a specific webhook.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
webhook_id
string(uuid)required

Response

OK

Body
object
id
string(uuid)required
url
string(uri)
events
array
signing_secret
stringrequired
get/api/1.0/webhooks/{webhook_id}
curl -X GET "https://merchant.revolut.com/api/1.0/webhooks/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "id": "c6b981f4-53b3-47d5-9b24-4f87af1160eb",
  "url": "https://example.com/webhooks",
  "events": [
    "ORDER_AUTHORISED",
    "ORDER_COMPLETED"
  ],
  "signing_secret": "wsk_4jETWMz1g1b37gCONjNp84t2KSSIT7dK"
}

Update a webhook (Deprecated)deprecated

Update the details of a specific webhook.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
webhook_id
string(uuid)required
Request body
url
string(uri)required
events
arrayrequired

Response

OK

Body
object
id
string(uuid)required
url
string(uri)
events
array
put/api/1.0/webhooks/{webhook_id}
curl -X PUT "https://merchant.revolut.com/api/1.0/webhooks/123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "url": "http://business.revolut.com",
  "events": [
    "ORDER_COMPLETED"
  ]
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "url": "http://business.revolut.com",
  "events": [
    "ORDER_COMPLETED"
  ]
}

Response body samples

{
  "id": "c6b981f4-53b3-47d5-9b24-4f87af1160eb",
  "url": "http://business.revolut.com",
  "events": [
    "ORDER_COMPLETED"
  ]
}

Delete a webhook (Deprecated)deprecated

Delete a webhook so that events are not sent to the specified URL any more.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
webhook_id
string(uuid)required

Response

No Content

delete/api/1.0/webhooks/{webhook_id}
curl -X DELETE "https://merchant.revolut.com/api/1.0/webhooks/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

No contentThis response does not have a body.

Rotate a webhook signing secret (Deprecated)deprecated

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
webhook_id
string(uuid)required
Request body
expiration_period
string(duration)

Response

OK

Body
object
id
string(uuid)required
url
string(uri)
events
array
signing_secret
stringrequired
post/api/1.0/webhooks/{webhook_id}/rotate-signing-secret
curl -X POST "https://merchant.revolut.com/api/1.0/webhooks/123e4567-e89b-12d3-a456-426614174000/rotate-signing-secret" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "expiration_period": "PT5H30M"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "expiration_period": "PT5H30M"
}

Response body samples

{
  "id": "c6b981f4-53b3-47d5-9b24-4f87af1160eb",
  "url": "http://business.revolut.com",
  "events": [
    "ORDER_COMPLETED"
  ],
  "signing_secret": "wsk_4jETWMz1g1b37gCONjNp84t2KSSIT6aG"
}

Locations

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 endpoint, setting the type to online.
  2. Configure your custom processes on your backend for each registered location (e.g., grouping orders, custom pricing, etc.).
  3. Send the location_id parameter in the request body during order creation to assign the order to a specific location.
Physical locations
  1. Register a physical location using the Create a location endpoint, setting the type to physical.
  2. 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.

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 for each one, your backend can apply the correct shipping logic and pricing for the specific storefront a customer is buying from.

Create a location

Create a Location object. Supports online and physical location types.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Request body
name
stringrequired
type
stringrequireddiscriminator
details
objectrequired

Response

Location created

Body
object
id
string(uuid)required
name
stringrequired
type
stringrequireddiscriminator
details
objectrequired
post/api/locations
curl -X POST "https://merchant.revolut.com/api/locations" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "name": "Grocery website",
  "type": "online",
  "details": {
    "domain": "groceries.example.com"
  }
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "name": "Grocery website",
  "type": "online",
  "details": {
    "domain": "groceries.example.com"
  }
}

Response body samples

{
  "id": "8d9a7125-805f-40f3-a405-bc89765db996",
  "name": "Grocery website",
  "type": "online",
  "details": {
    "domain": "groceries.example.com"
  }
}

Retrieve location list

Retrieve a list of locations registered for the merchant.

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.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Query parameters
type
string

Response

OK

Body
array of object
id
string(uuid)required
name
stringrequired
type
stringrequireddiscriminator
details
objectrequired
get/api/locations
curl -X GET "https://merchant.revolut.com/api/locations?type=online" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

[
  {
    "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"
          }
        ]
      }
    }
  }
]

Retrieve a location

Retrieve details of a specific location, based on its ID.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
location_id
string(uuid)required

Response

OK

Body
object
id
string(uuid)required
name
stringrequired
type
stringrequireddiscriminator
details
objectrequired
get/api/locations/{location_id}
curl -X GET "https://merchant.revolut.com/api/locations/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "id": "8d9a7125-805f-40f3-a405-bc89765db996",
  "name": "Grocery website",
  "type": "online",
  "details": {
    "domain": "groceries.example.com"
  }
}

Update a location

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.

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

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
location_id
string(uuid)required
Request body
name
string
details
object

Response

Location updated

Body
object
id
string(uuid)required
name
stringrequired
type
stringrequireddiscriminator
details
objectrequired
patch/api/locations/{location_id}
curl -X PATCH "https://merchant.revolut.com/api/locations/123e4567-e89b-12d3-a456-426614174000" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "name": "Cars website - Name update",
  "details": {
    "domain": "cars.example.com"
  }
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "name": "Cars website - Name update",
  "details": {
    "domain": "cars.example.com"
  }
}

Response body samples

{
  "id": "8d9a7125-805f-40f3-a405-bc89765db996",
  "name": "Cars website - Name update",
  "type": "online",
  "details": {
    "domain": "cars.example.com"
  }
}

Delete a location

Delete a specific location, based on its ID.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
location_id
string(uuid)required

Response

Location deleted

delete/api/locations/{location_id}
curl -X DELETE "https://merchant.revolut.com/api/locations/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

No contentThis response does not have a body.

Terminals

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 endpoint to find available terminals at a location (filtered by operation_mode=pos)
  2. Payment intent creation: Push a payment request to a specific terminal using Create a payment intent
  3. Status tracking: Poll the payment intent status until completion using Retrieve a payment intent endpoint
  4. Payment confirmation: Once the payment intent reaches completed state, retrieve the final payment status using the returned payment_id

For detailed implementation guidance, see: Push payments to Revolut Terminal.

Retrieve terminal list

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.

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.

For more information about integration, see: Push payments to Revolut Terminal.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)
Query parameters
operation_mode
string
location_id
string(uuid)

Response

OK

Body
object
terminals
arrayrequired
get/api/terminals
curl -X GET "https://merchant.revolut.com/api/terminals?operation_mode=pos&location_id=123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "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"
    }
  ]
}

Payment intents

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
  2. Track: Poll the payment intent status by retrieving payment intent details until it reaches a final state
  3. Complete: When state is completed, extract the payment_id and retrieve the final payment status
  4. Cancel (optional): Cancel pending payment intents using Cancel a 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

For the complete push payments integration guide, see: Push payments to Revolut Terminal.

Create a payment intent

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

For the complete push payments flow, see: Push payments to Revolut Terminal.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)
Path parameters
order_id
string(uuid)required
Request body
amount
integerrequired
terminal_id
string(uuid)required

Response

Payment intent created

Body
object
id
string(uuid)required
state
stringrequired
terminal_id
string(uuid)required
order_id
string(uuid)required
payment_id
string(uuid)
amount
integerrequired
currency
string(ISO 4217)required
created_at
string(date-time)required
updated_at
string(date-time)required
post/api/orders/{order_id}/payment-intents
curl -X POST "https://merchant.revolut.com/api/orders/123e4567-e89b-12d3-a456-426614174000/payment-intents" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01" \
  -d '{
  "amount": 2500,
  "terminal_id": "0e53f673-7705-473a-a263-89a3e7647c3d"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "amount": 2500,
  "terminal_id": "0e53f673-7705-473a-a263-89a3e7647c3d"
}

Response body samples

{
  "id": "b4d58add-b3fe-40e4-a70a-8c78df977888",
  "state": "pending",
  "order_id": "5c9fc54e-11b4-4f7f-8686-4a64d4d20db4",
  "amount": 2500,
  "currency": "GBP"
}

Retrieve a payment intent

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:

StateDescription
pendingPayment intent created and sent to terminal, customer has not yet started interacting
processingCustomer is actively interacting with the terminal (e.g., inserting card, entering PIN)
completedPayment authorisation is complete, response includes a payment_id that you should use to retrieve the final payment status
cancelledPayment intent was cancelled (by your system or by the customer on the terminal)
failedPayment intent failed due to technical issues (e.g., timeout, terminal became unavailable)
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

For the complete push payments flow, see: Push payments to Revolut Terminal.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)
Path parameters
payment_intent_id
string(uuid)required

Response

OK

Body
object
id
string(uuid)required
state
stringrequired
terminal_id
string(uuid)required
order_id
string(uuid)required
payment_id
string(uuid)
amount
integerrequired
currency
string(ISO 4217)required
created_at
string(date-time)required
updated_at
string(date-time)required
get/api/payment-intents/{payment_intent_id}
curl -X GET "https://merchant.revolut.com/api/payment-intents/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "id": "b4d58add-b3fe-40e4-a70a-8c78df977888",
  "state": "pending",
  "order_id": "5c9fc54e-11b4-4f7f-8686-4a64d4d20db4",
  "amount": 2500,
  "currency": "GBP"
}

Cancel a payment intent

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.

Requirements:

  • Payment intent must be in pending state
  • Cannot cancel payment intents that are already completed, cancelled, or failed

For the complete push payments flow, see: Push payments to Revolut Terminal.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)
Path parameters
payment_intent_id
string(uuid)required

Response

Payment intent cancelled

Body
object
id
string(uuid)required
state
stringrequired
terminal_id
string(uuid)required
order_id
string(uuid)required
payment_id
string(uuid)
amount
integerrequired
currency
string(ISO 4217)required
created_at
string(date-time)required
updated_at
string(date-time)required
post/api/payment-intents/{payment_intent_id}/cancel
curl -X POST "https://merchant.revolut.com/api/payment-intents/123e4567-e89b-12d3-a456-426614174000/cancel" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

{
  "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"
}

Apple Pay merchant registration

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.

Register domain for Apple Pay

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

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Request body
domain
stringrequired

Response

Domain registered successfully

post/api/apple-pay/domains/register
curl -X POST "https://merchant.revolut.com/api/apple-pay/domains/register" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "domain": "revolut.com"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "domain": "revolut.com"
}

Response body samples

No contentThis response does not have a body.

Unregister domain for Apple Pay

Unregister your website from Apple Pay's registered domains.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Revolut-Api-Version
string(date)
Request body
domain
stringrequired
reason
stringrequired

Response

Domain ungistered successfully

post/api/apple-pay/domains/unregister
curl -X POST "https://merchant.revolut.com/api/apple-pay/domains/unregister" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -H "Revolut-Api-Version: 2023-09-01" \
  -d '{
  "domain": "revolut.com",
  "reason": "Unregister due to domain change."
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "domain": "revolut.com",
  "reason": "Unregister due to domain change."
}

Response body samples

No contentThis response does not have a body.

Other

Other operations that can be done with the Merchant API.

Register address validation endpoint for Fast checkout

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.

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
  2. Validate the shipping address sent to your backend
  3. 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:

To set up a webhook for tracking order completion, failure, error, etc. events, use the Webhooks endpoints.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Request body
event_type
stringrequired
url
string(uri)required
location_id
string(uuid)

Response

OK

Body
object
id
string(uuid)required
signing_key
stringrequired
url
string(uri)required
event_type
stringrequired
location_id
string(uuid)
post/api/synchronous-webhooks
curl -X POST "https://merchant.revolut.com/api/synchronous-webhooks" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <yourSecretApiKey>" \
  -d '{
  "event_type": "fast_checkout.validate_address",
  "url": "https://backend.example.com/webhooks/validate-address"
}'
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Request body samples

{
  "event_type": "fast_checkout.validate_address",
  "url": "https://backend.example.com/webhooks/validate-address"
}

Response body samples

{
  "id": "f6abc4df-eb48-417c-8e75-f7c6d7ad394f",
  "signing_key": "swsk_y5z3LEHYZ9ndote3qegzWD6uL4t1lfp1",
  "url": "https://backend.example.com/webhooks/validate-address",
  "event_type": "fast_checkout.validate_address"
}

Retrieve a synchronous webhook list

Retrieve a list of synchronous webhook objects.

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

For more information about locations, see: Merchant API: Locations.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required

Response

Synchronous webhook list returned

Body
array of object
id
string(uuid)required
signing_key
stringrequired
url
string(uri)required
event_type
stringrequired
location_id
string(uuid)
get/api/synchronous-webhooks
curl -X GET "https://merchant.revolut.com/api/synchronous-webhooks" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

[
  {
    "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"
  }
]

Delete a synchronous webhook

Delete a specific synchronous webhook registration, based on its ID.

Request

Header parameters
Authorization
string(Bearer <yourSecretApiKey>)required
Path parameters
synchronous_webhook_id
string(uuid)required

Response

Synchronous webhook deleted

delete/api/synchronous-webhooks/{synchronous_webhook_id}
curl -X DELETE "https://merchant.revolut.com/api/synchronous-webhooks/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer <yourSecretApiKey>"
Authorization
SecuritySchemaType:apiKey
Header parameter name:Authorization

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.

For detailed instructions on generating your API keys, see: Generate API keys.

Response body samples

No contentThis response does not have a body.