Skip to main content
POST
CLI

Authorizations

Authorization
string
header
required

API Key in Bearer format (e.g., Bearer sk_test_...)

Headers

X-API-Key
string

API key

Body

application/json
customerId
string
required

Customer ID

Example:

"cust_abc123"

beneficiaryName
string
required

Full legal name of the account holder

Example:

"John Smith"

paymentRails
enum<string>[]
required

Payment rails this account supports.

Bank rails: ACH, SWIFT, SEPA, WIRE, FASTER_PAYMENTS, IMPS, NEFT, SPEI, etc.

Proxy rails: PIX, UPI, PROMPTPAY, DUITNOW (require aliasType + aliasValue)

Compatible bank rails can be combined on first create (e.g., a US account can support ["ACH", "ACH_SAME_DAY", "WIRE"]).

If a bank account with the same exact identifier set already exists, create returns that account without changing its rails — use PATCH to add compatible rails. Supplying a different identifier subset (e.g. IBAN only vs IBAN + SWIFT BIC) creates a new account. Proxy accounts dedupe by alias and rail, so the same alias on another proxy rail creates a new account.

Available options:
ACH,
ACH_SAME_DAY,
WIRE,
FED_NOW,
RTP,
EREBOR,
EREBOR_RAIL,
BALANCE,
SWIFT,
SEPA,
SEPA_INSTANT,
TIPS,
FASTER_PAYMENTS,
BACS,
CHAPS,
ELIXIR,
NICS,
EFT,
INTERAC,
NPP,
BECS,
UPI,
IMPS,
IMPS_WITH_FIRC,
NEFT,
RTGS,
BI_FAST,
ARTAJASA,
PIX,
TED,
TEF,
SPEI,
COELSA,
SINPE,
CIPS,
CFXPS,
CHATS,
ZENGIN,
KFTC,
FAST_SG,
MEPS,
DUITNOW,
PROMPTPAY,
INSTAPAY,
PESONET,
NAPAS,
BEFTN,
SLIPS,
ZAHAV,
GHIPSS,
NIBSS,
PESALINK,
RTC_ZA,
TZS_RTGS,
EGP_ACH,
JOD_ACH,
NPSS,
MADA,
QPS,
DOP_ACH,
GTQ_ACH,
HNL_ACH,
PEN_ACH,
JMD_ACH,
USD_ACH_SV,
USD_ACH_EC,
CLP_TEF,
PSE,
COP_ACH,
BOB_RTGS,
PYG_ACH,
CERTIS,
DKK_TIPS,
SENT,
NKS,
BANKGIROT,
HKD_FPS,
IBFT,
TRY_FAST
Example:
correspondentBankName
string

Correspondent/intermediary bank name

Maximum string length: 200
Example:

"Bank of America"

correspondentBankSwiftCode
string

Correspondent/intermediary bank SWIFT/BIC code (8 or 11 characters)

Example:

"IRVTUS3NXXX"

correspondentAccountNumber
string

Correspondent/intermediary account number

Maximum string length: 64
Example:

"9876543210"

counterpartyId
string

Existing counterparty ID. When provided for a third-party bank account, known counterparty data can be reused.

Example:

"cp_abc123"

beneficiaryType
enum<string>

Beneficiary type (individual or business)

Available options:
INDIVIDUAL,
BUSINESS
Example:

"INDIVIDUAL"

isThirdParty
boolean

Whether the account holder differs from the customer (third-party payment). May require additional compliance checks.

Example:

false

metadata
object

Custom metadata for your application

Example:
aliasType
enum<string>

Required for proxy rails. The type of alias identifier.

Supported alias types vary by rail:

  • PIX (Brazil): phone, email, tax_id (CPF/CNPJ), random
  • UPI (India): phone, random (VPA)
  • PromptPay (Thailand): phone, national_id, tax_id
  • DuitNow (Malaysia): phone, national_id (NRIC), corporate_id
  • GhIPSS (Ghana): phone
  • SINPE (Costa Rica): phone

Note: Both aliasType and aliasValue must be provided together.

Available options:
PHONE,
EMAIL,
NATIONAL_ID,
TAX_ID,
RANDOM,
CORPORATE_ID
Example:

"TAX_ID"

aliasValue
string

Required for proxy rails. The alias value. Format depends on aliasType:

  • phone: E.164 format (+5511912345678)
  • email: Standard email format
  • tax_id: Country-specific (Brazil CPF: 11 digits, CNPJ: 14 digits)
  • national_id: Country-specific (Thailand: 13 digits, Malaysia NRIC: 12 digits)
  • random: UUID format or provider-assigned key (e.g., UPI VPA like "user@upi")

Note: Both aliasType and aliasValue must be provided together.

Normalization: The value is normalized to lowercase and trimmed before storage. While some identifiers (e.g., UPI VPAs, emails) may display with mixed case, payment rails typically treat them as case-insensitive for routing.

Example:

"12345678901"

beneficiaryAddress
object

Beneficiary address.

Required for SWIFT and most international transfers. Optional for US ACH, same-day ACH, RTP, FedNow, and domestic wire at account create.

Street lines are limited to 35 characters for international wire compatibility. Put city, region, and postal code in their own fields — not in the street lines.

beneficiaryPhone
string

Beneficiary phone number in E.164 format

Example:

"+14155551234"

beneficiaryDateOfBirth
string<date>

Account holder's date of birth. Required at payout time for individual beneficiaries on supported corridors.

Example:

"1990-01-31"

bankName
string

Bank name. Auto-enriched from routing codes (SWIFT/BIC, IFSC, sort code, etc.) if not provided. Required if enrichment is unavailable.

Example:

"JPMorgan Chase Bank"

bankAddress
object

Bank address. Auto-enriched from routing codes (SWIFT/BIC, IFSC, sort code, etc.) if not provided. Required if enrichment is unavailable.

swiftBic
string

SWIFT/BIC code (8 or 11 characters).

  • SWIFT transfers: Always required
  • SEPA: Optional (IBAN-only supported)
Example:

"CHASUS33"

iban
string

IBAN (International Bank Account Number).

  • SWIFT to EU/UK: Required (with swiftBic)
  • SEPA/SEPA Instant: Required (swiftBic optional)
Example:

"DE89370400440532013000"

accountNumber
string

Bank account number or equivalent. Usage varies by country:

  • US (ACH/Wire): Account number (with 9-digit routingNumber)
  • UK (Faster Payments): 8-digit account (with 6-digit sort code in routingNumber)
  • India (IMPS/NEFT): Account number (with 11 char IFSC in routingNumber)
  • Mexico (SPEI): 18-digit CLABE (routingNumber not needed)
  • Argentina (COELSA): 22-digit CBU (routingNumber not needed)
  • Brazil (TED): Account number (with bank code in routingNumber)
Example:

"1234567890"

routingNumber
string

Bank routing code. This field adapts to country-specific identifiers:

  • US: 9-digit ABA routing number
  • CA: 8-9 digits (transit + institution)
  • AU: 6-digit BSB
  • UK: 6-digit sort code
  • India: 11 character IFSC code
Example:

"021000021"

branchCode
string

Bank branch code. Required for countries that use separate bank and branch identifiers:

  • Japan: 3-digit branch code (used with 4-digit bank code)
  • Brazil: 4-5 digit agency/branch number
  • South Africa: 6-digit branch code
  • New Zealand: 4-digit branch code
  • Bolivia: 3-letter branch city code (e.g. LPZ, SCZ)
Example:

"001"

beneficiaryDocumentType
string

Type of the beneficiary's national/tax identification document. Required for payouts on rails whose clearing system carries the beneficiary document — the valid codes are rail-specific:

  • Colombia (ACH): CC, NIT, CE, PA, PPT, TI, RC, TE, DIE, ND
  • Chile (TEF): RUT, RUN, PAS, CE
  • Paraguay (SIPAP): CI, PAS, CRP, CRC, RUC, DNI
  • Peru (ACH): RUC, DNI, PAS, CE

Brazil (TED) and Bolivia take only beneficiaryDocumentNumber (Brazil infers CPF vs CNPJ from the digit count). Optional at creation; payouts on these rails fail without it.

Example:

"CC"

beneficiaryDocumentNumber
string

The beneficiary's national/tax identification document number (e.g. CPF/CNPJ digits for Brazil, cédula number for Colombia/Paraguay, RUT for Chile). Format is validated per rail at payout time. Optional at creation; payouts on rails that require it fail without it.

Example:

"12345678901"

beneficiaryStateProvince
string

The beneficiary's state/department/province, for rails whose clearing system requires it on payouts (Peru ACH, e.g. LIMA). Optional at creation; payouts on those rails fail without it.

Example:

"LIMA"

bankAccountType
enum<string>

Bank account type (checking vs savings). Required for US ACH, and for payouts on rails whose clearing system carries it (e.g. Brazil TED, Colombia ACH, Chile TEF, Peru ACH) — accounts on those rails cannot receive payouts without it.

Available options:
checking,
savings
Example:

"checking"

currencyCodes
string[]

ISO 4217 currency codes this account can receive. If omitted, inferred from the payment rails. Can only be specified for Hong Kong (CHATS) or SWIFT payment rails.

Example:

Response

External account created, reused, or reopened successfully. Bank reuse preserves existing paymentRails (other create-only fields may backfill). Proxy reuse matches alias+rail. Check created on the body; bank responses also include paymentRails, proxy responses include paymentRail.

id
string
required

Account ID

Example:

"eba_1234567890abcdef"

customerId
string
required

Customer ID

Example:

"cust_abc123"

type
enum<string>
required

Account type

Available options:
EXTERNAL_BANK,
EXTERNAL_PROXY
Example:

"EXTERNAL_BANK"

status
enum<string>
required

Account status

Available options:
IN_REVIEW,
ACTIVE,
CLOSED
Example:

"IN_REVIEW"

beneficiaryType
enum<string>
required

Beneficiary type

Available options:
INDIVIDUAL,
BUSINESS
Example:

"INDIVIDUAL"

beneficiaryName
string
required

Beneficiary name

Example:

"John Smith"

paymentRail
enum<string>
required

Primary payment rail for this account

Available options:
ACH,
ACH_SAME_DAY,
WIRE,
FEDWIRE,
FED_NOW,
RTP,
EREBOR,
EREBOR_RAIL,
BALANCE,
SWIFT,
SEPA,
SEPA_INSTANT,
TIPS,
FASTER_PAYMENTS,
BACS,
CHAPS,
ELIXIR,
NICS,
EFT,
INTERAC,
NPP,
BECS,
UPI,
IMPS,
IMPS_WITH_FIRC,
NEFT,
RTGS,
BI_FAST,
ARTAJASA,
PIX,
TED,
TEF,
SPEI,
COELSA,
SINPE,
CIPS,
CFXPS,
CHATS,
ZENGIN,
KFTC,
FAST_SG,
MEPS,
DUITNOW,
PROMPTPAY,
INSTAPAY,
PESONET,
NAPAS,
BEFTN,
SLIPS,
ZAHAV,
GHIPSS,
NIBSS,
PESALINK,
RTC_ZA,
TZS_RTGS,
EGP_ACH,
JOD_ACH,
NPSS,
MADA,
QPS,
DOP_ACH,
GTQ_ACH,
HNL_ACH,
PEN_ACH,
JMD_ACH,
USD_ACH_SV,
USD_ACH_EC,
CLP_TEF,
PSE,
COP_ACH,
BOB_RTGS,
PYG_ACH,
CERTIS,
DKK_TIPS,
SENT,
NKS,
BANKGIROT,
HKD_FPS,
IBFT,
TRY_FAST
Example:

"SWIFT"

createdAt
string<date-time>
required

Account creation date

Example:

"2026-01-15T10:00:00Z"

updatedAt
string<date-time>
required

Account last update date

Example:

"2026-01-15T10:00:00Z"

counterpartyId
string | null

Counterparty ID when this is a third-party recipient account

Example:

"cp_abc123"

metadata
object

Custom metadata for your application, including account nickname

paymentRails
enum<string>[]

All payment rails this account supports (bank accounts only)

Available options:
ACH,
ACH_SAME_DAY,
WIRE,
FEDWIRE,
FED_NOW,
RTP,
EREBOR,
EREBOR_RAIL,
BALANCE,
SWIFT,
SEPA,
SEPA_INSTANT,
TIPS,
FASTER_PAYMENTS,
BACS,
CHAPS,
ELIXIR,
NICS,
EFT,
INTERAC,
NPP,
BECS,
UPI,
IMPS,
IMPS_WITH_FIRC,
NEFT,
RTGS,
BI_FAST,
ARTAJASA,
PIX,
TED,
TEF,
SPEI,
COELSA,
SINPE,
CIPS,
CFXPS,
CHATS,
ZENGIN,
KFTC,
FAST_SG,
MEPS,
DUITNOW,
PROMPTPAY,
INSTAPAY,
PESONET,
NAPAS,
BEFTN,
SLIPS,
ZAHAV,
GHIPSS,
NIBSS,
PESALINK,
RTC_ZA,
TZS_RTGS,
EGP_ACH,
JOD_ACH,
NPSS,
MADA,
QPS,
DOP_ACH,
GTQ_ACH,
HNL_ACH,
PEN_ACH,
JMD_ACH,
USD_ACH_SV,
USD_ACH_EC,
CLP_TEF,
PSE,
COP_ACH,
BOB_RTGS,
PYG_ACH,
CERTIS,
DKK_TIPS,
SENT,
NKS,
BANKGIROT,
HKD_FPS,
IBFT,
TRY_FAST
Example:
beneficiaryAddress
object

Beneficiary address (bank accounts only)

beneficiaryPhone
string

Beneficiary phone number

Example:

"+12125551234"

beneficiaryDateOfBirth
string<date>

Account holder's date of birth

Example:

"1990-01-31"

bankName
string

Bank name (bank accounts only)

Example:

"JPMorgan Chase Bank"

bankAddress
object

Bank address (bank accounts only)

swiftBic
string

SWIFT/BIC code (bank accounts only)

Example:

"CHASUS33"

iban
string

IBAN (bank accounts only)

Example:

"GB82WEST12345698765432"

accountNumber
string

Bank account number (bank accounts only)

Example:

"1234567890"

routingNumber
string

Bank routing code (ABA routing number, sort code, BSB, IFSC, etc.)

Example:

"021000021"

branchCode
string

Bank branch code (for countries like Japan, Brazil, South Africa that use separate branch identifiers)

Example:

"001"

beneficiaryDocumentType
string

Type of the beneficiary's national/tax identification document (rail-specific codes, e.g. CC/NIT for Colombia, RUT for Chile)

Example:

"CC"

beneficiaryDocumentNumber
string

The beneficiary's national/tax identification document number

Example:

"12345678901"

beneficiaryStateProvince
string

The beneficiary's state/department/province (rails that require it on payouts, e.g. Peru ACH)

Example:

"LIMA"

correspondentBankName
string

Correspondent/intermediary bank name (SWIFT)

Example:

"Bank of America"

correspondentBankSwiftCode
string

Correspondent/intermediary bank SWIFT/BIC code (SWIFT)

Example:

"IRVTUS3NXXX"

correspondentAccountNumber
string

Correspondent/intermediary account number (SWIFT)

Example:

"9876543210"

bankAccountType
enum<string>

Bank account type (bank accounts only)

Available options:
checking,
savings
Example:

"checking"

currencyCodes
string[]

Supported currency codes

Example:
aliasType
enum<string>

Type of proxy alias (proxy accounts only)

Available options:
PHONE,
EMAIL,
NATIONAL_ID,
TAX_ID,
RANDOM,
CORPORATE_ID
Example:

"TAX_ID"

aliasValue
string

The proxy alias value (proxy accounts only)

Example:

"12345678901"

created
boolean

Present on create responses. true = a new account was inserted. false = an existing account matched (bank: customer + the exact normalized identifier set supplied; proxy: customer + alias + rail) and was reused. For bank accounts, existing paymentRails are not updated by create — use PATCH to add rails; missing create-only fields may still be backfilled and conflicting values return 400. For proxy accounts, inspect paymentRail (proxies do not return paymentRails).

Example:

true