External Accounts
Register a customer’s own bank account (an “external account”) to enable fiat withdrawals. The endpoint accepts US_FEDWIRE, US_ACH, US_RTP, SWIFT, SPEI, LOCAL_BANK_TRANSFER, CHATS, and FPS; availability depends on the account country, currency, and enabled payment routes. A unique external_account_id is assigned on success.
HTTP Request
POST
https://api.sandbox.1money.com/v1/customers/{customer_id}/external-accounts
Path Parameters
| Parameter | Type | Description |
|---|---|---|
customer_id | string | UUID of the customer that will own the external account |
Headers
| Header | Description |
|---|---|
Authorization | Sandbox bearer token or production HMAC authorization (required; see Authentication) |
X-OM-Date | Request timestamp required for production HMAC authentication; omit for sandbox bearer authentication |
Content-Type | application/json (required) |
Idempotency-Key | UUIDv4 required for this request |
The create endpoint returns 409 Conflict when the idempotency key already belongs to an external account or when identical banking details already exist. You can retrieve an existing external account by sending the key as the
idempotency_keyquery parameter to theGETendpoint.
Request Body
{
"network": "US_FEDWIRE",
"account_holder_name": "TechStart Holdings LLC",
"currency": "USD",
"country_code": "USA",
"account_number": "4447891623",
"institution_id": "021000021",
"institution_name": "JPMorgan Chase Bank, N.A."
}| Field | Type | Required | Description |
|---|---|---|---|
network | string | Yes | Payment network accepted by the request schema; route availability depends on country and currency |
account_holder_name | string | Yes | Full legal name registered with the bank |
currency | string | Yes | Currency code (e.g. USD) |
country_code | string | Yes | ISO 3166-1 alpha-3 country code |
account_number | string | Yes | Account number or rail-specific account identifier |
institution_id | string | Conditional | Required for every listed network except SPEI; omit it for SPEI |
institution_name | string | No | Optional institution name; supported routing-code networks can resolve it from institution_id |
Additional fields might be required:
institution_clearing_code: Additional local or regional routing codes required by specific payment networks or countries. Examples: Sort codes (UK), BSB numbers (Australia), transit numbers (Canada). Optional field used when standard institution_id is insufficient for routing.intermediary_bank: Optional intermediary bank information forSWIFTaccounts. Omit this field for all other networks.nickname: Can be used to present to the user for easier identification
Rail-specific routing fields
External accounts and recipient bank accounts use the same rail-specific routing rules.
| Network | institution_id | institution_name | intermediary_bank |
|---|---|---|---|
US_ACH, US_FEDWIRE, US_RTP | Required: valid 9-digit ABA routing number | Optional; resolved from the ABA routing number when omitted | Must be omitted |
SWIFT | Required: valid 8- or 11-character SWIFT/BIC code | Optional; resolved from the SWIFT/BIC code when omitted | Optional |
SPEI | Must be omitted; the 18-digit CLABE identifies the bank | Not required | Must be omitted |
LOCAL_BANK_TRANSFER | Required: canonical institution ID for the destination country and currency | Not required | Must be omitted |
CHATS | Required: Hong Kong bank SWIFT/BIC code | Optional; resolved from the SWIFT/BIC code when omitted | Must be omitted |
FPS | Required: canonical three-digit Hong Kong bank clearing code for the destination currency | Not required | Must be omitted |
CHATS applies to Hong Kong USD accounts. FPS applies to Hong Kong HKD and CNY accounts; submit the branch code followed by the account number as account_number (9–16 digits in total). Select the canonical institution_id for LOCAL_BANK_TRANSFER or FPS from Local Institution ID. Omit institution_clearing_code for SPEI, LOCAL_BANK_TRANSFER, CHATS, and FPS.
The API schema may contain additional bank-network enum values. That does not mean every rail is enabled for every customer or in every environment. Availability depends on the destination country, currency, customer configuration, and active payment routes.
PIX_TRANSFER may appear in the shared network enum, but it is not supported when creating an external account or recipient bank account through these public endpoints. Do not submit institution_id for PIX; PIX uses PIX-specific identifiers through a separate integration flow.
Responses
| Status | Description |
|---|---|
| 201 Created | External account successfully created; returns external_account_id |
| 400 Bad Request | Invalid or missing fields |
| 409 Conflict | Duplicate idempotency key or identical banking details |
Updated 13 days ago
