POST
/
withdrawals
/
crypto
Withdraw to crypto address
curl --request POST \
  --url https://api.exchange.coinbase.com/withdrawals/crypto \
  --header 'Content-Type: application/json' \
  --header 'cb-access-key: <api-key>' \
  --header 'cb-access-passphrase: <api-key>' \
  --header 'cb-access-sign: <api-key>' \
  --header 'cb-access-timestamp: <api-key>' \
  --data '{
  "profile_id": "<string>",
  "amount": "<string>",
  "currency": "<string>",
  "crypto_address": "<string>",
  "destination_tag": "<string>",
  "no_destination_tag": true,
  "nonce": 123,
  "network": "<string>",
  "add_network_fee_to_total": true,
  "is_intermediary": false,
  "travel_rule_data": {
    "originator_name": "<string>",
    "originator_natural_name": {
      "first_name": "<string>",
      "last_name": "<string>"
    },
    "originator_address": {
      "address_1": "<string>",
      "address_2": "<string>",
      "address_3": "<string>",
      "city": "<string>",
      "state": "<string>",
      "country": "<string>",
      "postal_code": "<string>"
    },
    "originator_telephone_number": "<string>",
    "originator_account": "<string>",
    "originator_account_location_country_code": "<string>",
    "originator_date_of_birth": {
      "year": 123,
      "month": 123,
      "day": 123
    },
    "originator_account_number": "<string>",
    "transfer_purpose": "<string>",
    "beneficiary_name": "<string>",
    "beneficiary_address": {
      "address_1": "<string>",
      "address_2": "<string>",
      "address_3": "<string>",
      "city": "<string>",
      "state": "<string>",
      "country": "<string>",
      "postal_code": "<string>"
    },
    "beneficiary_telephone_number": "<string>",
    "beneficiary_account_location": "<string>",
    "beneficiary_date_of_birth": {
      "year": 123,
      "month": 123,
      "day": 123
    },
    "beneficiary_financial_institution": "<string>",
    "is_self": true,
    "originator_wallet_address": "<string>",
    "originating_vasp_for_intermediary": {
      "attest_verified_wallet_ownership": true
    }
  }
}'
{
  "id": "<string>",
  "amount": "<string>",
  "currency": "<string>",
  "payout_at": "<string>",
  "fee": "<string>",
  "subtotal": "<string>"
}

API Key Permissions

This endpoint requires the “transfer” permission. API key must belong to default profile.

Travel Rule

The Travel Rule requires financial institutions, including custodial cryptocurrency exchanges, to share basic information about their customers when sending funds over a certain amount. VASPs that are part of the TRUST consortium use the TRUST solution when sharing PII to satisfy the Travel Rule data requirements. For more details and examples, see Travel Rule for Withdrawals.

Authorizations

cb-access-key
string
header
required
cb-access-passphrase
string
header
required
cb-access-sign
string
header
required
cb-access-timestamp
string
header
required

Body

application/json
amount
string
required
currency
string
required
crypto_address
string
required
profile_id
string
destination_tag
string
no_destination_tag
boolean
nonce
integer
network
string
add_network_fee_to_total
boolean

A boolean flag to add the network fee on top of the amount. If this is blank, it will default to deducting the network fee from the amount.

is_intermediary
boolean
default:false

A boolean flag to create a transfer using Coinbase as an intermediary VASP. If true, intermediary_jurisdiction must be provided. travel_rule_data may be necessary if the jurisdiction requires data.

travel_rule_data
object

Response

id
string
amount
string
currency
string
payout_at
string
fee
string
subtotal
string