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
enum<string>
required

Network of the inbound crypto the DA expects. CryptoNetwork is the wire vocabulary (ethereum/polygon/base/solana); availability here is narrower — a closed allowlist of ethereum | base | solana. Any other value (arbitrum, optimism, polygon, ink, sui, …) is rejected with expectedSourceNetworkUnsupported.

Available options:
ethereum,
polygon,
base,
solana
destination
US bank account · object
required

Side-shaped destination. Fiat: bankUs / bankIban / bankCanada registered External Account (cryptoToFiatAccount), or walletFiat — the customer's own Erebor fiat wallet, credited via internal book transfer (cryptoToFiatAccount; rendered destination network bookTransfer). Crypto: walletExternal (registered ExternalAccount) delivers crypto onward (cryptoToCrypto; routes-table gated to ethereum/base/solana). walletCrypto is NOT currently supported — 422 destinationWalletCryptoNotSupported; use walletExternal. 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})$
customer
object

Resolved id + display name of the owning customer, so list/detail rendering needs no follow-up customer fetch (v0.12, #2665).

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
enum<string>

Network of the inbound crypto the DA expects.

Available options:
ethereum,
polygon,
base,
solana
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.