Update a Deposit Address
Update a Deposit Address. The patchable fields are destination (re-point to a different bank-type External Account), returnDestination, label, and metadata; any other JSON key in the body is rejected with 400. Re-pointing destination to a healthy bank External Account recovers a DA from inactiveActionRequired back to active.
Authorizations
Token from POST /auth/token
Path Parameters
Deposit Address ID (da_ prefix).
Body
Partial update payload for a Deposit Address. The patchable fields are destination (re-point to a different bank-type External Account), returnDestination, label, and metadata. Any additional key in the JSON body is rejected with 400 by the handler (strict whitelist).
Re-pointing destination to a healthy bank External Account recovers a DA from inactiveActionRequired back to active; a re-point on an already active DA updates the target without a status transition.
Re-point the DA destination (bank-type External Account by EA id, a registered walletExternal crypto wallet, or a walletFiat fiat wallet). Re-validated exactly like create; walletCrypto is NOT currently supported — 422 destinationWalletCryptoNotSupported. Switching between destination kinds (bank / cryptoWallet / walletFiat) involving walletFiat is rejected with 422 destinationTypeSwitchNotSupported.
- US bank account
- IBAN bank account
- Canadian bank account
- OMS wallet
- External wallet (registered)
- Fiat wallet
Re-point the registered crypto return destination (v0.11-8). PATCHable per the v0.11-8 contract; send explicit null to clear.
When true, OMS absorbs the on-chain gas cost for the destination delivery. Only true is currently supported; accepted for forward-compatibility.
Partner display label.
Free-form key-value pairs stored on the resource and echoed back on reads.
Response
The request has succeeded.
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.
A Deposit Address is permanent: there is no delete operation for a Deposit Address. The on-chain address is published to senders and can receive a deposit at any time, so removing the record would strand any funds that arrive afterwards with nothing to route them to. The terminal closed status is not a partner call either: it is reached through the provider's own lifecycle or an operator action, and a closed Deposit Address is still not deleted — it stays retrievable by id. To stop using one, stop handing its address to senders. PATCH destination changes where deposits that arrive afterwards are delivered; a deposit that has already arrived keeps the destination that was in effect when it arrived. Contrast a Virtual Account, which does support DELETE because its close is a real provider-side account closure.
The customer that owns this record.
Deposit Address ID (da_ prefix).
^[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})$Current lifecycle status of the deposit address.
pending, active, frozen, closed, failed, inactiveActionRequired Human-readable explanation of the current status.
Asset of the inbound crypto the DA expects.
Network of the inbound crypto the DA expects.
ethereum, polygon, base, solana, tron Populated in the create response when the provider assigns the address up front. Otherwise it is null until the provider has assigned the on-chain address: poll GET /deposit-addresses/{depositAddressId} until it is populated before giving a sender deposit instructions.
The resolved destination instrument plus, on the bank and crypto-wallet destinations, its payoutOrigin.
- OMS wallet
- External wallet
- Fiat wallet
- US bank account
- IBAN bank account
- Canadian bank account
Registered crypto return destination (v0.11-8), echoed when set.
The return destination types this Deposit Address accepts, derived by OMS from its issuing provider and its expectedSourceNetwork with the same rules a returnDestination is validated against on create and PATCH. walletExternal is listed when the provider serves this network for the network's External Account family; walletCrypto is listed when the provider can return to an OMS wallet. An empty array means no return destination can be configured on this Deposit Address. Read-only. Present on deposit address API responses only; it is not included in the depositAddress.statusChanged event payload. On an API response, omission means OMS could not determine it; the create and PATCH validation stays authoritative.
The type of a crypto return destination: an OMS wallet (walletCrypto) or a registered external wallet (walletExternal).
walletCrypto, walletExternal Set when status = failed; closed enum identifying the failure category.
provisioningTimeout, systemError, ereborRejected, intlBankAccountCreateRejected, noMatchingNetwork, blockchainAddressInUse, bankAccountInUse Derived from the destination type: cryptoToFiatAccount for a bank destination, or cryptoToCrypto for a crypto-wallet destination.
cryptoToCrypto, cryptoToCash, cryptoToFiatAccount, cashToCrypto, fiatAccountToCrypto, fiatAccountToFiatAccount Whether OMS absorbs the on-chain gas cost for the destination delivery. Persisted from the create/update request (currently only true is accepted).
The institution that issues and custodies this Deposit Address — currently "Erebor Bank, N.A." or "Coinme Inc.". Assigned by OMS from your project's configuration. It determines which expectedSourceAsset / expectedSourceNetwork pairs you can use: an unsupported pair is rejected at create time with 422 depositAddressAssetNetworkNotSupported, which names the same provider in details.provider. Read it when you need to tell an end user or a support ticket which institution is holding the funds. It is not the entity an outbound payment is sent under — that is payoutOrigin.accountHolderName, which is set by whoever executes the payout and can name a different company. New providers may be added, so treat the string as free-form rather than a fixed set. Read-only; omitted when the issuing institution is not recognised.
Whether a sender's wallet must be registered as a walletExternal External Account under this Deposit Address's customer before it deposits. Derived from the issuing provider, never supplied by you: Deposit Addresses issued by Erebor Bank, N.A. accept a deposit only from a registered counterparty wallet (true), while those issued by Coinme Inc. accept a deposit from any crypto address (false). When true, a deposit from an unregistered address still arrives, but its transaction parks on a senderAttribution hold until you register a matching External Account (the hold's matchableExternalAccountCriteria says what will match) and fails at the hold's deadline if you never do — so capture the sender's address up front. When false, there is nothing to register against, so skip that step entirely. Read it per Deposit Address rather than caching it per project. Read-only, and omitted when OMS cannot identify the issuing provider — treat the requirement as undetermined rather than assuming either regime.
Partner display label.
Free-form key-value pairs supplied at creation or update.
When the deposit address was created.
When the deposit address was last updated.