List Customer Payment Methods
curl --request GET \
--url https://api.finosu.com/customers/{customerId}/payment-methods \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.finosu.com/customers/{customerId}/payment-methods"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.finosu.com/customers/{customerId}/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://api.finosu.com/customers/{customerId}/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: <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://api.finosu.com/customers/{customerId}/payment-methods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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://api.finosu.com/customers/{customerId}/payment-methods")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.finosu.com/customers/{customerId}/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>'
response = http.request(request)
puts response.read_body[
{
"paymentMethodId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"paymentMethodType": "CREDIT_CARD",
"lastFour": "<string>",
"accountType": "<string>",
"status": "ACTIVE",
"isDefault": true
}
]Customers
List Customer Payment Methods
List non-deleted payment-method identities for a live customer in the authenticated company. Includes inactive methods. Returns masked display fields only; status does not establish ACH authorization. Results are ordered by payment-method UUID, with SQL pagination.
GET
/
customers
/
{customerId}
/
payment-methods
List Customer Payment Methods
curl --request GET \
--url https://api.finosu.com/customers/{customerId}/payment-methods \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.finosu.com/customers/{customerId}/payment-methods"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.finosu.com/customers/{customerId}/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://api.finosu.com/customers/{customerId}/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: <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://api.finosu.com/customers/{customerId}/payment-methods"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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://api.finosu.com/customers/{customerId}/payment-methods")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.finosu.com/customers/{customerId}/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>'
response = http.request(request)
puts response.read_body[
{
"paymentMethodId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"paymentMethodType": "CREDIT_CARD",
"lastFour": "<string>",
"accountType": "<string>",
"status": "ACTIVE",
"isDefault": true
}
]Retrieve Finosu payment-method UUIDs for a customer using your company API key
in
The response includes bank accounts and other payment-method types, including
inactive methods.
X-API-Key. customerId is your external customer reference, not the Finosu
customer UUID. Only non-deleted methods belonging to that live customer in the
authenticated company are returned.
Response
[
{
"paymentMethodId": "17f82780-3c2d-4e71-bbad-03ca7f713e4f",
"paymentMethodType": "BANK_ACCOUNT",
"lastFour": "6789",
"accountType": "checking",
"status": "ACTIVE",
"isDefault": true
}
]
accountType may be null. Vault tokens, full account and
routing numbers, billing details, and gateway metadata are never returned.
Method status and default status do not establish current ACH authorization or
permission to charge.
For Update ACH Authorization Revocation,
choose the intended BANK_ACCOUNT entry and use its paymentMethodId with the
same customerId. Last-four digits are not unique: if multiple methods could
match the intended account and the intent is to revoke all bank authorizations
for this customer, paginate all results and POST the revocation separately for
each BANK_ACCOUNT ID only. Never revoke cards or another customer’s methods.
Check each response; the operation is not atomic across IDs. Otherwise confirm
the mapping rather than guessing. Do not select the first or default method
merely because it is listed.
Pagination
limit defaults to 100 and accepts 1–100. offset defaults to 0 and must be
nonnegative. Results are ordered by payment-method UUID. Increase offset by
limit until a page contains fewer than limit entries. An existing customer
with no methods, or an offset beyond the last method, returns 200 with [].
Separate pages reflect current records, not a fixed snapshot.
Errors
401— missing, invalid, or inactive API key404— unknown, deleted, or other-company customer422— invalid pagination parameters
Authorizations
Path Parameters
External customer reference ID
Query Parameters
Required range:
1 <= x <= 100Required range:
x >= 0Response
Payment methods; an empty array means no methods on this page.
Finosu payment-method UUID; use for ACH revocation of bank accounts.
Available options:
CREDIT_CARD, DEBIT_CARD, BANK_ACCOUNT, CARD, DIGITAL_WALLET Masked account/card suffix; not a unique account identifier.
Available options:
ACTIVE, INACTIVE, EXPIRED, FAILED, PENDING_VERIFICATION