List Payment Methods
curl --request GET \
--url https://staging.crossmint.com/api/unstable/payment-methods \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://staging.crossmint.com/api/unstable/payment-methods"
headers = {"X-API-KEY": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<x-api-key>'}};
fetch('https://staging.crossmint.com/api/unstable/payment-methods', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.crossmint.com/api/unstable/payment-methods",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/unstable/payment-methods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.crossmint.com/api/unstable/payment-methods")
.header("X-API-KEY", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/unstable/payment-methods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"card": {
"billing": {
"address": {
"city": "Springfield",
"country": "US",
"line1": "123 Main St",
"postalCode": "62701",
"stateOrRegion": "IL"
},
"name": "Alice Smith",
"phone": "+12125551234"
},
"bin": "411111",
"brand": "visa",
"country": "US",
"expiration": {
"month": "12",
"year": "2028"
},
"fundingType": "debit",
"last4": "1111"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": true,
"displayName": "Visa ••1111",
"paymentMethodId": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"type": "card",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountSuffix": "6259",
"accountType": "checking",
"bankAddress": {
"city": "New York",
"country": "US",
"line1": "123 Main St",
"postalCode": "10001",
"stateOrRegion": "NY"
},
"bankName": "Chime",
"country": "US",
"currency": "usd",
"entityType": "individual",
"routingNumber": "091300010"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": false,
"displayName": "Chime ••6259",
"lastPayoutAt": "2026-06-15T18:00:00.000Z",
"paymentMethodId": "dd8a59c6-aac0-47c2-9c21-686caf7f0359",
"reason": null,
"status": "active",
"type": "bank-account-us",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountSuffix": "6789",
"bankName": "Deutsche Bank",
"bic": "COBADEFFXXX",
"country": "DE",
"currency": "eur",
"entityType": "individual"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": false,
"displayName": "Deutsche Bank ••6789",
"lastPayoutAt": "2026-06-15T18:00:00.000Z",
"paymentMethodId": "3323460b-d9d2-4ec6-b380-8a3e01e3f226",
"reason": null,
"status": "active",
"type": "bank-account-sepa-iban",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountHolder": {
"name": "Luis Gomez Rios"
},
"accountSuffix": "7899",
"bankCode": "012",
"country": "MX",
"currency": "mxn",
"entityType": "individual",
"institutionName": "BBVA Mexico"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": false,
"displayName": "BBVA Mexico ••7899",
"paymentMethodId": "b9f1c4d2-5e70-4a31-8c66-2f0d7a95e134",
"reason": null,
"status": "active",
"type": "bank-account-mx-clabe",
"updatedAt": "2026-09-02T11:04:18.000Z"
}
],
"nextCursor": "eyJsYXN0SWQiOiI2NDUifQ==",
"previousCursor": null
}{
"code": "PAYMENT_METHOD_INVALID_USER_LOCATOR",
"error": true,
"message": "userLocator is required when not using JWT authentication"
}Payment Methods
List Payment Methods
Returns a paginated list of payment methods for a user, newest first by default. A deleted payment method is omitted; pass status=deleted to list the deleted bank accounts.
API scope required: payment-methods.read
GET
/
unstable
/
payment-methods
List Payment Methods
curl --request GET \
--url https://staging.crossmint.com/api/unstable/payment-methods \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://staging.crossmint.com/api/unstable/payment-methods"
headers = {"X-API-KEY": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<x-api-key>'}};
fetch('https://staging.crossmint.com/api/unstable/payment-methods', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.crossmint.com/api/unstable/payment-methods",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.crossmint.com/api/unstable/payment-methods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.crossmint.com/api/unstable/payment-methods")
.header("X-API-KEY", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/unstable/payment-methods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"card": {
"billing": {
"address": {
"city": "Springfield",
"country": "US",
"line1": "123 Main St",
"postalCode": "62701",
"stateOrRegion": "IL"
},
"name": "Alice Smith",
"phone": "+12125551234"
},
"bin": "411111",
"brand": "visa",
"country": "US",
"expiration": {
"month": "12",
"year": "2028"
},
"fundingType": "debit",
"last4": "1111"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": true,
"displayName": "Visa ••1111",
"paymentMethodId": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
"type": "card",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountSuffix": "6259",
"accountType": "checking",
"bankAddress": {
"city": "New York",
"country": "US",
"line1": "123 Main St",
"postalCode": "10001",
"stateOrRegion": "NY"
},
"bankName": "Chime",
"country": "US",
"currency": "usd",
"entityType": "individual",
"routingNumber": "091300010"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": false,
"displayName": "Chime ••6259",
"lastPayoutAt": "2026-06-15T18:00:00.000Z",
"paymentMethodId": "dd8a59c6-aac0-47c2-9c21-686caf7f0359",
"reason": null,
"status": "active",
"type": "bank-account-us",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountSuffix": "6789",
"bankName": "Deutsche Bank",
"bic": "COBADEFFXXX",
"country": "DE",
"currency": "eur",
"entityType": "individual"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": false,
"displayName": "Deutsche Bank ••6789",
"lastPayoutAt": "2026-06-15T18:00:00.000Z",
"paymentMethodId": "3323460b-d9d2-4ec6-b380-8a3e01e3f226",
"reason": null,
"status": "active",
"type": "bank-account-sepa-iban",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountHolder": {
"name": "Luis Gomez Rios"
},
"accountSuffix": "7899",
"bankCode": "012",
"country": "MX",
"currency": "mxn",
"entityType": "individual",
"institutionName": "BBVA Mexico"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": false,
"displayName": "BBVA Mexico ••7899",
"paymentMethodId": "b9f1c4d2-5e70-4a31-8c66-2f0d7a95e134",
"reason": null,
"status": "active",
"type": "bank-account-mx-clabe",
"updatedAt": "2026-09-02T11:04:18.000Z"
}
],
"nextCursor": "eyJsYXN0SWQiOiI2NDUifQ==",
"previousCursor": null
}{
"code": "PAYMENT_METHOD_INVALID_USER_LOCATOR",
"error": true,
"message": "userLocator is required when not using JWT authentication"
}This endpoint requires a JWT from an external auth provider (Auth0, Firebase, Stytch, etc.) or a custom JWT backed by a JWKS endpoint. Crossmint Auth is not supported.
Headers
API key required for authentication
Query Parameters
Available options:
asc, desc Available options:
bank-account-br, bank-account-co, bank-account-mx-clabe, bank-account-sepa-iban, bank-account-us, bre-b, card, pix Set to 'deleted' to list the deleted bank accounts, which the unfiltered list omits. Cards carry no status and are never returned when this is set.
Available options:
deleted Filter to payment methods that have (true) or have not (false) funded a settled offramp payout. When set to false, cards are included in results. Omit to return all payment methods regardless of payout history.
Available options:
false, true Response
Returns the list of payment methods
Was this page helpful?

