curl --request GET \
--url https://staging.crossmint.com/api/2026-09-16/payment-methods \
--header 'Authorization: Bearer <token>' \
--header 'X-API-KEY: <api-key>'import requests
url = "https://staging.crossmint.com/api/2026-09-16/payment-methods"
headers = {
"X-API-KEY": "<api-key>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<api-key>', Authorization: 'Bearer <token>'}
};
fetch('https://staging.crossmint.com/api/2026-09-16/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/2026-09-16/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 => [
"Authorization: Bearer <token>",
"X-API-KEY: <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/2026-09-16/payment-methods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Authorization", "Bearer <token>")
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/2026-09-16/payment-methods")
.header("X-API-KEY", "<api-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/2026-09-16/payment-methods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
request["Authorization"] = 'Bearer <token>'
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": {
"accountHolder": {
"name": "Alice Smith"
},
"accountSuffix": "7899",
"accountType": "checking",
"bankAddress": {
"city": "New York",
"line1": "123 Main St",
"postalCode": "10001",
"stateOrRegion": "NY"
},
"country": "US",
"currency": "usd",
"entityType": "individual",
"routingNumber": "071000013"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"lastPayoutAt": "2026-06-15T18:00:00.000Z",
"paymentMethodId": "dd8a59c6-aac0-47c2-9c21-686caf7f0359",
"reason": null,
"status": "active",
"statusReason": null,
"type": "bank-account-us",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountHolder": {
"country": "DE",
"name": "Hans Müller"
},
"accountSuffix": "6789",
"bic": "COBADEFFXXX",
"country": "DE",
"currency": "eur",
"entityType": "individual"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": false,
"lastPayoutAt": "2026-06-15T18:00:00.000Z",
"paymentMethodId": "3323460b-d9d2-4ec6-b380-8a3e01e3f226",
"reason": null,
"status": "active",
"statusReason": null,
"type": "bank-account-sepa-iban",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountHolder": {
"name": "Luis Gomez Rios"
},
"accountSuffix": "7899",
"country": "MX",
"currency": "mxn",
"entityType": "individual"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"paymentMethodId": "b9f1c4d2-5e70-4a31-8c66-2f0d7a95e134",
"reason": null,
"status": "active",
"statusReason": null,
"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"
}{
"error": true,
"message": "<string>",
"code": "<string>",
"parameters": {}
}{
"error": true,
"message": "<string>",
"code": "<string>",
"parameters": {}
}{
"error": true,
"message": "<string>",
"code": "<string>",
"parameters": {}
}List Payment Methods by User
Retrieve the bank account payout methods saved for a given user.
curl --request GET \
--url https://staging.crossmint.com/api/2026-09-16/payment-methods \
--header 'Authorization: Bearer <token>' \
--header 'X-API-KEY: <api-key>'import requests
url = "https://staging.crossmint.com/api/2026-09-16/payment-methods"
headers = {
"X-API-KEY": "<api-key>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<api-key>', Authorization: 'Bearer <token>'}
};
fetch('https://staging.crossmint.com/api/2026-09-16/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/2026-09-16/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 => [
"Authorization: Bearer <token>",
"X-API-KEY: <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/2026-09-16/payment-methods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Authorization", "Bearer <token>")
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/2026-09-16/payment-methods")
.header("X-API-KEY", "<api-key>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.crossmint.com/api/2026-09-16/payment-methods")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
request["Authorization"] = 'Bearer <token>'
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": {
"accountHolder": {
"name": "Alice Smith"
},
"accountSuffix": "7899",
"accountType": "checking",
"bankAddress": {
"city": "New York",
"line1": "123 Main St",
"postalCode": "10001",
"stateOrRegion": "NY"
},
"country": "US",
"currency": "usd",
"entityType": "individual",
"routingNumber": "071000013"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"lastPayoutAt": "2026-06-15T18:00:00.000Z",
"paymentMethodId": "dd8a59c6-aac0-47c2-9c21-686caf7f0359",
"reason": null,
"status": "active",
"statusReason": null,
"type": "bank-account-us",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountHolder": {
"country": "DE",
"name": "Hans Müller"
},
"accountSuffix": "6789",
"bic": "COBADEFFXXX",
"country": "DE",
"currency": "eur",
"entityType": "individual"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"default": false,
"lastPayoutAt": "2026-06-15T18:00:00.000Z",
"paymentMethodId": "3323460b-d9d2-4ec6-b380-8a3e01e3f226",
"reason": null,
"status": "active",
"statusReason": null,
"type": "bank-account-sepa-iban",
"updatedAt": "2026-08-20T19:12:11.000Z"
},
{
"bankAccount": {
"accountHolder": {
"name": "Luis Gomez Rios"
},
"accountSuffix": "7899",
"country": "MX",
"currency": "mxn",
"entityType": "individual"
},
"createdAt": "2026-08-20T19:10:00.000Z",
"paymentMethodId": "b9f1c4d2-5e70-4a31-8c66-2f0d7a95e134",
"reason": null,
"status": "active",
"statusReason": null,
"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"
}{
"error": true,
"message": "<string>",
"code": "<string>",
"parameters": {}
}{
"error": true,
"message": "<string>",
"code": "<string>",
"parameters": {}
}{
"error": true,
"message": "<string>",
"code": "<string>",
"parameters": {}
}Returns
An object with adata array of PaymentMethod objects. Use the cursor parameter to paginate; when nextCursor is present, more pages are available.Authorizations
API key required for authentication
The end user's JWT, sent as Authorization: Bearer <JWT> together with a client-side API key. Validated against the project's external JWT configuration.
Query Parameters
Opaque cursor from a previous response (nextCursor or previousCursor). Omit it on the first request.
Maximum number of results per page. Minimum 1, maximum 100. Default 30.
Sort direction by creation date. desc returns the newest first (default). asc returns the oldest first.
asc, desc Filter by payment method type. Omit to return all types.
bank-account-ae, bank-account-br, bank-account-co, bank-account-id, bank-account-mx-clabe, bank-account-ng, bank-account-ph, bank-account-sepa-iban, bank-account-th, bank-account-us, bank-account-vn, 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.
"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.
false, true Response
Paginated list of payment methods. nextCursor and previousCursor are present when more pages exist in that direction.
Array of payment method objects for the current page.
A saved payment method. Sensitive fields (full PAN, CVC, full account numbers, IBANs, Bre-B keys) are never included.
- CO bank account
- MX CLABE
- AE bank account
- ID bank account
- NG bank account
- PH bank account
- TH bank account
- VN bank account
- US bank account
- SEPA IBAN
- CO Bre-B key
- Card
Show child attributes
Show child attributes
{
"createdAt": "2025-01-15T10:30:00.000Z",
"paymentMethodId": "3f7a9c10-2a8b-4c5d-9e2f-1b3a4c5d6e7f",
"type": "card",
"updatedAt": "2025-01-15T10:30:00.000Z"
}
Cursor to fetch the next page. Absent or null when there are no more results.
Cursor to fetch the previous page. Absent or null on the first page.
Was this page helpful?

