Pagination, Filtering & Rate Limits

The list endpoints across Cardholders, Cards, Transactions, and Fees share a common pagination shape and a broadly consistent set of query parameters. This page documents that shared shape once, so individual Guides can link back here instead of repeating it.

Common pagination parameters

ParameterTypeDefaultNotes
limitinteger50Maximum number of results per page. Maximum allowed value is 200.
offsetinteger0Number of rows to skip before returning results — use for page-by-page traversal (offset = page_number × limit).
beforestring (Unix timestamp, seconds)Returns only records created before this time.
afterstring (Unix timestamp, seconds)Returns only records created after this time.
orderBystring (enum, endpoint-specific)endpoint-specificSee per-endpoint tables below.
sortstring (asc | desc)endpoint-specificSort direction applied to orderBy.

Every paginated list response shares this envelope:

{
  "status": "success",
  "items": [ /* ... */ ],
  "total": 137,
  "limit": 50,
  "offset": 0
}

total reflects the total number of records matching your filters (not just the current page). Use it together with limit/offset to know when you've reached the end.

GET /cardholders

ParameterValues
status0 Pending · 1 Approved · 2 Compliance Decline · 3 Under Review · 4 Draft · 5 Deleted · 6 Error · 7 Admin Decline
orderBycardholderId | status | lastName | dateCreated
sortasc | desc
before / after / limit / offsetAs above

Example: the 20 most recently created Approved cardholders:

GET /cardholders?status=1&orderBy=dateCreated&sort=desc&limit=20&offset=0

GET /cards

ParameterValues
issuerCardStatus0 Pending · 1 Active · 2 On Hold · 3 Closed · 4 Not Activated
cardholderIdFilter to a single cardholder's cards
orderBycardId | issuerCardStatus | cardholderId | cardHolderLastName | createdDatetime
sortasc | desc
before / after / limit / offsetAs above

Example: all active cards for a given cardholder:

GET /cards?cardholderId=10532&issuerCardStatus=1

GET /cards/transactions

ParameterValues
cardIdFilter to a single card
cardholderIdFilter to a single cardholder (across all their cards)
transIdLook up a specific transaction by its ID
transStatus1 Pending · 2 Cleared · 3 Completion · 4 Declined · 5 Error
transTypeFilter to a specific transaction type — see Statuses & Enums
orderBySort results by a given field
sortasc | desc
before / after / limit / offsetAs above

GET /cards/fees

ParameterValues
cardIdFilter to a single card
cardholderIdFilter to a single cardholder
feeIdLook up a specific fee by its ID
feeStatus1 Pending · 2 Cleared · 3 Completion · 4 Declined · 5 Error
feeTypeInteger 1 through 5
orderBySort results by a given field
sortasc | desc
before / after / limit / offsetAs above

Reconciling transactions and fees

GET /cards/transactions and GET /cards/fees return non-overlapping datasets. A single real-world event (e.g. a foreign-currency purchase) may produce both a transaction record and one or more associated fee records. To build a complete picture of activity on a card, query both endpoints for the same time range and cardId/cardholderId. See Reconcile Transactions & Fees and Transactions & Fees for the full model.

GET /wallets

Neither endpoint currently accepts pagination or filter parameters. GET /wallets returns all wallets in the Program, and GET /wallets/{walletId} returns a single wallet by ID.

Rate limits

📘

Specific rate limit thresholds are not surfaced via response headers. If you receive a 429 response, back off and retry. See Errors & Status Codes. If rate limits become relevant to your integration's throughput, raise a support ticket.

What's next