Revolut Customers API
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](https://developer.revolut.com/docs/api/merchant#create-customer) endpoint and you can then retrieve, update and delete a customer using its `id`. `Customer` objects enable you to track multiple transactions in your system associated with the same customer in the Merchant API. You can save and store payment methods of a customer in the `payment_method` object, for more information, see: [Charge a customer's saved payment method](https://developer.revolut.com/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method). A merchant can store the details of the payment securely and group transactions from the same payment method in their system. A payment method is unique for each customer. For example, if the same card is used for a transaction by two different customers, two payment method objects are created linked to each customer. Similar principle applies when saving payment methods via Revolut Pay for merchant initiated transaction (MIT - useful for recurring payments). If a customer saves their details through Revolut Pay for MIT in separate sessions, each session will create a new payment method object linked to the customer. :::note You cannot create a payment method explicitly because they are generated as part of a payment. You can only retrieve, update or delete a payment method, or you can retrieve all payment methods of a customer. :::
POST
/api/customers
Create a customer
#
GET
/api/customers
Retrieve a customer list
#
GET
/api/customers/{customer_id}
Retrieve a customer
#
PATCH
/api/customers/{customer_id}
Update a customer
#
DELETE
/api/customers/{customer_id}
Delete a customer
#
GET
/api/customers/{customer_id}/payment-methods
Retrieve payment method list of a customer
#
GET
/api/customers/{customer_id}/payment-methods/{payment_method_id}
Retrieve a customer's payment method
#
PATCH
/api/customers/{customer_id}/payment-methods/{payment_method_id}
Update a customer's payment method
#
DELETE
/api/customers/{customer_id}/payment-methods/{payment_method_id}
Delete a customer's payment method
#
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/revolut-customers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Merchant Customers API
version: '2026-04-20'
description: 'Welcome to the Revolut Merchant API - your solution to managing the core aspects of e-commerce and accepting online payments. Whether you''re a startup, a growing business, or an established enterprise in the e-commerce industry, our API helps you streamline your operations.
As a Revolut Business customer with a Merchant Account, you can use the
Merchant API to leverage the following features:
- [Order management](https://developer.revolut.com/docs/api/merchant#tag-orders)
- [Customer management](https://developer.revolut.com/docs/api/merchant#tag-customers)
- [Payment management](https://developer.revolut.com/docs/api/merchant#tag-payments)
- [Subscription management](https://developer.revolut.com/docs/api/merchant#tag-subscriptions)
- [Payout management](https://developer.revolut.com/docs/api/merchant#tag-payouts)
- [Dispute management](https://developer.revolut.com/docs/api/merchant#tag-disputes)
- [Reporting analytics](https://developer.revolut.com/docs/api/merchant#tag-report-runs)
- [Webhook management](https://developer.revolut.com/docs/api/merchant#tag-webhooks)
- [Location management](https://developer.revolut.com/docs/api/merchant#tag-locations)
... and more.
### API versions
:::warning
We highly recommend using versioning in your API calls. If you don''t provide a version header on the operations where it''s required, you will receive an error response.
:::
The Merchant API uses request header versioning. Where it is required you need to use the `Revolut-Api-Version` header parameter to specify an API version. Each request, where it is indicated in the API specification, must contain a version header in the following format:
```
''Revolut-Api-Version: 2026-04-20''
```
:::info
For more information, see: [API versions](https://developer.revolut.com/docs/guides/merchant/reference/versioning/api-versions)
:::
### Test the Merchant API
You can test the Merchant API in Postman by forking this collection:
[](https://www.postman.com/revolut-api/workspace/revolut-developers/overview)'
contact: {}
servers:
- description: Production server (uses live data)
url: https://merchant.revolut.com
- description: Sandbox server (uses test data)
url: https://sandbox-merchant.revolut.com
security:
- Api-Key: []
tags:
- name: Customers
description: 'The Customers resource in the Merchant API is a pivotal tool for tracking and managing customer-related transactions within your e-commerce or retail platform. This resource provides a structured approach to customer management, enabling you to maintain a consistent record of customer transactions.
A `Customer` object can be created using the [Create a customer](https://developer.revolut.com/docs/api/merchant#create-customer) endpoint and you can then retrieve, update and delete a customer using its `id`. `Customer` objects enable you to track multiple transactions in your system associated with the same customer in the Merchant API.
You can save and store payment methods of a customer in the `payment_method` object, for more information, see: [Charge a customer''s saved payment method](https://developer.revolut.com/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method). A merchant can store the details of the payment securely and group transactions from the same payment method in their system.
A payment method is unique for each customer. For example, if the same card is used for a transaction by two different customers, two payment method objects are created linked to each customer.
Similar principle applies when saving payment methods via Revolut Pay for merchant initiated transaction (MIT - useful for recurring payments). If a customer saves their details through Revolut Pay for MIT in separate sessions, each session will create a new payment method object linked to the customer.
:::note
You cannot create a payment method explicitly because they are generated as part of a payment. You can only retrieve, update or delete a payment method, or you can retrieve all payment methods of a customer.
:::'
paths:
/api/customers:
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/Revolut-Api-Version-2024-09-01-Min'
post:
summary: Create a customer
operationId: createCustomer
description: "Create a `customer` object.\n\n:::note [No automatic deduplication]\nThe API does not prevent creating multiple customers with the same email address or phone number.\n\nThis can be intentional, for example, to maintain separate customer records per storefront or brand under the same account.\n\nTo avoid unintentional duplicates, search for existing customers by email or phone using the [List customers](https://developer.revolut.com/docs/api/merchant/2024-09-01#retrieve-customer-list) endpoint before creating a new one.\n:::\n\n### Save payment methods\n\nIf you wish to save a customer's payment details using any of the available payment methods on the Revolut Checkout Widget ([Revolut Pay](https://developer.revolut.com/docs/guides/merchant/accept-payments/online-payments/revolut-pay/introduction), [Card payments](https://developer.revolut.com/docs/guides/merchant/accept-payments/online-payments/card-payments/introduction)), you need to meet one of the following requirements:\n\n - [ ] Have a customer object with `email` and assign it to the order by providing `customer.id`\n - [ ] Create a new customer with, at least, `customer.email` during [order creation](https://developer.revolut.com/docs/api/merchant/2024-09-01#create-order)\n\nFor more information, see: [Charge a customer's saved payment method](https://developer.revolut.com/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method).\n\n<details>\n<summary>AFT processing requirements</summary>\n\nFor merchants in the following industries, `full_name` and `date_of_birth` are required for Account Funding Transaction (AFT) processing:\n\n| Industry | Required fields |\n| -------- | --------------- |\n| Crypto | `full_name`, `date_of_birth` |\n| Financial Institutions | `full_name`, `date_of_birth` |\n| Stored Value / Wallets | `full_name`, `date_of_birth` |\n\n</details>"
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Customer-Creation-v2'
examples:
example_customer_creation:
$ref: '#/components/examples/Req-Customer-Creation-v2'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Customer-Created'
examples:
created_customer:
$ref: '#/components/examples/Res-Customer-Created'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Customers
get:
summary: Retrieve a customer list
operationId: retrieveCustomerList
description: 'Get a paginated list of your customer profiles.
| Filtering | Pagination |
| --------- | ---------- |
| Filter the customers that you want to retrieve, for example, only retrieve customers created within a specific date range. <br/><br/>Parameters used for filtering:<br/><ul><li>`from`</li><li>`to`</li></ul> | View customers without loading all of them at once, for example, return a specified number of customers per page. <br/><br/>Parameters used for pagination:<br/><ul><li>`limit`</li><li>`page_token`</li></ul> |
To paginate through all results:
1. Make an initial request with the desired `limit` and any filter parameters.
1. If more results are available, the response includes a `next_page_token`.
1. Pass `next_page_token` as `page_token` in your next request, keeping all other parameters unchanged.
1. Repeat until `next_page_token` is no longer present in the response.'
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Page-Token'
- $ref: '#/components/parameters/From'
- $ref: '#/components/parameters/To'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Customers'
examples:
list_of_customers:
$ref: '#/components/examples/Res-Customers-List'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Customers
/api/customers/{customer_id}:
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/Revolut-Api-Version-2024-09-01-Min'
- $ref: '#/components/parameters/Customer-Id'
get:
summary: Retrieve a customer
operationId: retrieveCustomer
description: Get the information about a specific customer, including their saved payment methods.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Customer-v3'
examples:
retrieved_customer:
$ref: '#/components/examples/Res-Customer-v3'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Customers
patch:
summary: Update a customer
operationId: updateCustomer
description: 'Update the attributes of a specific customer.
All request body fields are optional. Only the fields provided will be updated.
<details>
<summary>AFT processing requirements</summary>
For merchants in the following industries, `full_name` and `date_of_birth` are required for Account Funding Transaction (AFT) processing:
| Industry | Required fields |
| -------- | --------------- |
| Crypto | `full_name`, `date_of_birth` |
| Financial Institutions | `full_name`, `date_of_birth` |
| Stored Value / Wallets | `full_name`, `date_of_birth` |
</details>'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Customer-Update-v2'
examples:
example_customer_update:
$ref: '#/components/examples/Req-Customer-Update-v2'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Customer-v3'
examples:
updated_customer:
$ref: '#/components/examples/Res-Customer-v3'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Customers
delete:
summary: Delete a customer
operationId: deleteCustomer
description: Delete the profile of a specific customer.
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Customers
/api/customers/{customer_id}/payment-methods:
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/Revolut-Api-Version-2024-09-01-Min'
- $ref: '#/components/parameters/Customer-Id'
get:
summary: Retrieve payment method list of a customer
operationId: retrievePaymentMethodList
description: 'Retrieve all the saved payment methods for a specific customer.
This can be useful in the following example cases:
- To show what payment information is stored for the customer.
- To try a different payment method if the first payment method fails when a recurring transaction occurs.'
parameters:
- $ref: '#/components/parameters/Only-Merchant'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Customer-Payment-Methods-v2'
examples:
list_of_payment_methods:
$ref: '#/components/examples/Res-Customer-Payment-Methods-List'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Customers
/api/customers/{customer_id}/payment-methods/{payment_method_id}:
parameters:
- $ref: '#/components/parameters/Authorization'
- $ref: '#/components/parameters/Revolut-Api-Version-2024-09-01-Min'
- $ref: '#/components/parameters/Customer-Id'
- $ref: '#/components/parameters/Payment-Method-Id'
get:
summary: Retrieve a customer's payment method
operationId: retrievePaymentMethod
description: 'Retrieve the information of a specific saved payment method for a customer. '
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Payment-Method-v4'
examples:
retrieved_payment_method:
$ref: '#/components/examples/Res-Customer-Payment-Method'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Customers
patch:
summary: Update a customer's payment method
operationId: updatePaymentMethod
description: 'Update the attributes of a specific saved payment method for a customer.
:::note
Updating `saved_for` to `customer` is a one-way operation — you can''t change it back to `merchant`.
Once updated, this payment method can no longer be used for merchant-initiated transactions (MIT), for example, to charge recurring payments. It can only be used when the customer is on the checkout page.
For more information, see:
- [Pay for an order](https://developer.revolut.com/docs/api/merchant/2024-09-01#pay-order)
- [Charge a customer''s saved payment method](https://developer.revolut.com/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method)
:::'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Payment-Method-Update'
examples:
example_payment_method_update:
$ref: '#/components/examples/Req-Payment-Method-Update'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Payment-Method-v4'
examples:
updated_payment_method:
$ref: '#/components/examples/Res-Customer-Payment-Method'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Customers
delete:
summary: Delete a customer's payment method
operationId: deletePaymentMethod
description: 'Delete a specific saved payment method. The payment method is completely removed from the customer''s saved payment methods.
To reuse a deleted payment method, direct your customer to the checkout page to save their card details again.'
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error-v2'
security:
- Api-Key: []
tags:
- Customers
components:
schemas:
Customer-Update-v2:
title: Customer update
type: object
description: 'The request body for updating a customer.
All fields are optional. Only the fields provided in the request will be updated.
:::note
`business_name` is not supported in this version of the API.
:::'
properties:
full_name:
$ref: '#/components/schemas/Full-Name'
email:
$ref: '#/components/schemas/Email'
phone:
$ref: '#/components/schemas/Phone'
date_of_birth:
$ref: '#/components/schemas/Date-Of-Birth'
Phone:
type: string
description: The phone number of the customer in [E.164 format](https://en.wikipedia.org/wiki/E.164).
Customer-Id:
type: string
format: uuid
description: Unique identifier for the customer.
Card-v2:
title: Card payment method
type: object
description: 'A saved card payment method.
:::info
The `checks` object (3DS, CVV, address verification) is not included as it is specific to the transactional payment context.
:::'
properties:
id:
$ref: '#/components/schemas/Payment-Method-Id'
type:
$ref: '#/components/schemas/Payment-Method-Type-v2'
saved_for:
$ref: '#/components/schemas/Saved-For'
created_at:
$ref: '#/components/schemas/Payment-Method-Created-At'
bin:
$ref: '#/components/schemas/Card-Bin'
last_four:
$ref: '#/components/schemas/Card-Last-Four'
expiry_month:
$ref: '#/components/schemas/Card-Expiry-Month'
expiry_year:
$ref: '#/components/schemas/Card-Expiry-Year'
cardholder_name:
$ref: '#/components/schemas/Cardholder-Name'
brand:
$ref: '#/components/schemas/Card-Brand-v2'
funding:
$ref: '#/components/schemas/Card-Funding-v2'
issuer:
$ref: '#/components/schemas/Card-Issuer'
issuer_country:
$ref: '#/components/schemas/Card-Issuer-Country'
billing_address:
$ref: '#/components/schemas/Billing-Address'
terminal_hardware_id:
$ref: '#/components/schemas/Terminal-Hardware-Id'
required:
- id
- type
- created_at
Email:
type: string
format: email
description: The email address of the customer.
Card-Expiry-Year:
type: integer
description: The expiry year of the payment card.
Payment-Method-Update:
title: Payment method update
type: object
description: Fields to update on a saved payment method.
properties:
saved_for:
type: string
enum:
- customer
description: 'Update the value of `saved_for` from `merchant` to `customer`.
Once updated, this payment method can no longer be used for merchant-initiated transactions (MIT). It can only be used when the customer is present on the checkout page.
| Value | Description |
| ----- | ----------- |
| `customer` | Restrict this payment method to customer-initiated transactions only. |'
Sepa-Direct-Debit-Mandate-Reference:
type: string
description: The unique mandate reference generated by Revolut. Include this in pre-debit notifications sent to your customers.
Terminal-Hardware-Id:
type: string
description: 'The hardware identifier of the Revolut Terminal device used to process the payment.
:::note
Only present for card-present transactions processed via Revolut Terminal.
:::'
Date-Of-Birth:
type: string
format: date
description: The birth date of the customer.
Billing-Address:
title: Billing address
type: object
description: The billing address associated with the payment method.
properties:
street_line_1:
type: string
description: Primary address line.
maxLength: 100
street_line_2:
type: string
description: Secondary address line, such as floor and apartment number.
maxLength: 100
region:
type: string
description: State or province of the address.
maxLength: 100
city:
type: string
description: City of the address.
maxLength: 100
country_code:
type: string
pattern: ^[A-Z]{2}$
description: ISO 2-letter country code.
minLength: 2
maxLength: 2
postcode:
type: string
description: Postal code of the address.
maxLength: 100
required:
- country_code
- postcode
Card-Brand-v2:
type: string
description: The brand of the payment card.
enum:
- visa
- mastercard
- american_express
Customer-Payment-Methods-v2:
type: object
required:
- payment_methods
properties:
payment_methods:
type: array
description: 'Saved payment methods associated with this customer. Each entry represents a
payment method authorised for future charges. Two types are supported: `card`
(with full card details) and `revolut_pay` (covers both card-backed and
account-to-account Revolut Pay variants). Use the `type` field on each item
to identify the variant.'
items:
$ref: '#/components/schemas/Payment-Method-v4'
Sepa-Direct-Debit-v2:
title: SEPA Direct Debit payment method
type: object
description: 'A saved SEPA Direct Debit payment method on a customer profile.
:::info
For more information, see: [SEPA Direct Debit server-to-server integration](https://developer.revolut.com/docs/guides/merchant/accept-payments/payment-methods/sepa-direct-debit/server-to-server)
:::'
properties:
id:
$ref: '#/components/schemas/Payment-Method-Id'
type:
$ref: '#/components/schemas/Payment-Method-Type-v2'
saved_for:
$ref: '#/components/schemas/Saved-For'
debtor_iban_last_four:
$ref: '#/components/schemas/Sepa-Direct-Debit-Debtor-Iban-Last-Four'
debtor_name:
$ref: '#/components/schemas/Sepa-Direct-Debit-Debtor-Name'
mandate_reference:
$ref: '#/components/schemas/Sepa-Direct-Debit-Mandate-Reference'
billing_address:
$ref: '#/components/schemas/Billing-Address'
created_at:
$ref: '#/components/schemas/Payment-Method-Created-At'
required:
- id
- type
- created_at
Sepa-Direct-Debit-Debtor-Iban-Last-Four:
type: string
description: The last four digits of the debtor's IBAN.
minLength: 4
maxLength: 4
Payment-Method-Type-v2:
type: string
description: The type of the payment method.
enum:
- card
- revolut_pay
- sepa_direct_debit
Payment-Method-Id:
type: string
format: uuid
description: Unique identifier for the payment method.
Customer-v3:
title: Customer
type: object
description: A customer object.
properties:
id:
$ref: '#/components/schemas/Customer-Id'
full_name:
$ref: '#/components/schemas/Full-Name'
email:
$ref: '#/components/schemas/Email'
phone:
$ref: '#/components/schemas/Phone'
created_at:
type: string
format: date-time
description: The date and time the customer was created.
updated_at:
type: string
format: date-time
description: The date and time the customer was last updated.
payment_methods:
type: array
description: 'Saved payment methods associated with this customer. Each entry represents a
payment method authorised for future charges. Two types are supported: `card`
(with full card details) and `revolut_pay` (covers both card-backed and
account-to-account Revolut Pay variants). Use the `type` field on each item
to identify the variant.'
items:
$ref: '#/components/schemas/Payment-Method-v4'
required:
- id
- created_at
- updated_at
- email
- payment_methods
Next-Page-Token:
type:
- string
- 'null'
description: 'Token for retrieving the next page of results. Use this token as the value of the `page_token` query parameter in your next request to retrieve the next page.
If not present, there are no more results to retrieve.'
Payment-Method-v4:
title: Payment method
description: 'A saved payment method on a customer profile.
Use the `type` field to determine the specific payment method variant.
:::note
This schema represents a stored credential available for future charges and supports three types: `card`, `revolut_pay`, and `sepa_direct_debit`.
It differs from the `payment_method` object on a Payment, which is a transactional snapshot of how a specific charge was executed and includes additional detail such as wallet wrappers (`apple_pay`, `google_pay`) and Revolut Pay funding source (`revolut_pay_card` vs `revolut_pay_account`).
:::'
discriminator:
propertyName: type
mapping:
card: '#/components/schemas/Card-v2'
revolut_pay: '#/components/schemas/Revolut-Pay-v2'
sepa_direct_debit: '#/components/schemas/Sepa-Direct-Debit-v2'
oneOf:
- $ref: '#/components/schemas/Card-v2'
- $ref: '#/components/schemas/Revolut-Pay-v2'
- $ref: '#/components/schemas/Sepa-Direct-Debit-v2'
Card-Funding-v2:
type: string
description: The funding type of the payment card.
enum:
- debit
- credit
- prepaid
Customers:
type: object
required:
- customers
properties:
next_page_token:
$ref: '#/components/schemas/Next-Page-Token'
customers:
type: array
description: List of customers.
items:
$ref: '#/components/schemas/Customer-Simplified'
Card-Issuer-Country:
type: string
minLength: 2
maxLength: 2
description: The ISO 3166-1 alpha-2 country code of the country where the payment card was issued.
Saved-For:
type: string
enum:
- customer
- merchant
description: 'Indicates in which case this saved payment method can be used for payments.
| Value | Description |
| ----- | ----------- |
| `customer` | This payment method can be used only when the customer is on the checkout page. |
| `merchant` | This payment method can be used without the customer being on the checkout page, and the merchant can initiate transactions, for example, to take payments for recurring transactions. |'
Customer-Created:
title: Customer
type: object
description: A customer object.
properties:
id:
$ref: '#/components/schemas/Customer-Id'
full_name:
$ref: '#/components/schemas/Full-Name'
email:
$ref: '#/components/schemas/Email'
phone:
$ref: '#/components/schemas/Phone'
created_at:
type: string
format: date-time
description: The date and time the customer was created.
updated_at:
type: string
format: date-time
description: The date and time the customer was last updated.
required:
- id
- created_at
- updated_at
- email
Card-Bin:
type: string
description: The BIN (Bank Identification Number) of the payment card, typically the first 6-8 digits.
Sepa-Direct-Debit-Debtor-Name:
type: string
description: The full name of the debtor as provided in the mandate.
Card-Expiry-Month:
type: integer
description: The expiry month of the payment card.
Cardholder-Name:
type: string
description: The name of the cardholder as it appears on the card.
Card-Issuer:
type: string
description: The name of the card-issuing bank or institution.
Card-Last-Four:
type: string
minLength: 4
maxLength: 4
description: The last four digits of the payment card number.
Payment-Method-Created-At:
type: string
format: date-time
description: The date and time the payment method was added.
Revolut-Pay-v2:
title: Revolut Pay payment method
type: object
description: 'A saved Revolut Pay payment method on a customer profile.
Both Revolut Pay card-backed and account-to-account (A2A) variants are
represented by this single type at the saved payment method level.
No underlying card details are exposed here; use the order-level
`payments[].payment_method` object (types `revolut_pay_card` /
`revolut_pay_account`) for per-transaction details.'
properties:
id:
$ref: '#/components/schemas/Payment-Method-Id'
type:
$ref: '#/components/schemas/Payment-Method-Type-v2'
saved_for:
$ref: '#/components/schemas/Saved-For'
created_at:
$ref: '#/components/schemas/Payment-Method-Created-At'
required:
- id
- type
- created_at
Error-v2:
title: Error
type: object
properties:
code:
type: string
description: 'An identifier that can be used to determine what went wrong.
Error codes are not globally unique, but uniqueness is guaranteed within endpoints.'
message:
type: string
description: Some human readable text describing what went wrong.
timestamp:
type: integer
description: The [UNIX timestamp](https://www.unixtimestamp.com/) of
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/revolut/refs/heads/main/openapi/revolut-customers-api-openapi.yml