List Cards for a Customer
Retrieve a paginated list of all cards attached to a specific customer with optional ordering.
API Credentials
Request Parametersโ
Required - 1 fieldPath Parameters
`id`STRING(required)
Customer ID (must be a valid customer ID starting with cust_).
Additional - 3 fieldsPagination & Sorting
Responsesโ
200
Cards retrieved successfullyList object containing card objects and pagination information.
Card object includes:
id- Card ID (card_*)brand- Card brand (Visa, MasterCard, JCB, etc.)last_digits- Last 4 digits of card numbername- Cardholder nameexpiration_month- Card expiration month (1-12)expiration_year- Card expiration year (YYYY)bank- Issuing bank namefingerprint- Unique card identifier (for duplicate detection)
400
Bad requestInvalid parameters provided.
Common causes:
- Invalid limit value (exceeds 100)
- Negative offset value
- Invalid order value
401
UnauthorizedAuthentication failed. Invalid or missing API key.
Common causes:
- Missing Authorization header
- Invalid secret key
- Using public key instead of secret key
- Incorrect HTTP Basic Auth format
404
Not foundCustomer not found.
Common causes:
- Customer ID does not exist
- Customer has been deleted
Code samplesโ
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/customers/cust_test_5xuy4w91xqz7d1w9u0t/cards \
-u skey_test_5xuy4w91xqz7d1w9u0t:
require 'omise'
Omise.api_key = 'skey_test_5xuy4w91xqz7d1w9u0t'
cards = Omise::Card.list({
customer_id: 'cust_test_5xuy4w91xqz7d1w9u0t'
})
import omise
omise.api_secret = 'skey_test_5xuy4w91xqz7d1w9u0t'
customer = omise.Customer.retrieve('cust_test_5xuy4w91xqz7d1w9u0t')
cards = customer.cards()
const omise = require('omise')({
secretKey: 'skey_test_5xuy4w91xqz7d1w9u0t'
});
const cards = await omise.customers.listCards('cust_test_5xuy4w91xqz7d1w9u0t', {
limit: 20,
offset: 0
});
<?php
define('OMISE_SECRET_KEY', 'skey_test_5xuy4w91xqz7d1w9u0t');
$customer = OmiseCustomer::retrieve('cust_test_5xuy4w91xqz7d1w9u0t');
$cards = $customer['cards'];
Client client = new Client.Builder()
.secretKey("skey_test_5xuy4w91xqz7d1w9u0t")
.build();
ScopedList<Card> cards = client.customer("cust_test_5xuy4w91xqz7d1w9u0t")
.cards()
.list()
.limit(20L)
.send();
var client = new Client("skey_test_5xuy4w91xqz7d1w9u0t");
var cards = await client.Customers.ListCards("cust_test_5xuy4w91xqz7d1w9u0t", new ListRequest
{
Limit = 20,
Offset = 0
});
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"skey_test_5xuy4w91xqz7d1w9u0t",
)
cards, _ := client.Cards().ListCards("cust_test_5xuy4w91xqz7d1w9u0t", &operations.ListCards{
List: operations.List{
Limit: 20,
Offset: 0,
},
})
Error and result codesโ
Common Error Codesโ
| Code | Description | Resolution |
|---|---|---|
bad_request | Invalid parameters | Check limit and offset values |
authentication_failure | Invalid API key | Verify your secret key is correct |
not_found | Customer not found | Verify customer ID exists |
Card Fieldsโ
| Field | Description |
|---|---|
id | Card ID (card_*) |
brand | Card brand (Visa, MasterCard, etc.) |
last_digits | Last 4 digits of card number |
name | Cardholder name |
expiration_month | Expiration month (1-12) |
expiration_year | Expiration year (YYYY) |
bank | Issuing bank name |
country | Card issuing country |
fingerprint | Unique identifier for duplicate detection |
Try it outโ
Required - 1 fields
Additional - 3 fields