Customer accounts
Give each vault customer bankable and on-chain balances under onecustomer_id (pcus_*):
- Fiat accounts — e.g. EUR (IBAN) and USD (account / routing or SWIFT when returned) bank rails for receiving transfers
- Stablecoin accounts — e.g. USDC / USDT wallets on Base or Polygon
account_id for deposit instructions, stablecoin sends, book transfers / payouts / cards, or corridor quote → accept where that funds the same customer.
Prerequisite: Customers quickstart until vault status is approved (or active).
Sandbox funding: usable balance for outbound stablecoin sends may require an Element Pay sandbox credit. See deposit instructions.
Auth and environments
Gate
approved alone does not unlock accounts. Always read both fields from GET /partner/customers/{customer_id}.
Prefer the customer.deposit_account.updated webhook (and customer.approved) over polling — see Webhooks. Poll GET as a backup until products.deposit_account.status is ready.
If account routes are called before ready, the API returns 409 with message Deposit account is not ready. Response data includes deposit_account_status (current status) or, in some cases, reason: banking_profile_incomplete.
Happy path
1
Confirm banking ready
Prefer
customer.deposit_account.updated (Webhooks); or poll GET /partner/customers/{customer_id} until deposit_account.status=ready2
Open a rail (optional)
POST /partner/customers/{customer_id}/accounts when you need a new fiat or stablecoin rail3
List accounts
GET /partner/customers/{customer_id}/accounts → pick account_id4
Get one (optional)
GET /partner/customers/{customer_id}/accounts/{account_id}5
Next
Fund via deposit instructions, corridor quote → accept where applicable, then stablecoin sends or other money-movement guides when you have balance
1. Poll customer
2. Open an account
Idempotent on the rail tuple (asset_type + currency + network for stablecoin). Opening an existing rail returns 200 with the existing account; a new rail returns 201.
Fiat (bank rail)
Example: EUR (IBAN). USD (where enabled) returns account / routing or SWIFT-style fields when ready, not always an IBAN.Stablecoin
network is required: Base or Polygon. Currency: USDC or USDT.
data.id as account_id.
3. List accounts
id, customer_id, asset_type, currency, network, status, balances, and rail coordinates when ready (for example account_number / bank fields for fiat, wallet_address for stablecoin).
4. Get one account
Errors
Next
- Deposit instructions: fund a fiat or stablecoin rail
- Quickstart: corridor quote → accept as an alternate funding / exit path
- Stablecoin sends: preview → confirm → poll
- Route cheat sheet