Transactions
Table of Endpoints
Name | Method | Endpoint | Legacy Scope | CDP API Key Scope |
---|---|---|---|---|
Send Money | POST | /v2/accounts/:account_id/transactions | wallet:transactions:send | transfer |
List Transactions | GET | /v2/accounts/:account_id/transactions | wallet:transactions:read | view |
Show Transaction | GET | /v2/accounts/:account_id/transactions/:transaction_id | wallet:transactions:read | view |
Overview
The Transaction resource represents an event on the account. An amount
can be positive (credit) or negative (debit). Transactions with counterparties have either a to
or from
field.
Transaction Types
Transaction types available:
Transaction Type | Description |
---|---|
advanced_trade_fill | Fills for an advanced trade order |
buy | Buy a digital asset |
clawback | Recover money already disbursed |
derivatives_settlement | Daily cash transfers between futures and spot accounts for the US-regulated futures product |
earn_payout | Payout for user earn on Coinbase |
fiat_deposit | Deposit funds into a fiat account from a financial institution |
fiat_withdrawal | Withdraw funds from a fiat account |
incentives_rewards_payout | Redemptions for Incentive & Referral campaigns |
incentives_shared_clawback | Clawback incentive payout from customer account |
intx_deposit | Deposit crypto to customer international account |
intx_withdrawal | Withdraw crypto from customer international account |
receive | Receive a digital asset |
request | Request a digital asset from a user or email |
retail_simple_dust | Sweep of dust balance from the account |
sell | Sell a digital asset |
send | Send a supported digital asset to a corresponding address or email. Note: Previously functioned as a default catch-all type. Now it is restricted to send transactions only. |
staking_transfer | Funds from primary account moved to staked account |
subscription_rebate | Transaction for Coinbase subscription rebate |
subscription | Transaction for Coinbase subscription |
trade | Exchange one cryptocurrency for another cryptocurrency or fiat currency |
transfer | Transfer funds between two of your own accounts |
tx | Default transaction type, uncategorized. |
unstaking_transfer | Funds from staked funds moved to primary account |
unsupported_asset_recovery | Recover unsupported ERC-20s deposited to Coinbase on ethereum mainnet |
unwrap_asset | Unwrap wrapped assets, e.g. cbETH, to wrappable assets, e.g. staked ETH |
vault_withdrawal | Withdraw funds from a vault account |
wrap_asset | Wrap wrappable assets, e.g. staked ETH, to wrapped assets, e.g. cbETH |
Note: Type tx
is the default and uncategorized and additional types will be added over time.
Transaction Statuses
Transaction statuses vary based on the type of the transaction. As both types and statuses can change over time, we recommend that you use details
field for constructing human readable descriptions of transactions. Currently available statuses are:
Transaction Status | Description |
---|---|
canceled | Transaction was canceled |
completed | Completed transactions (e.g., a send or a buy) |
expired | Conditional transaction expired due to external factors |
failed | Failed transactions (e.g., failed buy) |
pending | Pending transactions (e.g., a send or a buy) |
waiting_for_clearing | Vault withdrawal is waiting to be cleared |
waiting_for_signature | Vault withdrawal is waiting for approval |
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
id | string | Required | Transaction ID |
type | string, enum | Required | Transaction type |
status | string, enum | Required | Status |
amount | money hash | Required | Amount of any supported digital asset. Value is negative to indicate the debiting of funds for the following transaction type cases:
|
native_amount | money hash | Required | Amount in user’s native currency. Value is negative to indicate the debiting of funds for the following transaction type cases:
|
description | string | Required | User defined description |
created_at | timestamp | Required | |
updated_at | timestamp | Required | Removed for List/Show Tx on 7 Feb |
resource , constant transaction | string | Required | |
resource_path | string | Required | |
instant_exchange | boolean | Required | Removed for List/Show Tx on 7 Feb |
advanced_trade_fill | hash | Required | Only provided if the transaction type is advanced_trade_fill . Contains information about the fill posted. |
details | hash | Required | Removed for List/Show Tx on 7 Feb Detailed information about the transaction |
network | hash | Optional | Info about crypto networks including on-chain transaction hashes. Only available for certain types of transactions. |
to | hash | Optional | Receiving party of a debit transaction. Usually another resource but can be another type like email. Only available for certain types of transactions. |
from | hash | Optional | Originating party of a credit transaction. Usually another resource, but can be another type like Bitcoin network. Only available for certain types of transactions. |
address | hash | Optional | Removed for List/Show Tx on 7 Feb Associated crypto address for received payment |
application | hash | Optional | Removed for List/Show Tx on 7 Feb Associated OAuth2 application |
cancelable | boolean | Optional | New for List/Show Tx on 7 Feb Allowed to cancel transaction; ONLY provided when transaction is a SEND |
idem | string | Optional | New for List/Show Tx on 7 Feb Idempotency key of transaction; ONLY provided when transaction is a SEND |
buy | hash | Optional | New for List/Show Tx on 7 Feb Only provided if transaction type is a buy |
sell | hash | Optional | New for List/Show Tx on 7 Feb Only provided if transaction type is a sell |
trade | hash | Optional | New for List/Show Tx on 7 Feb Only provided if transaction type is a trade |
Advanced Trade Fill
Parameter | Type | Description |
---|---|---|
fill_price | string | Price this fill was posted at |
product_id | string | |
order_id | string | The UUID of the order this fill belongs to |
commission | Commission per fill of the order. Always represented in quote currency. | |
order_side | string, enum | Side the order was placed on. Possible values: BUY , SELL |
Details
Parameter | Type | Description |
---|---|---|
title | string | Description of transaction with currency. Example: “Received Bitcoin” |
subsidebar_label | string or null | |
header | string | Amount received, in amount and equivalent native amount. Example: “Received 0.005378 BTC ($49.92)“ |
health | string | Health of transaction. Example: “Positive” |
Network
Parameter | Type | Description |
---|---|---|
status | string, enum | Possible values:
|
status_description | string or null | Removed for List/Show Tx on 7 Feb Description of status |
hash | string | New for List/Show Tx on 7 Feb Hash for onchain transactions; ONLY provided when transaction is a SEND |
transaction_fee | hash | New for List/Show Tx on 7 Feb Transaction fee; ONLY provided when transaction is a SEND |
network_name | string | New for List/Show Tx on 7 Feb Name of transaction network; ONLY provided when transaction is a SEND |
From
Parameter | Type | Description |
---|---|---|
id | string | Updated for List/Show Tx on 7 Feb UUID (and after Feb 7, account) of user who the transaction is from |
resource | string or null | Updated for List/Show Tx on 7 Feb user (and after Feb 7, account) |
resource_path | string | Updated for List/Show Tx on 7 Feb
|
currency | string | Removed for List/Show Tx on 7 Feb Currency user sent |
Resource Examples
Transaction Resource (Send)
Transaction Resource (Buy)
Send Money
Send funds to a network address for any Coinbase supported asset, or email address of the recipient. No transaction fees are required for off-blockchain cryptocurrency transactions.
Phone number sends via the Send Money API is temporarily disabled. Sends to phone numbers via the Send Money API is under reconstruction, and is temporarily disabled until further notice. Sends to blockchain addresses and email addresses remain unchanged.
The Send money API is asynchronous, which means that Coinbase may delay or cancel the send when necessary. Coinbase recommends that you poll the status
field for the completed
state with the Show a Transaction API. You can also see if a transaction is pending
in the Send Money API response.
When used with OAuth2 authentication, this endpoint requires two factor authentication.
HTTP Request
POST https://api.coinbase.com/v2/accounts/:account_id/transactions
Scopes
wallet:transactions:send
Arguments
Parameter | Type | Required | Description |
---|---|---|---|
type , constant send | string | Required | Type send is required when sending money |
to | string | Required | A blockchain address, or email of the recipient |
amount | string | Required | Amount to be sent |
currency | string | Required | Currency of the amount |
description | string | Optional | Notes to be included in the email to the recipient |
skip_notifications | boolean | Optional | Don’t send notification emails for small amounts (e.g., tips) |
idem | string | Optional | [Recommended] A UUIDv4 token to ensure idempotence. If a previous transaction with the same idem parameter exists for this sender, that previous transaction is returned and a new one is not created. Max length is 100 characters. Must be a valid UUID and lowercased. |
destination_tag | string | Optional | For select currencies, destination_tag or memo indicates the beneficiary or destination of a payment for select currencies. Example: { "type" : "send", "to": "address", "destination_tag" : "memo", "amount": "", "currency": "" } |
network | string | Optional | Network to be sent on for a blockchain address send. If not specified, send will be executed on the default network for that currency. Ex: “ethereum”, “polygon”, etc. |
travel_rule_data | object | Optional | Visit the Guide for more details |
Examples
Request
Response (201)
List Transactions
Lists the transactions of an account by account ID.
HTTP Request
GET https://api.coinbase.com/v2/accounts/:account_id/transactions
Scopes
wallet:transactions:read
Examples
Request
Response (200)
Show Transaction
Get a single transaction for an account.
HTTP Request
GET https://api.coinbase.com/v2/accounts/:account_id/transactions/:transaction_id
Scopes
wallet:transactions:read