Skip to main content

Overview

Bank accounts are used to receive fiat payouts in off-ramp and cross-ramp transactions. You can manage bank accounts for users directly or for receivers (third-party payees). Each bank account is tied to a specific country and must meet that country’s validation requirements. Alternatively, bank details can be provided inline when creating a transaction, without saving them beforehand.

Requirements by Country

Each country has specific required fields when creating a bank account:
CountryRequired FieldsNotes
MXaccountIdentifier (18-digit CLABE)bankName is not allowed
DOaccountIdentifier, bankName, accountType, documentIdentifier, documentTypeaccountType: SAVINGS or CHECKING. documentType: PASSPORT, CEDULA, or RNC
USaccountIdentifier, bankName, routingNumber, accountHolder, addressroutingNumber: 9-digit ABA. address requires streetLine1, city, state, postalCode, country
SEPAiban, bic, bankName, accountHolderaccountIdentifier is not allowed. Covers AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE, IS, LI, NO, CH, GB, MC, SM, AD, VA
The accountHolder object requires a type field (INDIVIDUAL or BUSINESS). For individuals, provide firstName and lastName. For businesses, provide businessName.

Examples

{
  "accountIdentifier": "014680260346007120",
  "country": "MX"
}

User Bank Accounts

Manage bank accounts linked directly to a user.

Create

Use the Create Bank Account endpoint to add a bank account for a user.
POST /api/partner/v2/banks/users/{userId}/accounts

List

Use the List Bank Accounts endpoint to retrieve all bank accounts for a user. Supports filtering by country, rampType, and id, with pagination via skip, limit, and sortBy.
GET /api/partner/v2/banks/users/{userId}/accounts

Delete

Use the Delete Bank Account endpoint to soft-delete a bank account. The account will be disabled but existing transactions are not affected.
DELETE /api/partner/v2/banks/users/{userId}/accounts/{userBankInfoId}

Receiver Bank Accounts

Manage bank accounts linked to a receiver (third-party payee). The same country requirements apply.

Create

Use the Create Bank Account by Receiver endpoint to add a bank account for a receiver.
POST /api/partner/v2/banks/receivers/{receiverId}/accounts

List

Use the List Bank Accounts by Receiver endpoint to retrieve all bank accounts for a receiver.
GET /api/partner/v2/banks/receivers/{receiverId}/accounts

Delete

Use the Delete Bank Account by Receiver endpoint to soft-delete a receiver’s bank account.
DELETE /api/partner/v2/banks/receivers/{receiverId}/accounts/{userBankInfoId}

Verification (Mexico)

Mexican bank accounts go through a penny testing verification process to confirm account ownership. The verification flow:
  1. When a bank account is created with country: "MX", a small deposit (penny test) is initiated.
  2. The verificationStatus field tracks the result:
StatusDescription
PENDINGPenny test has been initiated, awaiting result
VERIFIEDAccount ownership confirmed
REJECTEDPenny test failed, account owner does not match the KYC’d user
CEP_FAILUREBank verification receipt could not be validated
  1. The isVerified boolean indicates the current verification state.
  2. If a user attempts an off-ramp with an unverified MX account, the transaction will proceed but may be cancelled and the crypto reimbursed if verification fails.

Inline Bank Details

When creating off-ramp or cross-ramp transactions, bank information can be provided directly in the request body instead of saving a bank account beforehand: The same country-specific field requirements apply whether using inline details or saved accounts.

What’s Next