Overview
Returns all card products defined within a card program. A Card Product encapsulates all settings for cards of a specific type — brand, currency, spending limits, 3DS, tokenization, and JIT controls.
Use this endpoint to discover available productId values for use with POST /cards.
Path Parameters
| Parameter | Type | Description |
|---|
programId | string | The card program ID |
Response Fields
| Field | Type | Description |
|---|
productId | string | Unique product identifier — use this when creating cards |
name | string | Product name (e.g., “Visa USD Standard”) |
scheme | string | Card network: VISA or MASTERCARD |
currency | string | Card currency: USD or EUR |
type | string | Card type: VIRTUAL |
transactionLimit | number | Maximum single transaction amount |
dailyLimit | number | Daily spending limit |
monthlyLimit | number | Monthly spending limit |
is3DSEnabled | boolean | Whether 3D Secure is enabled |
isTokenizationEnabled | boolean | Whether Apple Pay / Google Pay tokenization is enabled |
isJITEnabled | boolean | Whether Just-In-Time funding is enabled |
status | string | ACTIVE or INACTIVE |
cardCount | integer | Number of active cards issued under this product |
Using Product IDs for Card Issuance
Once you have the productId, pass it directly to POST /cards:
{
"cardholderId": "CH-ABC123",
"nameOnCard": "JOHN SMITH",
"amount": 100.00,
"productId": "PRDX1Y2Z3A4B5C"
}
The API resolves all card settings (scheme, currency, limits, 3DS) from the product automatically.
Product Limits
Each program supports a maximum of 5 card products. Products with active cards issued cannot be deleted — this protects card data integrity.
Feature flags (is3DSEnabled, isTokenizationEnabled, isJITEnabled) become immutable once any cards have been issued under a product. These settings are baked into the card at the provider level.
Error Codes
| Code | Description |
|---|
RESOURCE_NOT_FOUND | Program not found or belongs to another business |