Skip to main content

Cards Overview

FYATU’s Card Issuing API enables you to issue branded payment cards to your verified cardholders. Cards can be used for online payments, subscriptions, in-store purchases, and ATM withdrawals (physical cards).

Card Concept

A card represents a set of identifiers used for purchases: the PAN (16-digit “long number”), expiry date, CVV (3-digit verification code), and for physical cards, cryptographic data stored on the chip. When a card is deactivated (lost, expired, or terminated) and a replacement is issued, it creates a completely new card with a new ID, different CVV, and potentially different expiry date. Over time, multiple cards may accumulate under a cardholder account, some of which are no longer active. Cards are bound to a monthly (rolling 30-day) spending limit, typically 5,000or5,000 or 10,000.

Card Types

Virtual Cards

Digital cards for online transactions. Issued instantly and active by default.
FeatureDescription
IssuanceInstant
Initial StatusActive (ready to use)
Use CasesOnline shopping, subscriptions, digital services
Card NetworksMastercard, Visa (coming soon)
Can be tokenizedYes

Physical Cards (Coming Soon)

Plastic or metal cards shipped to the cardholder’s address. Physical cards are inactive by default and require activation.
FeaturePlasticMetal
MaterialPVC plasticStainless steel
Delivery7-14 business days7-14 business days
Initial StatusInactive (requires activation)
Use CasesIn-store, ATM, onlinePremium experience
ContactlessYesYes
Can be tokenizedYesYes

Digital Cards / Tokenized (Coming Soon)

Cards provisioned directly to Apple Pay, Google Pay, and Samsung Pay. Digital cards are created from an existing active virtual or physical card and are active by default.
FeatureDescription
RequirementsExisting active virtual or physical card
IssuanceInstant (push to wallet)
Initial StatusActive
Has visible card numberNo (tokenized)
Can be suspendedNo

Crypto Cards (Coming Soon)

Cards funded directly from cryptocurrency balances with automatic conversion.

Card Lifecycle

Card Statuses

StatusDescriptionCan TransactCan FundCan Unfreeze
INACTIVECard issued but not yet activated. Applies to physical cards only.NoNoN/A
ACTIVECard is currently usable for all transactions.YesYesN/A
FROZENTemporarily frozen by cardholder or business. Transactions rejected but card can be unfrozen.NoYesYes
SUSPENDEDSuspended by system due to fraud detection, compliance issues, or excessive declined transactions.NoYes*Contact support
TERMINATEDPermanently closed. Covers: Cancelled, Lost, Stolen, Expired, or Deleted cards. Cannot be reactivated.NoNoNo
SUSPENDED vs FROZEN: A FROZEN card is temporarily disabled by the cardholder/business and can be unfrozen via API. A SUSPENDED card is disabled by the system (fraud, compliance, or 15+ insufficient funds declines) and requires support intervention or funding (for decline suspensions) to resolve.

Status Transitions

User ActionPrevious StatusNew Status
Create physical cardINACTIVE
Create virtual cardACTIVE
Create digital (tokenized) cardACTIVE
Activate with codeINACTIVEACTIVE
FreezeACTIVEFROZEN
UnfreezeFROZENACTIVE
System detects fraudACTIVE/FROZENSUSPENDED
15 insufficient funds declinesACTIVESUSPENDED
Fund card (resets decline count)SUSPENDED (decline)ACTIVE
Support resolves issueSUSPENDEDACTIVE
Revoke / DeleteACTIVE/FROZEN/SUSPENDEDTERMINATED
Report lostACTIVE/FROZENTERMINATED
Report stolenACTIVE/FROZENTERMINATED
Card expiresAny non-terminatedTERMINATED

Decline Count & Auto-Suspension

Cards track the number of declined transactions due to insufficient funds:
  • Decline limit: 15 consecutive insufficient funds declines
  • Auto-suspension: Card is automatically suspended after reaching the limit
  • Reset: Funding the card resets the decline count and reactivates the card (if not at limit)
  • Prevention: Monitor declineCount in card details to warn users before suspension

Fee Structure

Fees are configured per business and can be customized. Use the Get Pricing endpoint to retrieve your current fee structure.

Fee Types

Fee CodeDescriptionTypeWhen Applied
CARD_ISSUANCE_FEECard creation feeFixedWhen card is issued
CARD_FUNDING_FEEFee for loading fundsPercentageWhen funding card
CARD_UNLOADING_FEEFee for withdrawing fundsPercentageWhen unloading card
CARD_MONTHLY_FEEMonthly maintenanceFixedMonthly
CARD_REPLACEMENT_FEEReplacement card feeFixedWhen replacing card
CARD_PLASTIC_FEEPhysical plastic cardFixedFor physical cards
CARD_METAL_FEEPhysical metal cardFixedFor metal cards
DECLINE_FEEDeclined transaction feeFixedPer declined transaction
Verified businesses (KYB approved) may receive reduced fees. Use the Get Pricing endpoint to retrieve your current rates.

Holding Balance

When creating a card, a holding balance is reserved for future monthly fees:
Spending LimitHolding Balance
$5,000/month$1.00
$10,000/month$3.00

Spending Limits

Available Limits

LimitMonthly CapBest For
$5,000Standard usageMost use cases
$10,000High-volume usersPower users, businesses

Limit Behavior

  • Limits reset on the 1st of each month
  • Declined transactions when limit is reached
  • Limits apply to purchase transactions only (not funding/unloading)

Integration Flow

Creating a Card

Business KYB Required: Your business must have completed KYB verification (with a primary director and ID document) before creating cards. Individual cardholder KYC is not required for card creation - the business owner’s verified identity is used for card provisioning.

Example Request

const response = await fetch('https://api.fyatu.com/api/v3/cards', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    cardholderId: 'ch_xyz789ghi012',
    amount: 100.00,
    name: 'JOHN DOE',        // Optional, defaults to cardholder name
    spendingLimit: 5000      // Optional, default 5000
  })
});

Card Operations

Funding

Add funds to a card from your business wallet:
POST /cards/{cardId}/fund
{ "amount": 50.00 }
  • Funding fee is calculated as a percentage with a minimum
  • Full amount is added to card balance
  • Fee is deducted from business wallet separately

Unloading

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

Freeze / Unfreeze

Temporarily disable a card:
POST /cards/{cardId}/freeze    // Disable transactions
POST /cards/{cardId}/unfreeze  // Re-enable transactions
  • Frozen cards cannot make purchases
  • Balance is preserved while frozen
  • Can still fund/unload while frozen

Terminate

Permanently close a card:
DELETE /cards/{cardId}
{
  "reason": "Customer requested closure",  // Optional, defaults to "Terminated by the user"
  "reference": "REF123456"                  // Optional, defaults to cardId
}
Balance Refund: When a card is terminated, any remaining balance on the card is automatically refunded to your business wallet. For example, if the card has $25.00 remaining, that amount is credited back to your wallet balance.
  • No termination fee - balance is refunded in full
  • Card cannot be reactivated
  • Cardholder can still have other active cards
  • Provide a custom reason for record-keeping (visible in webhooks and logs)

Terminate Response

{
  "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"
  }
}

Transactions

Transaction Types

TypeDescription
debitPurchase or payment (money out)
creditRefund or cashback (money in)
fundingCard funding operation
unloadCard unloading operation

Transaction Statuses

StatusDescription
PENDINGAuthorization hold
COMPLETEDSuccessfully settled
DECLINEDTransaction rejected
REVERSEDRefunded or reversed

Retrieving Transactions

GET /cards/{cardId}/transactions?page=1

Webhooks

Card Events

EventTrigger
card.createdNew card issued
card.activatedPhysical card activated with code
card.fundedFunds added to card
card.unloadedFunds withdrawn from card
card.frozenCard frozen by owner
card.unfrozenCard unfrozen by owner
card.suspendedCard suspended by system (fraud, compliance, decline limit)
card.reactivatedSuspended card reactivated (after funding or support resolution)
card.terminatedCard permanently closed (cancelled, lost, stolen, expired)

Transaction Events

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

Webhook Payload Examples

card.funded

{
  "event": "card.funded",
  "data": {
    "cardId": "CRD17368945521234",
    "cardholderId": "ch_xyz789ghi012",
    "amount": 50.00,
    "fee": 0,
    "currency": "USD",
    "reference": "FND17368945527890",
    "status": "SUCCESS"
  },
  "timestamp": "2026-01-15T10:30:00+00:00"
}

card.terminated

{
  "event": "card.terminated",
  "data": {
    "cardId": "CRD678E4F2A1B3C9",
    "cardholderId": "ch_xyz789ghi012",
    "refundedBalance": 25.00,
    "reference": "REF123456",
    "reason": "Customer requested closure",
    "status": "TERMINATED"
  },
  "timestamp": "2026-01-15T10:30:00+00:00"
}

Best Practices

Security

  • Never log or store full card numbers
  • Use masked numbers in UI displays
  • Implement proper access controls
  • Audit all card data access
  • Monitor transaction patterns
  • Implement velocity checks
  • Enable freeze functionality for users
  • Set appropriate spending limits

Operational

  1. Balance Monitoring: Keep sufficient wallet balance for card operations
  2. Webhook Integration: Handle all card events for real-time updates
  3. Error Handling: Implement retry logic for transient failures
  4. Limit Management: Start with lower limits, increase based on usage

Error Handling

Error CodeCauseResolution
INSUFFICIENT_BALANCEWallet balance too lowTop up business wallet
INSUFFICIENT_CARD_BALANCECard balance too lowFund the card
CARD_NOT_ACTIVECard is frozen/suspended/terminatedCheck status, unfreeze if frozen, or use different card
CARD_INACTIVEPhysical card not yet activatedActivate the card with activation code
CARD_SUSPENDEDCard suspended by systemFund the card (if decline-suspended) or contact support
CARD_TERMINATEDCard permanently closedIssue a new card
CARDHOLDER_INACTIVECardholder not activeActivate cardholder first
BUSINESS_KYB_REQUIREDBusiness verification incompleteComplete KYB verification before creating cards
ALREADY_FROZENCard already frozenNo action needed
ALREADY_ACTIVECard already activeNo action needed
ALREADY_TERMINATEDCard already terminatedNo action needed
DECLINE_LIMIT_REACHED15 insufficient funds declinesFund the card to reset and reactivate

Integration Checklist


API Reference

Card Management

Card Operations