To make a funds transfer or payment, add the counterparty that you intend to transact with.
Depending on which country a counterparty account is based in, the fields that you need to specify are different.
You can check the supported countries and currencies, and/or check the required fields dynamically before creating a counterparty.
Additionally, some payment rails may have stricter requirements regarding the address field – for example, by also requiring the region field.
We recommend that you use all available address fields (including street_line1, region and city) when creating a counterparty.
This significantly reduces the risk of any disruption to payments made via the API.
If you need to update the address later, see Update a counterparty's payment method.
Ensure that you use the correct field to define the counterparty's name, which depends on how you add it:
- Revtag:
name - Other account details:
individual_name(personal accounts) orcompany_name(business accounts)
See the API reference: Create a counterparty
Create a payout link and share it with the recipient. When claiming the payout, the recipient fills in their details, which you can then save as a counterparty. To learn more, see Payout links.
See also how to validate an account name (CoP/VoP) when adding a counterparty.
You can add:
- Revolut counterparties using Revtags
- UK counterparties using account number and sort code
- International counterparties using required account details as per the counterparty's region
Before adding a counterparty, you can check which countries and currencies are supported, and/or check which fields are required for the desired country and currency.
Check supported counterparty countries and currencies
This feature is not available in Sandbox.
When to check supported countries and currencies
Before creating a counterparty, you may need to discover which bank countries and currencies are supported. Use the /counterparties/countries endpoint to get the full list of available country and currency combinations.
This is useful for dynamically building country/currency selection UIs, or for validating that a destination is supported before calling the Check counterparty field requirements endpoint.
Check supported countries and currencies
Send a GET request to the /counterparties/countries endpoint.
The response contains a countries array where each item describes a supported country:
- Country: The country code where the counterparty's bank account is located.
- Currencies: The list of currencies available for counterparty creation in that country.
A sample response looks like this:
{
"countries": [
{ "country": "GB", "currencies": ["GBP"] },
{ "country": "US", "currencies": ["USD"] },
{ "country": "DE", "currencies": ["EUR"] }
]
}See the API reference: Check supported countries and currencies
Check counterparty field requirements
This feature is not available in Sandbox.
When to check field requirements
Depending on the counterparty's country, currency, and profile type (a.k.a recipient type), certain fields in the Create a counterparty request — such as tax_id, route, account_type, or specific name fields — become required or applicable.
Use the /counterparties/fields endpoint to dynamically discover these contextual fields before creating a counterparty.
This is especially useful for multi-country payout systems where the required fields vary across destinations.
Check field requirements
Send a GET request to the /counterparties/fields endpoint providing the following query parameters:
- Country: The country where the counterparty's bank account is located.
- Currency: The currency of the counterparty's bank account.
- Recipient type: Whether the counterparty is a
personalorbusinessaccount.
For corridors with multiple routing methods (e.g. ACH and Fedwire for USD to US), an optional route query parameter is available. When omitted, the response includes fields for the default route.
The response contains a fields array where each item describes a conditionally required or applicable field:
- Name: The field name, matching the Create a counterparty endpoint request body (e.g.
sort_code,account_no,tax_id,route,account_type). - Required: Whether the field must be provided when creating the counterparty.
- Regex: Validation rules with a
pattern. In some cases, a human-readabledescriptionis also returned. - Options: Allowed values for the field, if applicable. Each option has a
valueand an optionaldefaultflag.
Fields with options must use one of the listed values when provided to the Create a counterparty endpoint. Fields with regex must satisfy the specified constraints (e.g. character length, regex pattern).
Response examples
GB counterparty (personal) — first_name, last_name, sort_code, account_no, and address are required:
{
"fields": [
{
"name": "first_name",
"required": true,
"regex": {
"pattern": "^[-'\\p{L} ]{1,40}$",
"description": "Letters, hyphens and apostrophes only, up to 40 characters"
}
},
{
"name": "last_name",
"required": true,
"regex": {
"pattern": "^[-'\\p{L} ]{1,40}$",
"description": "Letters, hyphens and apostrophes only, up to 40 characters"
}
},
{
"name": "sort_code",
"required": true,
"regex": {
"pattern": "^\\d{6}$",
"description": "6-digit number"
}
},
{
"name": "account_no",
"required": true,
"regex": {
"pattern": "^\\d{8}$",
"description": "8-digit number"
}
},
{
"name": "address",
"required": true
}
]
}US counterparty (business) — company_name, route, routing_number, account_no, and address are required. The route field offers options with ach as the default:
{
"fields": [
{
"name": "company_name",
"required": true,
"regex": {
"pattern": "^.{1,140}$",
"description": "Up to 140 characters"
}
},
{
"name": "route",
"required": true,
"options": [
{ "value": "ach", "default": true },
{ "value": "fedwire" }
]
},
{
"name": "routing_number",
"required": true,
"regex": {
"pattern": "^\\d{9}$",
"description": "9-digit number"
}
},
{
"name": "account_no",
"required": true,
"regex": {
"pattern": "^\\d{6,17}$",
"description": "6 to 17 digits"
}
},
{
"name": "address",
"required": true
}
]
}The country, currency, and recipient_type fields are provided as query parameters and are intentionally excluded from the response.
See the API reference: Check counterparty field requirements
Add a Revolut counterparty
If a counterparty has a Revolut account, you can provide their Revtag and name.
- The name that you provide must match or closely match the actual name associated with the account that you're trying to add. Otherwise, the creation fails and a 404 error is returned.
- You can add only one counterparty with a given Revtag. If you try to use the same Revtag to add another counterparty, you'll get an error.
curl -X POST https://b2b.revolut.com/api/1.0/counterparty \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <your access token>' \
-d '{
"profile_type": "personal",
"name": "John Doe",
"revtag": "johndoe"
}'To see more example requests and responses:
See the API reference: Create a counterparty
Alternatively, add a Revolut counterparty by providing their full details.
Test accounts for Sandbox
In the Sandbox environment, you cannot add real people and businesses as Revolut counterparties. To simulate Create a counterparty requests, use one of the test accounts.
Add a UK counterparty
If a counterparty has a UK bank account, the following details are required:
| Field | Description | Format | Example |
|---|---|---|---|
account_no | The bank account number of the counterparty | Text | 12345678 |
sort_code | The sort code of the counterparty's account | Text | 223344 |
address* | The details of the counterparty's address | Object | See below |
*The address field is optional; however, if you provide it, the address subfields below are required.
| Subfield | Format |
|---|---|
city | Text |
street_line1 or street_line2 | Text |
country | Text |
postcode | Text |
{
"city": "London",
"street_line1": "20 Upping St",
"country": "GB",
"postcode": "SW1A 2AB"
}curl -X POST https://b2b.revolut.com/api/1.0/counterparty \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <your access token>' \
-d '{
"company_name": "John Smith Co.",
"bank_country": "GB",
"currency": "GBP",
"account_no": "12345678",
"sort_code": "223344",
"address": {
"city":"London",
"street_line1":"20 Upping St",
"country":"GB",
"postcode":"SW1A 2AB"
}
}'To see more example requests and responses:
See the API reference: Create a counterparty
Add an international counterparty
If a counterparty has a non-UK bank account, depending on the country that the account is based in, you must specify the required fields.
See an example for an IBAN bank account.
curl -X POST https://b2b.revolut.com/api/1.0/counterparty \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <your access token>' \
-d '{
"company_name": "John Smith Co.",
"bank_country": "FR",
"currency": "EUR",
"iban": "FR1420041010050500013M02606"
}'To see more example requests and responses:
See the API reference: Create a counterparty
Required details depending on the country {#add-counterparty-full-details}
Check the following tables for the different required fields depending on the country.
Fields for US USD accounts
| Field | Description | Format | Example |
|---|---|---|---|
account_no | Bank account number | Text | 13719713158835300 |
routing_number | Routing transit number | Text | 082000510 |
address | Address details | Object | Example |
Fields for IBAN countries
| Field | Description | Format | Example |
|---|---|---|---|
iban | IBAN | Text | FR1420041010050500013M02606 |
bic* | BIC *For SEPA transfers, it's optional. | Text | PSSTFRPPLILBIC |
address* | Address details *For eurozone countries or CH, when using EUR as the currency, it's optional. | Object | Example |
Fields for SWIFT
| Field | Description | Format | Example |
|---|---|---|---|
account_no | Bank account number | Text | 1234567890 |
bic | BIC | Text | BOJPJPJT123 |
address | Address details | Object | Example |
Fields for SWIFT MX
| Field | Description | Format | Example |
|---|---|---|---|
clabe | CLABE | Text | 032180000118359719 |
bic | Bank BIC | Text | BDEMMXMMXXX |
address | Address details | Object | Example |
Fields for IN INR accounts
| Field | Description | Format | Example |
|---|---|---|---|
account_no | Bank account number | Text | 123456789 |
ifsc | IFSC | Text | SBIN0005943 |
address | Address details | Object | Example |
Fields for AU AUD accounts
| Field | Description | Format | Example |
|---|---|---|---|
account_no | The bank account number of the counterparty | Text | 011623852 |
bsb_code | The Bank State Branch (BSB) code; a six-digit number used to identify the bank or other financial institution and its branch | Text | 007621 |
address* | The details of the counterparty's address | Object | See below |
*The address field is optional; however, if you provide it, the address subfields below are required.
| Subfield | Format |
|---|---|
city | Text |
street_line1 or street_line2 | Text |
country | Text |
postcode | Text |
{
"city": "Sydney",
"street_line1": "21 Woolfe St",
"country": "AU",
"postcode": "NSW 2000"
}What's next
Now that you've added counterparties to transact with, learn how to send money.