Skip to main content
POST
Create a Deposit Address

Authorizations

Authorization
string
header
required

Token from POST /auth/token

Headers

Idempotency-Key
string
required

Required on POST and PUT requests. Use a unique value per logical mutation attempt, for example a UUID.

Body

application/json

Create a Deposit Address: the expected inbound asset/network pair plus the bank destination that receives the converted funds.

customerId
string
required

Owning customer (cus_… or legacy public id).

expectedSourceAsset
string
required

Asset of the inbound crypto the DA expects. "usdc" | "usdt" (lowercase).

expectedSourceNetwork
string
required

Network of the inbound crypto the DA expects. A closed allowlist — ethereum | base | solana. Any other value (arbitrum, optimism, polygon, ink, sui, …) is rejected with expectedSourceNetworkUnsupported.

destination
US bank account · object
required

Side-shaped destination. Fiat: bankUs / bankIban / bankCanada registered External Account (cryptoToFiatAccount). Crypto: walletOms (OMS wallet) or walletExternal (registered ExternalAccount) delivers crypto onward (cryptoToCrypto; routes-table gated to ethereum/base/solana). The server validates details (asset/network/accountHolder) against the resolved EA/wallet.

returnDestination
object

Registered crypto return destination (v0.11-8), for operations-triggered returns of stranded inbound deposits.

sponsorGas
boolean
default:true

When true, OMS absorbs the on-chain gas cost for the destination delivery. Only true is currently supported. Ignored for non-crypto destinations (no on-chain leg).

label
string

Partner display label.

metadata
object

Free-form key-value pairs stored on the resource and echoed back on reads.

Response

The request has succeeded and a new resource has been created as a result.

A reusable crypto deposit configuration. Senders deposit the expected asset/network to the assigned on-chain address; OMS converts and delivers the funds to the configured bank destination automatically, creating a transaction per inbound deposit.

id
string

Deposit Address ID (da_ prefix).

Pattern: ^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$
object
enum<string>

Resource type discriminator. Always "depositAddress".

Available options:
depositAddress
customerId
string

Public customer id (cst_...). Named customerId to match VA's naming convention.

Pattern: ^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$
status
enum<string>

Current lifecycle status of the deposit address.

Available options:
pending,
active,
frozen,
closed,
failed,
inactiveActionRequired
statusReason
string

Human-readable explanation of the current status.

expectedSourceAsset
string

Asset of the inbound crypto the DA expects.

expectedSourceNetwork
string

Network of the inbound crypto the DA expects.

depositInstructions
object

Null in the 201 until DEPOSIT_ACCOUNT.OPEN populates the Erebor-owned inlet address.

destination
OMS wallet · object

V0.10: unified destination shape (payoutOrigin now lives inside TransactionDestination).

returnDestination
object

Registered crypto return destination (v0.11-8), echoed when set.

failureReason
enum<string>

Set when status = failed; closed enum identifying the failure category.

Available options:
provisioningTimeout,
systemError,
ereborRejected,
intlBankAccountCreateRejected,
noMatchingNetwork,
blockchainAddressInUse,
bankAccountInUse
sourceToDestination
enum<string>

Derived from the destination type: cryptoToFiatAccount for a bank destination, or cryptoToCrypto for a crypto-wallet destination.

Available options:
cryptoToCrypto,
cryptoToCash,
cryptoToFiatAccount,
cashToCrypto,
fiatAccountToCrypto,
fiatAccountToFiatAccount
sponsorGas
boolean

Whether OMS absorbs the on-chain gas cost for the destination delivery. Persisted from the create/update request (currently only true is accepted).

label
string

Partner display label.

metadata
object

Free-form key-value pairs supplied at creation or update.

createdAt
string<date-time>

When the deposit address was created.

updatedAt
string<date-time>

When the deposit address was last updated.