Table of Endpoints
| Name | Method | Endpoint | Legacy Scope | CDP API Key Scope |
|---|---|---|---|---|
| Deposit Funds | POST | /v2/accounts/:account_id/deposits | wallet:deposits:create | transfer |
| Commit Deposit | POST | /v2/accounts/:account_id/deposits/:deposit_id/commit | wallet:deposits:create | transfer |
| List Deposits | GET | /v2/accounts/:account_id/deposits | wallet:deposits:read | view |
| Show Deposit | GET | /v2/accounts/:account_id/deposits/:deposit_id | wallet:deposits:read | view |
Overview
The Deposit resource represents a deposit of funds using a payment method (e.g., a bank). Each committed deposit also has an associated transaction.You can start a withdrawal with the flag,
commit: false, which is useful if you want to display a deposit before executing. Deposits made with commit set to false will not complete nor receive an associated transaction until a separate commit request is made.| Parameter | Description |
|---|---|
id string | Resource ID |
status string, enumerable | Status of the deposit. Valid values: created, completed, canceled |
payment_method hash | Associated payment method (e.g., a bank) |
transaction hash | Associated transaction (e.g., a bank, fiat account) |
amount money hash | Amount |
subtotal money hash | Amount without fees |
fee money hash | Fees associated to this deposit |
created_at timestamp | |
updated_at timestamp | |
resource string, constant deposit | |
resource_path string | |
committed boolean | Has this deposit been committed? |
payout_at timestamp, optional | When a deposit isn’t executed instantly, it receives a payout date for the time it will be executed |
Example Deposit Resource
{
"id": "67e0eaec-07d7-54c4-a72c-2e92826897df",
"status": "completed",
"payment_method": {
"id": "83562370-3e5c-51db-87da-752af5ab9559",
"resource": "payment_method",
"resource_path": "/v2/payment-methods/83562370-3e5c-51db-87da-752af5ab9559"
},
"transaction": {
"id": "441b9494-b3f0-5b98-b9b0-4d82c21c252a",
"resource": "transaction",
"resource_path": "/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/transactions/441b9494-b3f0-5b98-b9b0-4d82c21c252a"
},
"amount": {
"amount": "10.00",
"currency": "USD"
},
"subtotal": {
"amount": "10.00",
"currency": "USD"
},
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-02-11T16:54:02-08:00",
"resource": "deposit",
"resource_path": "/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/deposits/67e0eaec-07d7-54c4-a72c-2e92826897df",
"committed": true,
"fee": {
"amount": "0.00",
"currency": "USD"
},
"payout_at": "2015-02-18T16:54:00-08:00"
}
Deposit Funds
Deposits user-defined amount of funds to a fiat account.HTTP Request
POST https://api.coinbase.com/v2/accounts/:account_id/deposits
Scopes
wallet:deposits:create
Arguments
| Parameter | Type | Required | Description |
|---|---|---|---|
amount | string | Required | Deposit amount |
currency | string | Required | Currency for the amount |
payment_method | string | Required | ID of payment method to be used for the deposit. List Payment Methods: GET /payment-methods |
commit | boolean | Optional | If false, this deposit is not immediately completed. Use the commit call to complete it. Default value: false |
Examples
Request
curl https://api.coinbase.com/v2/accounts/82de7fcd-db72-5085-8ceb-bee19303080b/deposits /
-X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c' \
-d '{
"amount": "10",
"currency": "USD",
"payment_method": "83562370-3e5c-51db-87da-752af5ab9559"
}'
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
deposit = client.deposit('2bbf394c-193b-5b2a-9155-3b4732659ede',
{"amount" => "10",
"currency" => "USD",
"payment_method" => "83562370-3e5c-51db-87da-752af5ab9559"})
import requests
# For instructions generating JWT, check the "API Key Authentication" section
JWT_TOKEN = "<your_jwt_token>"
# Coinbase API base URL
ENDPOINT_URL = "https://api.coinbase.com/v2/accounts/:account_id/deposits"
def deposit_funds():
# Generate headers with JWT for authentication
headers = {
"Authorization": f"Bearer {JWT_TOKEN}"
}
data = {
"amount": "10",
"currency": "USD",
"payment_method": "83562370-3e5c-51db-87da-752af5ab9559"
}
# Make the API request
response = requests.post(ENDPOINT_URL, data=data, headers=headers)
return response.json() # Return the JSON response
deposit_funds = deposit_funds()
print(deposit_funds)
var Client = require('coinbase').Client;
var client = new Client({'apiKey': 'API KEY',
'apiSecret': 'API SECRET'});
client.getAccount('2bbf394c-193b-5b2a-9155-3b4732659ede', function(err, account) {
account.deposit({"amount": "10",
"currency": "USD",
"payment_method": "83562370-3e5c-51db-87da-752af5ab9559"}, function(err, tx) {
console.log(tx);
});
});
Response (200)
{
{
"transfer": {
"user_entered_amount": {
"value": "20",
"currency": "USD"
},
"amount": {
"value": "20",
"currency": "USD"
},
"total": {
"value": "20",
"currency": "USD"
},
"subtotal": {
"value": "20",
"currency": "USD"
},
"idem": "7ada05f0-4ab9-4e42-8cb9-4501e795315d",
"committed": false,
"id": "7ada05f0-4ab9-4e42-8cb9-4501e795315d",
"instant": true,
"source": {
"type": "EXTERNAL_PAYMENT_METHOD",
"network": "ach",
"payment_method_id": "",
"external_payment_method": {
"payment_method_id": "5a48fe239b15170130598e9c"
}
},
"target": {
"type": "LEDGER_ACCOUNT",
"network": "internal_retail",
"payment_method_id": "",
"ledger_account": {
"account_id": "6c770048-a3aa-580b-b153-2a6791649ee4",
"currency": "USD",
"owner": {
"id": "5a48fda3bbf66c03a6509af2",
"uuid": "",
"user_uuid": "",
"type": "RETAIL"
}
}
},
"payout_at": "2025-04-09T20:13:48.917581730Z",
"status": "",
"user_reference": "",
"type": "TRANSFER_TYPE_DEPOSIT",
"created_at": null,
"updated_at": null,
"user_warnings": [],
"fees": [],
"total_fee": {
"title": "Fee Total",
"description": "Total fee associated with this transaction",
"amount": {
"value": "0.00",
"currency": "USD"
},
"type": "COINBASE"
},
"cancellation_reason": null,
"hold_days": 0,
"nextStep": null,
"checkout_url": "",
"requires_completion_step": false
}
}
}
Commit Deposit
Completes a deposit that is created incommit: false state.
HTTP Request
POST https://api.coinbase.com/v2/accounts/:account_id/deposits/:deposit_id/commit
Scopes
wallet:deposits:create
Arguments
NoneExamples
Request
curl https://api.coinbase.com/v2/accounts/82de7fcd-db72-5085-8ceb-bee19303080b/deposits/a333743d-184a-5b5b-abe8-11612fc44ab5/commit /
-X POST \
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c' \
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
deposit = client.commit_deposit('2bbf394c-193b-5b2a-9155-3b4732659ede',
'a333743d-184a-5b5b-abe8-11612fc44ab5')
import requests
# For instructions generating JWT, check the "API Key Authentication" section
JWT_TOKEN = "<your_jwt_token>"
# Coinbase API base URL
ENDPOINT_URL = "https://api.coinbase.com/v2/accounts/:account_id/deposits/:deposit_id/commit"
def commit_deposit():
# Generate headers with JWT for authentication
headers = {
"Authorization": f"Bearer {JWT_TOKEN}"
}
# Make the API request
response = requests.post(ENDPOINT_URL, headers=headers)
return response.json() # Return the JSON response
commit_deposit = commit_deposit()
print(commit_deposit)
var Client = require('coinbase').Client;
var client = new Client({'apiKey': 'API KEY',
'apiSecret': 'API SECRET'});
client.getAccount('2bbf394c-193b-5b2a-9155-3b4732659ede', function(err, account) {
account.getDeposit('a333743d-184a-5b5b-abe8-11612fc44ab5', function(err, tx) {
tx.commit(function(err, resp) {
console.log(resp);
});
});
});
Response (200)
{
"transfer": {
"user_entered_amount": {
"value": "20",
"currency": "USD"
},
"amount": {
"value": "20",
"currency": "USD"
},
"total": {
"value": "20",
"currency": "USD"
},
"subtotal": {
"value": "20",
"currency": "USD"
},
"idem": "bd4d2728-9d0c-478e-829e-8f4b4888b108",
"committed": false,
"id": "bd4d2728-9d0c-478e-829e-8f4b4888b108",
"instant": true,
"source": {
"type": "EXTERNAL_PAYMENT_METHOD",
"network": "ach",
"payment_method_id": "",
"external_payment_method": {
"payment_method_id": "5a48fe239b15170130598e9c"
}
},
"target": {
"type": "LEDGER_ACCOUNT",
"network": "internal_retail",
"payment_method_id": "",
"ledger_account": {
"account_id": "6c770048-a3aa-580b-b153-2a6791649ee4",
"currency": "USD",
"owner": {
"id": "5a48fda3bbf66c03a6509af2",
"uuid": "",
"user_uuid": "",
"type": "RETAIL"
}
}
},
"payout_at": "2025-04-10T18:07:25.938533583Z",
"status": "",
"user_reference": "CODE",
"type": "TRANSFER_TYPE_DEPOSIT",
"created_at": null,
"updated_at": null,
"user_warnings": [],
"fees": [],
"total_fee": {
"title": "Fee Total",
"description": "Total fee associated with this transaction",
"amount": {
"value": "0.00",
"currency": "USD"
},
"type": "COINBASE"
},
"cancellation_reason": null,
"hold_days": 0,
"nextStep": null,
"checkout_url": "",
"requires_completion_step": false
}
}
List Deposits
Lists fiat deposits for an account.Deposits are only listed for fiat accounts and wallets. To list deposits associated with a crypto account/wallet, use List Transactions.
HTTP Request
GET https://api.coinbase.com/v2/accounts/:account_id/deposits
Scopes
wallet:deposits:read
Examples
Request
curl https://api.coinbase.com/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/deposits \
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c'
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
deposits = client.list_deposits('2bbf394c-193b-5b2a-9155-3b4732659ede')
import requests
# For instructions generating JWT, check the "API Key Authentication" section
JWT_TOKEN = "<your_jwt_token>"
# Coinbase API base URL
ENDPOINT_URL = "https://api.coinbase.com/v2/accounts/:account_id/deposits"
def list_deposits():
# Generate headers with JWT for authentication
headers = {
"Authorization": f"Bearer {JWT_TOKEN}"
}
# Make the API request
response = requests.get(ENDPOINT_URL, headers=headers)
return response.json() # Return the JSON response
deposits = list_deposits()
print(deposits)
var Client = require('coinbase').Client;
var client = new Client({'apiKey': 'API KEY',
'apiSecret': 'API SECRET'});
client.getAccount('2bbf394c-193b-5b2a-9155-3b4732659ede', function(err, account) {
account.getDeposits(function(err, txs) {
console.log(txs);
});
});
Response
{
"pagination": {
"ending_before": null,
"starting_after": null,
"limit": 25,
"order": "desc",
"previous_uri": null,
"next_uri": null
},
"data": [
{
"id": "67e0eaec-07d7-54c4-a72c-2e92826897df",
"status": "completed",
"payment_method": {
"id": "83562370-3e5c-51db-87da-752af5ab9559",
"resource": "payment_method",
"resource_path": "/v2/payment-methods/83562370-3e5c-51db-87da-752af5ab9559"
},
"transaction": {
"id": "441b9494-b3f0-5b98-b9b0-4d82c21c252a",
"resource": "transaction",
"resource_path": "/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/transactions/441b9494-b3f0-5b98-b9b0-4d82c21c252a"
},
"amount": {
"amount": "10.00",
"currency": "USD"
},
"subtotal": {
"amount": "10.00",
"currency": "USD"
},
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-02-11T16:54:02-08:00",
"resource": "deposit",
"resource_path": "/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/deposits/67e0eaec-07d7-54c4-a72c-2e92826897df",
"committed": true,
"fee": {
"amount": "0.00",
"currency": "USD"
},
"payout_at": "2015-02-18T16:54:00-08:00"
}
]
}
Show Deposit
Get one deposit by deposit Id.HTTP Request
GET https://api.coinbase.com/v2/accounts/:account_id/deposits/:deposit_id
Scopes
wallet:deposits:read
Examples
Request
curl https://api.coinbase.com/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/deposits/67e0eaec-07d7-54c4-a72c-2e92826897df /
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c'
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
deposit = client.list_deposit('2bbf394c-193b-5b2a-9155-3b4732659ede',
'dd3183eb-af1d-5f5d-a90d-cbff946435ff')
import requests
# For instructions generating JWT, check the "API Key Authentication" section
JWT_TOKEN = "<your_jwt_token>"
# Coinbase API base URL
ENDPOINT_URL = "https://api.coinbase.com/v2/accounts/:account_id/deposits/:deposit_id"
def show_deposit():
# Generate headers with JWT for authentication
headers = {
"Authorization": f"Bearer {JWT_TOKEN}"
}
# Make the API request
response = requests.get(ENDPOINT_URL, headers=headers)
return response.json() # Return the JSON response
deposit = show_deposit()
print(deposit)
var Client = require('coinbase').Client;
var client = new Client({'apiKey': 'API KEY',
'apiSecret': 'API SECRET'});
client.getAccount('2bbf394c-193b-5b2a-9155-3b4732659ede', function(err, account) {
account.getDeposit('dd3183eb-af1d-5f5d-a90d-cbff946435ff', function(err, tx) {
console.log(tx);
});
});
Response
{
"data": {
"id": "67e0eaec-07d7-54c4-a72c-2e92826897df",
"status": "completed",
"payment_method": {
"id": "83562370-3e5c-51db-87da-752af5ab9559",
"resource": "payment_method",
"resource_path": "/v2/payment-methods/83562370-3e5c-51db-87da-752af5ab9559"
},
"transaction": {
"id": "441b9494-b3f0-5b98-b9b0-4d82c21c252a",
"resource": "transaction",
"resource_path": "/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/transactions/441b9494-b3f0-5b98-b9b0-4d82c21c252a"
},
"amount": {
"amount": "10.00",
"currency": "USD"
},
"subtotal": {
"amount": "10.00",
"currency": "USD"
},
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-02-11T16:54:02-08:00",
"resource": "deposit",
"resource_path": "/v2/accounts/2bbf394c-193b-5b2a-9155-3b4732659ede/deposits/67e0eaec-07d7-54c4-a72c-2e92826897df",
"committed": true,
"fee": {
"amount": "0.00",
"currency": "USD"
},
"payout_at": "2015-02-18T16:54:00-08:00"
}
}