Create deposit destination
Create a new deposit destination for an account. Two types are supported:
-
crypto(public): provisions a cryptocurrency address on the requested network. The returnedcrypto.addressis the deposit address; funds sent to it are credited to thetargetaccount in the specified asset. For Customer-owned accounts, the Customer must have thecustodyCryptoandcustodyStablecoincapabilities enabled. -
fiat(private-beta): provisions a bank account at a CDP banking partner. The server picks the account type (e.g.us_bank) and supported payment rails based on the account’s eligibility; passfiat.paymentRailto influence partner selection. The returnedfiatobject contains the bank account details the depositor needs to send funds. For Customer-owned accounts, the Customer must have thecustodyFiatcapability enabled. Requires account enablement — contact your Coinbase representative for access. Fields and behavior may change before general availability.
For Customer-owned accounts not authorized for the required capabilities,
the request is rejected with customer_not_authorized (HTTP 403).
The created destination’s status starts as pending for fiat (it
becomes active once the partner provisioning callback completes) and
active for crypto.
Authorizations
A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.
Headers
An optional string request header for making requests safely retryable. When included, duplicate requests with the same key will return identical responses. Refer to our Idempotency docs for more information on using idempotency keys.
1 - 128Body
- Crypto
- Fiat
Request to create a new deposit destination. Provide the type-specific details matching the chosen type.
The ID of the Account, which is a UUID prefixed by the string account_, that owns the deposit destination.
^account_[a-f0-9\-]{36}$"account_af2937b0-9846-4fe7-bfe9-ccc22d935114"
The type of deposit destination.
crypto "crypto"
Crypto-specific details. Required when type is crypto.
The intended target for deposited funds.
- Target Account
- Target Onchain Address
Optional metadata as key-value pairs. Use this to store additional structured information on a resource, such as customer IDs, order references, or any application-specific data. Up to 10 key/value pairs may be provided. Keys and values are both strings. Keys must be ≤ 40 characters; values must be ≤ 500 characters.
Compliance context for a request. Carries per-request compliance signals, such as the IP address of the individual (i.e., end-customer) that initiated the request.
This object is request-only — it is never echoed back in responses. Inner fields are write-only.
Response
Successfully created deposit destination.
- Crypto
- Fiat
A deposit destination for receiving funds to an account.
The ID of the Deposit Destination, which is a UUID prefixed by the string depositDestination_.
^depositDestination_[a-f0-9\-]{36}$"depositDestination_af2937b0-9846-4fe7-bfe9-ccc22d935114"
The ID of the Account, which is a UUID prefixed by the string account_.
^account_[a-f0-9\-]{36}$"account_af2937b0-9846-4fe7-bfe9-ccc22d935114"
The type of deposit destination.
crypto "crypto"
Crypto-specific details for this deposit destination. Always populated in responses. Contains the network and address.
The status of the deposit destination.
active, inactive, pending "active"
The timestamp when the deposit destination was created.
"2023-10-08T14:30:00Z"
The timestamp when the deposit destination was last updated.
"2023-10-08T14:30:00Z"
The intended target for deposited funds.
- Target Account
- Target Onchain Address
Optional metadata as key-value pairs. Use this to store additional structured information on a resource, such as customer IDs, order references, or any application-specific data. Up to 10 key/value pairs may be provided. Keys and values are both strings. Keys must be ≤ 40 characters; values must be ≤ 500 characters.