External Accounts
Understading External Accounts
An External Account represent a bank account not managed by UnblockPay where a customer can receive fiat funds. It is the destination for payout transactions — the bank account where UnblockPay sends fiat money after converting stablecoins.
External Accounts are tied to a customer and must be registered before initiating a payout (except for Pix in Brazil, where you can pass the pix_key and document directly in the payout request).
External Accounts can be first-party or third-party. Use the is_third_party field to indicate when the bank account belongs to someone other than the customer. For example, a customer named "Nick" can register a bank account belonging to "Satoshi" by setting is_third_party: true.
Supported payment rails
UnblockPay supports the following rails for External Accounts:
|
Rail |
Country / Region |
Notes |
|---|---|---|
|
|
🇧🇷 Brazil |
Via Pix key (CPF, CNPJ, email, phone, or random key) |
|
|
🇧🇷 Brazil |
Via full bank account details, when a Pix key is unavailable |
|
|
🇲🇽 Mexico |
Via CLABE, debit card, or phone number |
|
|
🇺🇸 United States |
Via routing number and bank account number |
|
|
🇪🇺 Europe (SEPA zone) |
Via IBAN and BIC |
|
|
🇦🇷 Argentina |
Via CVU or CBU |
How to create an External Account
POST v1/customers/{customer_id}/external-accounts
This endpoint registers a new External Account linked to a customer. Each request must include the account_name, the payment_rail, and the corresponding rail-specific object (e.g. pix, wire, sepa).
You can also include is_third_party: true when the bank account belongs to someone other than the customer.
🇧🇷 External Account in Brazil
UnblockPay supports two Pix methods for Brazilian accounts: a Pix key (simpler, recommended for most cases) and a full bank account via pix_account (for cases where a Pix key is not available).
Via Pix key
Here's a request example:
curl https://api.unblockpay.com/v1/customers/{customer_id}/external-accounts \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: YOUR_SECRET_TOKEN' \
--data '{
"account_name": "Satoshi Bank Account in Brazil",
"payment_rail": "pix",
"pix": {
"key": "satoshi@email.com"
}
}'
Here's a response example:
{
"id": "bfc36f00-ed1f-11ef-9fe4-378e29e1083a",
"account_name": "Satoshi Bank Account in Brazil",
"payment_rail": "pix",
"pix": {
"key": "satoshi@email.com"
},
"created_at": "2025-05-13T08:40:33.946Z",
"updated_at": "2025-05-13T12:26:53.405Z"
}
Via full bank account (pix_account)
Use this method when a Pix key is unavailable and you need to register the full bank account details.
Here's a request example:
bash
curl https://api.unblockpay.com/v1/customers/{customer_id}/external-accounts \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: YOUR_SECRET_TOKEN' \
--data '{
"account_name": "Satoshi Bank Account in Brazil",
"payment_rail": "pix_account",
"pix_account": {
"bank_code": "60701190",
"branch_code": "0001",
"bank_account_number": "123456",
"account_type": "checking",
"beneficiary_document": "12345678900",
"beneficiary_name": "Satoshi Nakamoto"
}
}'
🇲🇽 External Account in Mexico
Here's a request example for creating an External Account in Mexico:
curl https://api.unblockpay.com/v1/customers/{customer_id}/external-accounts \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: YOUR_SECRET_TOKEN' \
--data '{
"account_name": "Satoshi Account in Mexico",
"payment_rail": "spei",
"spei": {
"beneficiary_name": "Satoshi Nakamoto",
"protocol": "clabe",
"bank_code": "012",
"clabe": "012180001977647665"
}
}'
Here is a response example:
{
"id": "0d045280-ed3f-12ef-80a0-99ef27c9f123",
"account_name": "Satoshi Account in Mexico",
"payment_rail": "spei",
"spei": {
"beneficiary_name": "Satoshi Nakamoto",
"protocol": "clabe",
"bank_code": "012",
"clabe": "012180001977647665"
},
"created_at": "2025-05-13T08:40:33.946Z",
"updated_at": "2025-05-13T12:26:53.405Z"
}
🇺🇸 External Account in the United States
Here's a request example for creating an External Account in the United States:
curl https://api.unblockpay.com/v1/customers/{customer_id}/external-accounts \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: YOUR_SECRET_TOKEN' \
--data '{
"account_name": "Satoshi US Account",
"payment_rail": "wire",
"wire": {
"beneficiary_type": "individual",
"beneficiary_name": "Satoshi Nakamoto",
"bank_name": "Community Federal Savings Bank",
"bank_account_number": "652112475791",
"routing_number": "026073008",
"beneficiary_address": {
"street_line_1": "8916 Jamaica Ave",
"city": "Woodhaven",
"state": "NY",
"postal_code": "11421",
"country": "USA"
}
}
}'
Here is a response example:
{
"id": "0d045280-ed3f-12ef-80a0-99ef27c9f123",
"account_name": "Satoshi US Account",
"payment_rail": "wire",
"wire": {
"beneficiary_type": "individual",
"beneficiary_name": "Satoshi Nakamoto",
"bank_name": "Community Federal Savings Bank",
"bank_account_number": "652112475791",
"routing_number": "026073008",
"beneficiary_address": {
"street_line_1": "8916 Jamaica Ave",
"city": "Woodhaven",
"state": "NY",
"postal_code": "11421",
"country": "USA"
}
},
"created_at": "2025-05-13T08:40:33.946Z",
"updated_at": "2025-05-13T12:26:53.405Z"
}
🇪🇺 External Account in Europe (SEPA Countries)
Individual Bank Account
Here's a request example for creating an External Account for an individual in the Single Euro Payments Area (SEPA):
{
"account_name": "Individual Europe Account",
"payment_rail": "sepa",
"sepa": {
"beneficiary_type": "individual",
"beneficiary_name": "Satoshi Nakamoto",
"bank_name": "Euro Bank",
"iban": "ES9121000418450200012345",
"bic": "BSCHESMM123",
"country": "ESP",
"beneficiary_address": {
"street_line_1": "Calle Gran Via, 1",
"city": "Madrid",
"state": "Madrid",
"postal_code": "28013",
"country": "ESP"
}
}
}
Business Bank Account
Here's a request example for creating an External Account for a business in the Single Euro Payments Area (SEPA):
{
"account_name": "Business Europe Account",
"payment_rail": "sepa",
"sepa": {
"beneficiary_type": "business",
"beneficiary_name": "Satoshi Company S.L.",
"bank_name": "Euro Bank",
"iban": "ES9121000418450200012345",
"bic": "BSCHESMM123",
"country": "ESP",
"beneficiary_address": {
"street_line_1": "Calle Gran Via, 1",
"city": "Madrid",
"state": "Madrid",
"postal_code": "28013",
"country": "ESP"
}
}
}
SEPA Countries List
|
Country |
Code |
|---|---|
|
🇦🇩 Andorra |
AND |
|
🇦🇹 Austria |
AUT |
|
🇧🇪 Belgium |
BEL |
|
🇧🇬 Bulgaria |
BGR |
|
🇭🇷 Croatia |
HRV |
|
🇨🇾 Cyprus |
CYP |
|
🇨🇿 Czechia |
CZE |
|
🇩🇰 Denmark |
DNK |
|
🇪🇪 Estonia |
EST |
|
🇫🇮 Finland |
FIN |
|
🇫🇷 France |
FRA |
|
🇩🇪 Germany |
DEU |
|
🇬🇷 Greece |
GRC |
|
🇭🇺 Hungary |
HUN |
|
🇮🇸 Iceland |
ISL |
|
🇮🇪 Ireland |
IRL |
|
🇮🇹 Italy |
ITA |
|
🇱🇻 Latvia |
LVA |
|
🇱🇮 Liechtenstein |
LIE |
|
🇱🇹 Lithuania |
LTU |
|
🇱🇺 Luxembourg |
LUX |
|
🇲🇹 Malta |
MLT |
|
🇲🇨 Monaco |
MCO |
|
🇳🇱 Netherlands |
NLD |
|
🇳🇴 Norway |
NOR |
|
🇵🇱 Poland |
POL |
|
🇵🇹 Portugal |
PRT |
|
🇷🇴 Romania |
ROU |
|
🇸🇲 San Marino |
SMR |
|
🇸🇰 Slovakia |
SVK |
|
🇸🇮 Slovenia |
SVN |
|
🇪🇸 Spain |
ESP |
|
🇸🇪 Sweden |
SWE |
|
🇨🇭 Switzerland |
CHE |
|
🇬🇧 United Kingdom |
GBR |
|
🇻🇦 Vatican City |
VAT |
🇦🇷 External Account in Argentina
Here's a request example for creating an External Account in Argentina:
{
"account_name": "Satoshi Account in Argentina",
"payment_rail": "cvu",
"cvu": {
"beneficiary_name": "Satoshi Nakamoto",
"cvu": "0000003100012345678901"
}
}
External Accounts API endpoints
Here are the endpoints you'll need to create or list an External Account
-
POST /v1/customers/{customer_id}/external-accounts— Create a new external account -
GET /v1/customers/{customer_id}/external-accounts— List all external accounts for a customer -
GET /v1/customers/{customer_id}/external-accounts/{id}— Get details for a specific external account
For the full schema and request/response details, see the API Reference.

