Wallet API: Payment Methods (Deprecated)
On March 27, 2024 Sign in with Coinbase v2 Payment Methods API are being replaced by v3 Advanced Trade APIs.
Starting March 27 requests to v2 Payment Methods APIs will return an error response. See the Advanced Trade documentation for support.
Table of Endpoints
Name | Method | Endpoint | Legacy Scope | CDP API Key Scope |
---|---|---|---|---|
List Payment Methods | GET | /v2/payment-methods | wallet:payment-methods:read | view |
Show Payment Method | GET | /v2/payment-methods/:payment_method_id/ | wallet:payment-methods:read | view |
Overview
The Payment Method resource represents the different kinds of payment methods that can be used when buying and selling any Coinbase supported asset.
As fiat accounts can be used for buying and selling, they have an associated payment method. This type of a payment method also has a fiat_account
reference to the actual account.
Supported Payment Types
Common Types
The following payment types are commonly used:
ach_bank_account
- Regular US bank accountsepa_bank_account
- European SEPA bank accountideal_bank_account
- iDeal bank account (Europe)fiat_account
- Fiat nominated Coinbase accountbank_wire
- Bank wire (US only)credit_card
- Credit card (can't be used for buying/selling)secure3d_card
- Secure3D verified payment cardeft_bank_account
- Canadian EFT bank accountinterac
- Interac Online for Canadian bank accounts
Complete List
Sign in with Coinbase supports the following payment types:
PAYMENT_METHOD_TYPE_UNKNOWN = 0;
---
ACH = 11;
APPLE_PAY = 15;
CBIT = 34;
COINBASE_FIAT_ACCOUNT = 18;
DENEB_IMPS = 22;
DENEB_UPI = 21;
DIRECT_DEPOSIT_ACCOUNT = 19;
FEDWIRE = 1;
GIFTCARD = 23;
GOOGLE_PAY = 17;
IDEAL = 7;
INTERAC = 33;
INTRA_BANK = 2;
OPEN_BANKING = 30;
PAYPAL_ACCOUNT = 12;
PIX_DEPOSIT = 28;
PIX_WITHDRAWAL = 29;
QD = 8;
REMITLY = 14;
RTP = 16;
SEPA = 4;
SEPA_V2 = 26;
SG_FAST = 32;
SIGNET = 31;
SOFORT = 6;
SWIFT = 3;
UK = 5;
WORLDPAY_CARD = 13;
ZAAKPAY_MOBIKWIK = 20;
ZENGIN_DEPOSIT = 9;
ZENGIN_DEPOSIT_V2 = 25;
ZENGIN_WITHDRAWAL = 10;
ZENGIN_WITHDRAWAL_V2 = 24;
ZEPTO = 27;
Deposit Limits
If the user the has optional wallet:payment-methods:limits
permission, the limits
field is embedded into payment method data. It contains information about buy, instant buy, sell, and deposit limits (there are no limits for withdrawals at this time).
As each one of these can have several limits, you should always look for the lowest remaining value when performing the relevant action.
Parameter | Description |
---|---|
id string | Resource ID |
type string, enumerable | Payment method type |
Name string | Payment method name |
currency string | Payment method's native currency |
primary_buy boolean | Is primary buying method? |
primary_sell boolean | Is primary selling method? |
allow_buy boolean | Is buying allowed with this method? |
allow_sell boolean | Is selling allowed with this method? |
instant_buy boolean | Does this method allow for instant buys? |
instant_sell boolean | Does this method allow for instant sells? |
created_at timestamp | |
updated_at timestamp | |
resource string, constant payment_method | |
resource_path string |
Payment Method Info (default)
{
"id": "83562370-3e5c-51db-87da-752af5ab9559",
"type": "ach_bank_account",
"name": "International Bank *****1111",
"currency": "USD",
"primary_buy": true,
"primary_sell": true,
"allow_buy": true,
"allow_sell": true,
"allow_deposit": true,
"allow_withdraw": true,
"instant_buy": false,
"instant_sell": false,
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-02-11T16:53:57-08:00",
"resource": "payment_method",
"resource_path": "/v2/payment-methods/83562370-3e5c-51db-87da-752af5ab9559"
}
Additional Payment Method Limit Info (wallet:payment-methods:limits
)
{
...
"limits": {
"buy": [
{
"period_in_days": 1,
"total": {
"amount": "3000.00",
"currency": "USD"
},
"remaining": {
"amount": "3000.00",
"currency": "USD"
}
}
],
"instant_buy": [
{
"period_in_days": 7,
"total": {
"amount": "0.00",
"currency": "USD"
},
"remaining": {
"amount": "0.00",
"currency": "USD"
}
}
],
"sell": [
{
"period_in_days": 1,
"total": {
"amount": "3000.00",
"currency": "USD"
},
"remaining": {
"amount": "3000.00",
"currency": "USD"
}
}
],
"deposit": [
{
"period_in_days": 1,
"total": {
"amount": "3000.00",
"currency": "USD"
},
"remaining": {
"amount": "3000.00",
"currency": "USD"
}
}
]
},
}
List Payment Methods
Lists the current user's payment methods.
HTTP Request
GET https://api.coinbase.com/v2/payment-methods
Scopes
wallet:payment-methods:read
Examples
Request
- Shell
- Ruby
- Python
- JavaScript
curl https://api.coinbase.com/v2/payment-methods \
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c'
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
pms = client.payment_methods
from coinbase.wallet.client import Client
client = Client(<api_key>, <api_secret>)
pms = client.get_payment_methods()
var Client = require("coinbase").Client;
var client = new Client({ apiKey: "API KEY", apiSecret: "API SECRET" });
client.getPaymentMethods(function (err, pms) {
console.log(pms);
});
Response
{
"pagination": {
"ending_before": null,
"starting_after": null,
"limit": 25,
"order": "desc",
"previous_uri": null,
"next_uri": null
},
"data": [
{
"id": "127b4d76-a1a0-5de7-8185-3657d7b526ec",
"type": "fiat_account",
"name": "USD Wallet",
"currency": "USD",
"primary_buy": false,
"primary_sell": false,
"allow_buy": true,
"allow_sell": true,
"allow_deposit": true,
"allow_withdraw": true,
"instant_buy": true,
"instant_sell": true,
"created_at": "2015-02-24T14:30:30-08:00",
"updated_at": "2015-02-24T14:30:30-08:00",
"resource": "payment_method",
"resource_path": "/v2/payment-methods/127b4d76-a1a0-5de7-8185-3657d7b526ec",
"fiat_account": {
"id": "a077fff9-312b-559b-af98-146c33e27388",
"resource": "account",
"resource_path": "/v2/accounts/a077fff9-312b-559b-af98-146c33e27388"
}
},
{
"id": "83562370-3e5c-51db-87da-752af5ab9559",
"type": "ach_bank_account",
"name": "International Bank *****1111",
"currency": "USD",
"primary_buy": true,
"primary_sell": true,
"allow_buy": true,
"allow_sell": true,
"allow_deposit": true,
"allow_withdraw": true,
"instant_buy": false,
"instant_sell": false,
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-02-11T16:53:57-08:00",
"resource": "payment_method",
"resource_path": "/v2/payment-methods/83562370-3e5c-51db-87da-752af5ab9559"
}
]
}
Show Payment Method
Get a single payment method (of the current user) by payment method ID.
HTTP Request
GET https://api.coinbase.com/v2/payment-methods/:payment_method_id/
Scopes
wallet:payment-methods:read
Examples
Request
- Shell
- Ruby
- Python
- JavaScript
curl https://api.coinbase.com/v2/payment-methods/83562370-3e5c-51db-87da-752af5ab9559 /
-H 'Authorization: Bearer abd90df5f27a7b170cd775abf89d632b350b7c1c9d53e08b340cd9832ce52c2c'
require 'coinbase/wallet'
client = Coinbase::Wallet::Client.new(api_key: <api key>, api_secret: <api secret>)
pm = client.payment_method("83562370-3e5c-51db-87da-752af5ab9559")
from coinbase.wallet.client import Client
client = Client(<api_key>, <api_secret>)
pm = client.get_payment_method("83562370-3e5c-51db-87da-752af5ab9559")
var Client = require("coinbase").Client;
var client = new Client({ apiKey: "API KEY", apiSecret: "API SECRET" });
client.getPaymentMethod(
"83562370-3e5c-51db-87da-752af5ab9559",
function (err, pm) {
console.log(pm);
}
);
Response
{
"data": {
"id": "83562370-3e5c-51db-87da-752af5ab9559",
"type": "ach_bank_account",
"name": "International Bank *****1111",
"currency": "USD",
"primary_buy": true,
"primary_sell": true,
"allow_buy": true,
"allow_sell": true,
"allow_deposit": true,
"allow_withdraw": true,
"instant_buy": false,
"instant_sell": false,
"created_at": "2015-01-31T20:49:02Z",
"updated_at": "2015-02-11T16:53:57-08:00",
"resource": "payment_method",
"resource_path": "/v2/payment-methods/83562370-3e5c-51db-87da-752af5ab9559"
}
}