Skip to main content
This event is no longer dispatched. It has been superseded by TRANSACTION_AUTHORIZED and TRANSACTION_DECLINED, which provide the same information with richer transaction detail. Update your integration to subscribe to those events instead.
For the synchronous authorization decision (approve or decline a JIT charge or tokenization request), see CARD_AUTHORIZATION_VERIFY.

Event Type

CARD_AUTHORIZATION

Payload

{
  "event":      "CARD_AUTHORIZATION",
  "eventId":    "evt_01HXY123456ABCDEF",
  "businessId": "BUS1A2B3C4D5E6F",
  "timestamp":  "2026-05-27T14:32:00Z",
  "data": {
    "cardId":          "crd_01HXYZ5555ABCDEF1111",
    "cardholderId":    "chl_01HXYZ1234ABCDEF5678",
    "amount":          42.50,
    "feeAmount":       1.25,
    "currency":        "USD",
    "merchantName":    "Amazon",
    "merchantMcc":     "5999",
    "merchantCountry": "US",
    "decision":        "APPROVED",
    "timestamp":       "2026-05-27T14:32:00Z"
  }
}

Payload Fields

FieldTypeDescription
cardIdstringThe card that was authorized
cardholderIdstringThe cardholder who holds the card
amountnumberAuthorization amount in dollars
feeAmountnumberNetwork or cross-border fee in dollars (may be 0.00)
currencystringAuthorization currency (ISO 4217)
merchantNamestringMerchant name from the authorization request
merchantMccstringMerchant Category Code (ISO 18245). Empty string if not provided by the network
merchantCountrystringTwo-letter country code where the merchant is located. Empty string if not provided
decisionstringAPPROVED or DECLINED
timestampstringISO 8601 timestamp of the authorization

JIT Cards

For JIT-enabled cards (isJitfEnabled: true), this webhook fires after the full authorization flow completes:
decisionWhat happened
APPROVEDYour server approved (or no CARD_AUTHORIZATION_VERIFY webhook is registered and the program balance was sufficient)
DECLINEDYour server declined, the program balance was insufficient, or the card was frozen/terminated
On APPROVED, Fyatu has already reserved the funds from the program ledger. You will later receive TRANSACTION_CLEARED when the transaction settles, or TRANSACTION_REVERSED if the merchant cancels. For pre-funded cards (isJitfEnabled: false), APPROVED means Fyatu has settled the authorization against the card’s own balance — no program ledger movement occurs.

How the JIT Authorization Flow Works

When a cardholder with a JIT card makes a purchase:
Card network → Fyatu (AUTHORIZATION_VERIFY)

           Fyatu checks program balance

         ┌──────────┴──────────┐
   sufficient               insufficient
         │                       │
         ▼                  DECLINE → card network
Fyatu → your server
(CARD_AUTHORIZATION_VERIFY)

┌────────┴────────┐
APPROVE        DECLINE (or timeout)
   │                │
Fyatu →         Fyatu →
card network:   card network:
proceed         block transaction
   │                │
CARD_AUTHORIZATION  CARD_AUTHORIZATION
(decision: APPROVED)(decision: DECLINED)

TRANSACTION_AUTHORIZED

... later ...

TRANSACTION_CLEARED
Fyatu responds to the card network within milliseconds. The cardholder experiences no perceptible delay.

Common Use Cases

  • Display real-time spending activity in your cardholder dashboard
  • Trigger in-app notifications (“Your card was charged $42.50 at Amazon”)
  • Reconcile authorizations against your internal records before clearing
  • Detect unexpected outcomes from your authorization handler

Declined Authorizations

When decision is DECLINED, no funds move. Common scenarios:
ScenarioAction
Your CARD_AUTHORIZATION_VERIFY handler declinedCheck your handler logic or cardholder limits
JIT card, program balance insufficientTop up via Portal or POST /account/deposit
Card frozenUnfreeze via POST /cards/{id}/unfreeze
Card terminatedIssue a replacement card
Subscribe to ACCOUNT_LOW_BALANCE to top up your program before declines start happening.
{
  "event":      "CARD_AUTHORIZATION",
  "eventId":    "evt_01HXYZ987654FEDCBA",
  "businessId": "BUS1A2B3C4D5E6F",
  "timestamp":  "2026-05-27T14:32:00Z",
  "data": {
    "cardId":          "crd_01HXYZ5555ABCDEF1111",
    "cardholderId":    "chl_01HXYZ1234ABCDEF5678",
    "amount":          42.50,
    "feeAmount":       1.25,
    "currency":        "USD",
    "merchantName":    "Amazon",
    "merchantMcc":     "5999",
    "merchantCountry": "US",
    "decision":        "APPROVED",
    "timestamp":       "2026-05-27T14:32:00Z"
  }
}
{
  "event":      "CARD_AUTHORIZATION",
  "eventId":    "evt_01HXYZ987654FEDCBB",
  "businessId": "BUS1A2B3C4D5E6F",
  "timestamp":  "2026-05-27T14:33:00Z",
  "data": {
    "cardId":          "crd_01HXYZ5555ABCDEF1111",
    "cardholderId":    "chl_01HXYZ1234ABCDEF5678",
    "amount":          250.00,
    "feeAmount":       0.00,
    "currency":        "USD",
    "merchantName":    "Best Buy",
    "merchantMcc":     "5731",
    "merchantCountry": "US",
    "decision":        "DECLINED",
    "timestamp":       "2026-05-27T14:33:00Z"
  }
}
{}