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.

Card Operations

Creating a Card

Two prerequisites: your business must have completed KYB verification, and the target cardholder must have kycStatus: ACCEPTED before a card can be issued to them.
POST /cards
{
  "cardholderId": "CH1a2b3c4d5e6f",
  "amount": 100.00,
  "name": "JOHN DOE",        // optional, defaults to cardholder name
  "productId": "MCUSD1"  // optional, defaults to default product
}

Fund

Add money to a card from your business wallet:
POST /cards/{cardId}/fund
{ "amount": 50.00 }
  • A funding fee (percentage-based) may apply — see Card Fees
  • Full amount is added to the card balance; fee is debited from your wallet separately
  • Can fund a frozen card

Unload

Withdraw balance from a card back to your wallet:
POST /cards/{cardId}/unload
{ "amount": 25.00 }
  • Cannot unload more than the available card balance
  • An unloading fee may apply based on your pricing

Freeze / Unfreeze

Temporarily disable a card without losing its balance:
POST /cards/{cardId}/freeze    // disable transactions
POST /cards/{cardId}/unfreeze  // re-enable transactions
  • Frozen cards cannot make purchases but retain their balance
  • You can still fund or unload a frozen card

Terminate

Permanently close a card:
DELETE /cards/{cardId}
{
  "reason": "Customer requested closure",  // optional
  "reference": "REF123456"                  // optional
}
Balance refund: any remaining card balance is automatically returned to your business wallet on termination — no fee is charged.
{
  "status": true,
  "message": "Card terminated successfully",
  "data": {
    "id": "CRD678E4F2A1B3C9",
    "status": "TERMINATED",
    "reason": "Customer requested closure",
    "refundedBalance": 25.00,
    "terminatedAt": "2026-01-15T10:30:00+00:00",
    "reference": "REF123456"
  }
}
  • Card cannot be reactivated after termination
  • Cardholder can still have other active cards
  • Provide a reason for record-keeping (visible in webhooks and logs)

Replace

Issue a replacement card for a terminated card. The balance is transferred automatically:
POST /cards/{cardId}/replace
If the original product has canIssue: false, the default product is used as a fallback.

Transactions

Transaction Types

TypeDescription
debitPurchase or payment (money leaves card)
creditRefund or cashback (money added to card)
fundingCard funding operation
unloadCard unloading operation

Transaction Statuses

StatusDescription
PENDINGAuthorization hold
COMPLETEDSuccessfully settled
DECLINEDTransaction rejected
REVERSEDRefunded or reversed
GET /cards/{cardId}/transactions?page=1

Webhook Events

Card Lifecycle

EventTrigger
card.createdNew card issued
card.fundedFunds added
card.unloadedFunds withdrawn
card.frozenCard frozen
card.unfrozenCard unfrozen
card.suspendedSystem suspension (fraud, compliance, or 15 declines)
card.reactivatedSuspension resolved
card.terminatedCard permanently closed

Transaction Events

EventTrigger
card.transaction.authorizedTransaction approved
card.transaction.declinedTransaction declined
card.transaction.settledTransaction settled
card.transaction.reversedTransaction reversed

Error Codes

CodeCauseResolution
INSUFFICIENT_BALANCEWallet balance too lowTop up business wallet
INSUFFICIENT_CARD_BALANCECard balance too lowFund the card
CARD_NOT_ACTIVECard is frozen, suspended, or terminatedCheck status; unfreeze if frozen
CARD_INACTIVEPhysical card not yet activatedActivate with activation code
CARD_SUSPENDEDSystem suspensionFund the card (decline suspension) or contact support
CARD_TERMINATEDCard permanently closedIssue a new card
CARDHOLDER_INACTIVECardholder not activeActivate the cardholder first
BUSINESS_KYB_REQUIREDBusiness verification incompleteComplete KYB verification
ALREADY_FROZENCard already frozenNo action needed
ALREADY_ACTIVECard already activeNo action needed
DECLINE_LIMIT_REACHED15 insufficient funds declinesFund the card to reset and reactivate

Endpoints