> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fyatu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Program Products

> List the card products available within a card program. GET /programs/{programId}/products. Requires programs:read scope.

## 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`:

```json theme={null}
{
  "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.

<Info>
  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.
</Info>

## Error Codes

| Code                 | Description                                      |
| -------------------- | ------------------------------------------------ |
| `RESOURCE_NOT_FOUND` | Program not found or belongs to another business |
