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.
Just-In-Time (JIT) Cards
A JIT card is a virtual card with no pre-loaded balance. Rather than funding the card before it can be used, Fyatu approves each authorization in real time against your program ledger. If the program has sufficient funds, the transaction is approved and the amount is settled from the ledger. If not, the transaction is declined. JIT is the default model for programs that want fully centralised control over spending — no money sits idle on individual cards, and you never need to pre-fund a card before issuing it.JIT must be enabled on the product, not on the card itself. Contact your account manager to set up a product with
hasJIT: true. Once the product is created, every card issued against it is automatically JIT-enabled.How JIT Works
Creating a JIT Card
JIT cards are issued the same way as regular cards — the only difference is thatamount is optional (you do not need to pre-load a balance):
issuanceData wrapper. features.hasJIT: true confirms the card is JIT-enabled:
The CVV is not included in the
POST /cards issuance response. Retrieve it at any time via GET /cards/{id}, which fetches live card details (CVV, balance, spending limits) directly from the card network.CARD_ISSUED Webhook
When a JIT card is issued your server receives aCARD_ISSUED webhook. The key signal is "isJitfEnabled": true:
"isJitfEnabled": true against this cardId so your system knows never to show a per-card balance UI — the cardholder’s spending ability is determined by the program ledger, not the card.
How Your Server Must Respond
When a JIT card is used, Fyatu calls your registered webhook endpoint with aCARD_AUTHORIZATION_VERIFY event and waits up to 2 seconds for your response. You decide whether to approve or decline — Fyatu forwards your decision directly to the card network.
Both type and reason are required in every response.
Approve
Decline
reason that best describes why you are declining:
| Code | When to use |
|---|---|
VELOCITY_EXCEED | Your program balance is insufficient |
AUTH_DECLINE | Generic authorization refused |
RESTRICTED | Card is frozen or suspended |
SUSPECT_FRAUD | Transaction flagged as fraud |
INVALID_MERCHANT | Merchant not permitted for this program |
TXN_NOT_PERMIT | This transaction type is not allowed |
BLK_MRCH | Merchant is on your blocked list |
CASH_REQ_EXCEED | Cash withdrawal limit exceeded |
DO_NOT_HONOUR | Generic — do not honour |
NO_CASH_SERVICE | Cash not available on this card |
SEC_ERROR | Security error |
CLOSED_PICK | Account closed |
FRAUDULENT_PICK | Card flagged for fraudulent activity |
NO_ACTION | No action taken |
CARD_AUTHORIZATION_VERIFY.
Authorization Webhook
Every authorization attempt — whether approved or declined — fires aCARD_AUTHORIZATION webhook to your endpoint:
decision | Meaning |
|---|---|
APPROVED | Program had sufficient balance — transaction is proceeding |
DECLINED | Program balance was insufficient, card was frozen, or card was terminated |
200 OK but cannot influence the decision. The approval or decline has already happened by the time the webhook fires.
For the full field reference see CARD_AUTHORIZATION.
Program Balance Management
Because JIT cards draw directly from the program ledger, keeping your program funded is critical:- Subscribe to the
ACCOUNT_LOW_BALANCEevent — fires when the program balance falls below your configured threshold - Top up the program balance via the CaaS Portal or programmatically via
POST /account/deposit - Monitor balance in real time via
GET /account/balance
JIT vs Pre-Funded Cards
| Pre-funded card | JIT card | |
|---|---|---|
| Balance location | On the card | On the program ledger |
| Fund before issue | Required | Not required |
| Fund before purchase | Required | Not required |
| Auth decision | Auto-approved by network | Fyatu checks ledger in real time |
| Best for | Per-employee budgets, one-time use | Corporate spend, dynamic allocation |
features.hasJIT | false | true |
isJitfEnabled in webhook | false | true |
Sandbox Testing
InSANDBOX mode, JIT authorizations always approve regardless of program balance. This lets you test the full card issuance and transaction flow without managing sandbox funds.
Switch to LIVE mode to exercise real-time balance checks.
Webhook Events Summary
| Event | When it fires |
|---|---|
CARD_ISSUED | JIT card created — isJitfEnabled: true |
CARD_AUTHORIZATION | Every authorization attempt (approved or declined) |
TRANSACTION_AUTHORIZED | Auth approved — funds reserved |
TRANSACTION_CLEARED | Transaction settled — funds permanently moved |
TRANSACTION_REVERSED | Auth reversed before clearing |
ACCOUNT_LOW_BALANCE | Program balance below threshold |

