Skip to main content

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.

Programs & Products

How It Fits Together

Business
├── Programs  (contractual envelope — one per agreement with FYATU)
│   └── Products  (card templates — up to 5 per program)
│       └── Cards  (inherit all settings from the product)

├── Cardholders  (business-level — not linked to any program)
└── Transactions  (business-level — spans all programs)
Cardholders and Transactions are owned by the Business, not by a specific Program. A single cardholder can hold cards under different programs simultaneously. When a program is paused or closed, the cardholder is unaffected — they can receive cards from another program if one is available.

Programs

A program is the contractual and regulatory container negotiated between your business and FYATU. It establishes the card network (Visa or Mastercard), the base currency, the program ledger, and the top-level compliance rules. Programs are created and configured exclusively by the FYATU team. You read and monitor them via the API.

Program Statuses

StatusDescription
ACTIVEFully operational — products can issue cards
PAUSEDTemporarily suspended — new cards blocked, existing cards unaffected
CLOSEDPermanently closed — no new operations permitted

The Program Ledger

Every program holds a pre-funded balance — the program ledger — that backs all card funding operations.
You top up the ledger via the portal


        Program ledger

    ┌─────────┴──────────┐
    │                    │
POST /cards/{id}/fund   POST /cards/{id}/unload
POST /cards/{id}/terminate (refund)
    │                    │
    ▼                    ▼
  Card balance     Card balance
Every POST /cards/{id}/fund debits the program ledger and credits the card. Unloading or terminating a card returns balance to the ledger. No money leaves FYATU via the API — withdrawals go through the portal. Low balance alert: when the ledger drops below lowBalanceThreshold, a PROGRAM_BALANCE_LOW webhook fires. Subscribe to it to automate top-up alerts.
If the program ledger reaches zero, POST /cards/{id}/fund will fail with INSUFFICIENT_PROGRAM_BALANCE. Cards already funded continue to work — spending draws from the card’s own balance.

Products

A product is a card template defined within a program. It encodes everything that is fixed at card issuance: the card scheme, currency, spending limits, 3DS, and tokenization settings. When you issue a card, you specify a productId — all card settings are inherited from the product automatically.
Program: Visa USD Agreement
└── Products:
    ├── "Visa USD Standard"   — $5,000 limit, 3DS on, tokenization off
    ├── "Visa USD Premium"    — $20,000 limit, 3DS on, tokenization on (Apple/Google Pay)
    └── "Visa USD Restricted" — $500 limit, no 3DS, JIT funding enabled
A program can have up to 5 products. Products are created in the CaaS portal by the FYATU team.

Product Fields

FieldDescription
productIdUnique product identifier — pass this to POST /cards
nameProduct name (e.g. “Visa USD Standard”)
schemeVISA or MASTERCARD
currencyISO 4217 currency for cards under this product
typeCard form factor: VIRTUAL
transactionLimitMaximum single transaction amount
dailyLimitDaily spending cap
monthlyLimitMonthly spending cap
is3DSEnabledWhether 3D Secure is enabled for cards under this product
isTokenizationEnabledApple Pay / Google Pay support
isJITEnabledJust-In-Time funding mode
statusACTIVE or INACTIVE

Discovering Available Products

Before issuing cards, list the products available in a program:
curl https://api.fyatu.com/api/v3.20/programs/prg_01HXYZ.../products \
  -H "Authorization: Bearer $FYATU_API_KEY"
Then use the productId when creating cards:
POST /cards
{
  "cardholderId": "chl_01HXYZ1234ABCDEF5678",
  "productId":    "prd_01HXYZABC123"
}

Feature Flag Immutability

Once any cards have been issued under a product, the feature flags (is3DSEnabled, isTokenizationEnabled, isJITEnabled) become immutable. These settings are baked into the card at the provider level and cannot be changed retroactively. To change feature flags, create a new product and issue future cards against it.

Amount Representation

All monetary amounts in the CaaS API are returned as both a raw integer (cents) and a display string (displayValue):
"spendingLimitPerCard": {
  "cents":        500000,
  "displayValue": "5000.00"
}
Use cents for arithmetic and comparisons. Use displayValue for display only. Fund and unload operations accept a float dollar amount in the request body (e.g. 50.00 for fifty dollars).

Endpoints

Programs and Products are read-only from the API. Configuration changes (limits, feature flags, new products) are made in the CaaS portal by the FYATU team.