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:

Prerequisites

Before creating external bank accounts:

  • Counterparty Verification: The associated counterparty must be KYC'd/KYB'd and in verified state
  • Authentication: API access with external_bank_accounts:execute scope
  • Compliance: Adhere to country-specific data privacy regulations

Create an external bank account

To create an external bank account:

  1. Create and verify a counterparty representing the account beneficiary
  2. Gather payment rail details specific to the destination country
  3. Submit account creation request with raw routing details
  4. 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 versioning

Creating external bank accounts with foreign raw routing details requires Accept-Version: 2025-10-01 or 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

FieldTypeRequiredDescription
account_kindstringYesMust be raw_routing_details
namestringYesHuman-readable account name
assetstringYesCurrency code (MXN, COP, INR, PKR, BDT)
customer_guidstringConditionalRequired for customer accounts; omit for bank accounts
counterparty_guidstringYesAssociated counterparty GUID
counterparty_bank_account_detailsarrayYesPayment rail configuration

Counterparty bank account details

Each object in the counterparty_bank_account_details array specifies routing information:

FieldTypeDescription
bank_codestringBank identifier (required for most rails)
bank_code_typestringCode format (CLABE, PSE, PIX, CBU_CVU, IFSC, IBAN, BEFTN, SWIFT_BIC)
account_identifierstringAccount number or payment key
account_identifier_typestringIdentifier format; see counterparty_bank_account_details for the complete list (rail dependent)
account_typestringAccount type: checking or savings (PSE only)
payment_railstringRail name (SPEI, PSE, IFSC, SBP, BEFTN)

Related resources