Create Foreign Fiat External Bank Accounts
How do I create an external bank account for cross-border payouts?
Overview
Create external bank accounts for recipients who receive funds in foreign fiat currencies through local payment rails. Associate these accounts with customers or banks.
Cybrid supports foreign fiat currencies with region-specific payment rails. This guide covers the general account model and creation process. For country-specific routing details, recipient requirements, and configuration, see the payout guides:
- Payouts to Mexico — MXN via SPEI
- Payouts to Colombia — COP via PSE
- Payouts to India — INR via IFSC
- Payouts to Pakistan — PKR via SBP
- Payouts to Bangladesh — BDT via BEFTN
Prerequisites
Before creating external bank accounts:
- Counterparty Verification: The associated counterparty must be KYC'd/KYB'd and in
verifiedstate - Authentication: API access with
external_bank_accounts:executescope - Compliance: Adhere to country-specific data privacy regulations
Create an external bank account
To create an external bank account:
- Create and verify a counterparty representing the account beneficiary
- Gather payment rail details specific to the destination country
- Submit account creation request with raw routing details
- Monitor account state until creation completes
The platform securely stores routing information (encrypted at rest and in transit) for transfer
operations. The payout provider processes account creation asynchronously. Poll
GET /api/external_bank_accounts/{guid} using the GUID from the creation response until state
reaches completed. A failed state indicates creation failed.
Send a POST request to /api/external_bank_accounts:
POST /api/external_bank_accounts
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
Accept-Version: 2025-10-01
API versioningCreating external bank accounts with foreign raw routing details requires
Accept-Version: 2025-10-01or later.
Account model
External bank accounts for foreign fiat use the raw_routing_details account kind. The following
example shows Mexico (MXN) via SPEI:
{
"account_kind": "raw_routing_details",
"name": "Descriptive account name",
"asset": "MXN",
"customer_guid": "customer_guid",
"counterparty_guid": "counterparty_guid",
"counterparty_bank_account_details": [
{
"bank_code_type": "CLABE",
"bank_code": "032",
"account_identifier": "032180000118359719",
"account_identifier_type": "CLABE",
"payment_rail": "SPEI"
}
]
}Key fields
| Field | Type | Required | Description |
|---|---|---|---|
account_kind | string | Yes | Must be raw_routing_details |
name | string | Yes | Human-readable account name |
asset | string | Yes | Currency code (MXN, COP, INR, PKR, BDT) |
customer_guid | string | Conditional | Required for customer accounts; omit for bank accounts |
counterparty_guid | string | Yes | Associated counterparty GUID |
counterparty_bank_account_details | array | Yes | Payment rail configuration |
Counterparty bank account details
Each object in the counterparty_bank_account_details array specifies routing information:
| Field | Type | Description |
|---|---|---|
bank_code | string | Bank identifier (required for most rails) |
bank_code_type | string | Code format (CLABE, PSE, PIX, CBU_CVU, IFSC, IBAN, BEFTN, SWIFT_BIC) |
account_identifier | string | Account number or payment key |
account_identifier_type | string | Identifier format; see counterparty_bank_account_details for the complete list (rail dependent) |
account_type | string | Account type: checking or savings (PSE only) |
payment_rail | string | Rail name (SPEI, PSE, IFSC, SBP, BEFTN) |
Related resources
Updated 2 days ago
