Skip to main content
POST

Errors

Plus the shared errors — see Accounts errors.

Authorizations

API-KEY
string
header
required

Your partner API key.

Headers

Api-Version
string
default:2026-09.1
required

The API version this request targets. Required on every /api/v0/* call. Format YYYY-MM.<release>; 2026-09.1 is the latest. The version that served the request is echoed back on the response. Missing, malformed or unsupported values are rejected with 400.

Pattern: ^\d{4}-\d{2}\.\d+$

Path Parameters

userId
string
required

The customer the account belongs to. Must be a cus_… reference id, and must belong to your partner account. Blank → 400 ERRACC_1000; malformed, unknown, soft-deleted or another partner's → 404 ERRREF_1001.

Example:

"cus_9HqA2mT7xK4vRb1NdLpZ"

Body

application/json
currency
enum<string>
required

The fiat currency the account is denominated in. Openable today: USD, EUR, GBP, MXN, BRL, AED. Call List available for opening first rather than hardcoding this list.

Available options:
USD,
EUR,
GBP,
MXN,
BRL,
AED
accountName
string
required

The account's name at the provider.

accountCategory
enum<string>
required

What the account should do with money that lands in it. FIAT to hold the currency, or ONRAMP to convert it onward. Case-insensitive. FIAT is available for AED only at this time — every other currency must be opened as ONRAMP.

Available options:
FIAT,
ONRAMP
walletId
string

The wallet an ONRAMP account settles into. Must be a wlt_… reference id. The settlement asset, chain and deposit address are taken from this wallet — they are not separate request fields, so the destination always matches the wallet you name here. Malformed → 400 ERRREF_1000; unknown → 404 ERRREF_1001. Not required when accountCategory is FIAT, which holds its balance rather than settling onward.

Example:

"wlt_3HdR9zNc6QeW2XmT5bLa"

displayName
string

Your own customer-facing nickname for the account. Max 50 characters. Stored by endl only, never sent to the provider. Cannot be changed later through this API.

Maximum string length: 50

Response

Opens a new account for a customer in the requested currency.

displayName
string | null
required

Your own customer-facing nickname for the account. The one key guaranteed present even when null. Set at creation; cannot be changed through this API.

id
string

The account's reference id. Always acct_…. Absent on the async-PENDING branch of Open Account and on static-template rows.

name
string

The account's name at the provider, as supplied in accountName.

status
enum<string>

The account's current state. One of ACTIVE, PENDING, DEACTIVATED, CLOSED, FROZEN, UNDER_REVIEW, DORMANT.

Available options:
ACTIVE,
PENDING,
DEACTIVATED,
CLOSED,
FROZEN,
UNDER_REVIEW,
DORMANT
category
enum<string>

What the account does with money that lands in it. FIAT holds what it receives · ONRAMP converts it onward. Derived server-side, not echoed back from your request — always read it off the response.

Available options:
FIAT,
ONRAMP
currency
string

The account's own denomination, upper-cased. Deliberately outside balance so it survives a balance that failed to load.

balance
object

The available (spendable) balance. Omitted entirely when the underlying amount is null.

createdAt
string<date-time>

When the account was created.

updatedAt
string<date-time>

When the account last changed.

fundingInstructions
object

How to fund this account — bank coordinates and, for ONRAMP, what it settles into. Reliable on Get Account. On Open Account it is requested but only materialises if the provider has already returned deposit coordinates — see that endpoint's caveat. Never present on List.