> ## 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 Card Products

> List available card products — returns productId, brand, currency, fees, and availability flags. Use productId when creating a card. GET /cards/products.

## Overview

Retrieve the list of available card products. Each product defines the card brand, currency, fees, features, and availability. Use the `productId` when creating a card to specify which product to issue.

Products include availability flags (`canIssue`, `canFund`, `canUnload`) so you know exactly what operations are supported for each product. The `isDefault` flag indicates which product is used as the automatic fallback during [card replacement](/v3/api-reference/cards/replace) when the original card type is unavailable for issuance.

## Example Usage

<CodeGroup>
  ```php PHP theme={null}
  <?php
  $response = file_get_contents(
      'https://api.fyatu.com/api/v3/cards/products',
      false,
      stream_context_create([
          'http' => [
              'method' => 'GET',
              'header' => 'Authorization: Bearer ' . $accessToken
          ]
      ])
  );

  $result = json_decode($response, true);
  foreach ($result['data']['products'] as $product) {
      $status = $product['canIssue'] ? '✓' : '✗';
      echo "[{$status}] {$product['name']} ({$product['currency']}) - Fee: \${$product['issuanceFee']}";
      if ($product['isDefault']) echo ' [DEFAULT]';
      echo "\n";
  }
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.fyatu.com/api/v3/cards/products', {
    method: 'GET',
    headers: {
      'Authorization': `Bearer ${accessToken}`
    }
  });

  const result = await response.json();
  result.data.products.forEach(product => {
    const status = product.canIssue ? '✓' : '✗';
    const def = product.isDefault ? ' [DEFAULT]' : '';
    console.log(`[${status}] ${product.name} (${product.currency}) - Fee: $${product.issuanceFee}${def}`);
  });
  ```
</CodeGroup>

## Response Fields

| Field                 | Type    | Description                                                                   |
| --------------------- | ------- | ----------------------------------------------------------------------------- |
| `productId`           | string  | Product identifier to use in card creation                                    |
| `name`                | string  | Human-readable product name                                                   |
| `brand`               | string  | Card brand: `MASTERCARD` or `VISA`                                            |
| `currency`            | string  | Card currency: `USD` or `EUR`                                                 |
| `type`                | string  | Card type (e.g., `PREPAID`, `DEBIT`)                                          |
| `issuanceFee`         | number  | Fee charged when issuing this card (in USD)                                   |
| `minimumFunding`      | number  | Minimum initial funding amount (in product currency)                          |
| `spendingLimit`       | number  | Maximum spending limit for the card                                           |
| `spendingPeriod`      | string  | Time period for the spending limit: `DAILY`, `MONTHLY`, or `YEARLY`           |
| `features.applePay`   | boolean | Whether the card supports Apple Pay                                           |
| `features.googlePay`  | boolean | Whether the card supports Google Pay                                          |
| `features.3dSecure`   | boolean | Whether the card supports 3D Secure                                           |
| `features.reloadable` | boolean | Whether the card can be funded after creation                                 |
| `isTokenized`         | boolean | Whether the card supports digital wallet tokenization (Apple Pay, Google Pay) |
| `canIssue`            | boolean | Whether this product is currently available for new card issuance             |
| `canFund`             | boolean | Whether cards of this product can receive funding (loading money)             |
| `canUnload`           | boolean | Whether cards of this product support unloading (withdrawing money)           |
| `isDefault`           | boolean | Whether this is the default fallback product used during card replacement     |

## Example Response

```json theme={null}
{
  "success": true,
  "message": "Card products retrieved successfully",
  "data": {
    "products": [
      {
        "productId": "MCUSD1",
        "name": "Mastercard World USD",
        "brand": "MASTERCARD",
        "currency": "USD",
        "type": "PREPAID",
        "issuanceFee": 5.00,
        "minimumFunding": 5.00,
        "spendingLimit": 25000,
        "spendingPeriod": "DAILY",
        "features": {
          "applePay": false,
          "googlePay": false,
          "3dSecure": true,
          "reloadable": true
        },
        "isTokenized": false,
        "canIssue": true,
        "canFund": true,
        "canUnload": true,
        "isDefault": true
      }
    ]
  }
}
```

<Tip>
  Use the `productId` value from this response as the `productId` field when [creating a card](/v3/api-reference/cards/create). Only products with `canIssue: true` can be used for new card creation.
</Tip>

<Note>
  **Default Product & Card Replacement**: When a card is [replaced](/v3/api-reference/cards/replace), the system first checks if the original card's product type is still available for issuance (`canIssue: true`). If it is, the replacement card will be the same type. If not, the product marked as `isDefault: true` is used automatically as a fallback — no action is needed from your side.
</Note>

<Note>
  **EUR Products**: For EUR-denominated cards, the `amount` you provide in the create card request is in EUR. Your business wallet (which is USD-denominated) will be debited the equivalent amount in USD based on the current exchange rate, plus the issuance fee.
</Note>


## OpenAPI

````yaml v3/openapi.json GET /cards/products
openapi: 3.1.0
info:
  title: FYATU API v3
  description: >-
    FYATU API v3 with JWT authentication for Collections, Payouts, and Card
    Issuing.
  version: 3.0.0
  contact:
    name: FYATU Support
    url: https://fyatu.com
    email: support@fyatu.com
servers:
  - url: https://api.fyatu.com/api/v3
    description: Production
security: []
tags:
  - name: Authentication
    description: JWT token management endpoints
  - name: Account
    description: Business account, wallet, and address management
  - name: Collections
    description: Accept payments from customers via checkout sessions
  - name: Refunds
    description: Issue refunds for completed collections
  - name: Payouts
    description: Send money to Fyatu account holders
  - name: Cardholders
    description: Cardholder management for card issuing programs
  - name: Cards
    description: Issue, fund, freeze, and manage virtual cards
  - name: Webhooks
    description: Webhook configuration and management
paths:
  /cards/products:
    get:
      tags:
        - Cards
      summary: List Card Products
      description: >-
        Retrieve the list of available card products that can be issued. Each
        product defines the card brand, currency, fees, and features. Use the
        `productId` when creating a card to specify which product to issue.
      operationId: listCardProducts
      responses:
        '200':
          description: Card products retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  status:
                    type: integer
                    example: 200
                  message:
                    type: string
                    example: Card products retrieved successfully
                  data:
                    type: object
                    properties:
                      products:
                        type: array
                        items:
                          type: object
                          properties:
                            productId:
                              type: string
                              description: Product identifier to use in card creation
                              example: MCUSD1
                            name:
                              type: string
                              description: Human-readable product name
                              example: Mastercard World USD
                            brand:
                              type: string
                              enum:
                                - MASTERCARD
                                - VISA
                              description: Card brand
                              example: MASTERCARD
                            currency:
                              type: string
                              enum:
                                - USD
                                - EUR
                              description: Card currency
                              example: USD
                            type:
                              type: string
                              description: Card type
                              example: PREPAID
                            issuanceFee:
                              type: number
                              description: Fee charged when issuing this card (in USD)
                              example: 5
                            minimumFunding:
                              type: number
                              description: >-
                                Minimum initial funding amount (in product
                                currency)
                              example: 5
                            spendingLimit:
                              type: number
                              description: Maximum spending limit for the card
                              example: 25000
                            spendingPeriod:
                              type: string
                              enum:
                                - DAILY
                                - MONTHLY
                                - YEARLY
                              description: Time period for the spending limit
                              example: DAILY
                            features:
                              type: object
                              properties:
                                applePay:
                                  type: boolean
                                  description: Whether the card supports Apple Pay
                                  example: false
                                googlePay:
                                  type: boolean
                                  description: Whether the card supports Google Pay
                                  example: false
                                3dSecure:
                                  type: boolean
                                  description: Whether the card supports 3D Secure
                                  example: true
                                reloadable:
                                  type: boolean
                                  description: >-
                                    Whether the card can be funded after
                                    creation
                                  example: true
                            isTokenized:
                              type: boolean
                              description: >-
                                Whether the card supports digital wallet
                                tokenization (Apple Pay, Google Pay)
                              example: false
                            canIssue:
                              type: boolean
                              description: >-
                                Whether this product is currently available for
                                new card issuance
                              example: true
                            canFund:
                              type: boolean
                              description: >-
                                Whether cards of this product can receive
                                funding (loading money)
                              example: true
                            canUnload:
                              type: boolean
                              description: >-
                                Whether cards of this product support unloading
                                (withdrawing money)
                              example: true
                            isDefault:
                              type: boolean
                              description: >-
                                Whether this is the default fallback product
                                used during card replacement when the original
                                type is unavailable
                              example: false
                  meta:
                    $ref: '#/components/schemas/Meta'
              example:
                success: true
                status: 200
                message: Card products retrieved successfully
                data:
                  products:
                    - productId: MCUSD1
                      name: Mastercard World USD
                      brand: MASTERCARD
                      currency: USD
                      type: PREPAID
                      issuanceFee: 5
                      minimumFunding: 5
                      spendingLimit: 25000
                      spendingPeriod: DAILY
                      features:
                        applePay: false
                        googlePay: false
                        3dSecure: true
                        reloadable: true
                      isTokenized: false
                      canIssue: true
                      canFund: true
                      canUnload: true
                      isDefault: true
                meta:
                  requestId: req_a1b2c3d4e5f6
                  timestamp: '2026-02-25T10:00:00+00:00'
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
        - BearerAuth: []
components:
  schemas:
    Meta:
      type: object
      properties:
        requestId:
          type: string
          description: Unique request ID for tracking
          example: req_abc123def456
        timestamp:
          type: string
          format: date-time
          description: ISO 8601 timestamp of the response
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        status:
          type: integer
          example: 401
        message:
          type: string
          example: Invalid credentials
        error:
          $ref: '#/components/schemas/Error'
        meta:
          $ref: '#/components/schemas/Meta'
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code for programmatic handling
          example: AUTH_INVALID_CREDENTIALS
        details:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          description: Validation error details (for VALIDATION_ERROR)
    ValidationError:
      type: object
      properties:
        field:
          type: string
          description: Field that failed validation
          example: appId
        message:
          type: string
          description: Validation error message
          example: AppId is required
  responses:
    Unauthorized:
      description: Authentication required or token invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            status: 401
            message: Unable to identify business
            error:
              code: AUTH_TOKEN_INVALID
            meta:
              requestId: req_abc123
              timestamp: '2026-01-05T10:30:00+00:00'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT access token obtained from /auth/token

````