Skip to main content
WEBHOOK
CARD_TERMINATION_REFUND_POST
{
  "event":       "CARD_TERMINATION_REFUND_POST",
  "eventId":     "evt_01HXY7890XYZABCDE",
  "businessId":  "BUS1A2B3C4D5E6F",
  "environment": "LIVE",
  "timestamp":   "2026-07-08T14:30:00Z",
  "data": {
    "cardId":       "crd_01HXYZ5555ABCDEF1111",
    "cardholderId": "chd_01HXYZ1111ABCDEF0000",
    "amount":       4.25,
    "currency":     "USD",
    "reference":    "a1b2c3d4e5f6a7b8c9d0e1f2",
    "timestamp":    "2026-07-08T14:30:00Z"
  }
}
{}
Fires when money lands on an already-terminated card and is returned to your program balance. This happens for:
  • a later reconciliation/discrepancy refund from the provider, or
  • a merchant refund that posts to a card after it was terminated.
Unlike CARD_TERMINATION_REFUND, this event can fire multiple times for the same card — once per incoming refund. Each delivery carries a distinct reference (the provider transaction id) and is credited exactly once.

Event Type

CARD_TERMINATION_REFUND_POST

Payload

{
  "event":       "CARD_TERMINATION_REFUND_POST",
  "eventId":     "evt_01HXY7890XYZABCDE",
  "businessId":  "BUS1A2B3C4D5E6F",
  "environment": "LIVE",
  "timestamp":   "2026-07-08T14:30:00Z",
  "data": {
    "cardId":       "crd_01HXYZ5555ABCDEF1111",
    "cardholderId": "chd_01HXYZ1111ABCDEF0000",
    "amount":       4.25,
    "currency":     "USD",
    "reference":    "a1b2c3d4e5f6a7b8c9d0e1f2",
    "timestamp":    "2026-07-08T14:30:00Z"
  }
}

Payload Fields

FieldTypeDescription
cardIdstringThe terminated card the refund posted to
cardholderIdstringThe cardholder the card belonged to
amountnumberRefunded amount, credited to your program balance
currencystringISO-4217 currency of the refund
referencestringProvider transaction id — unique per refund; use it as your idempotency key
timestampstringISO 8601 time the refund was processed

Common Use Cases

  • Capture merchant refunds that arrive after a card is terminated
  • Reconcile discrepancy refunds against your program ledger
Always deduplicate on reference. Because this event can fire several times for one card, per-card deduplication would incorrectly drop legitimate later refunds.
{
  "event":       "CARD_TERMINATION_REFUND_POST",
  "eventId":     "evt_01HXY7890XYZABCDE",
  "businessId":  "BUS1A2B3C4D5E6F",
  "environment": "LIVE",
  "timestamp":   "2026-07-08T14:30:00Z",
  "data": {
    "cardId":       "crd_01HXYZ5555ABCDEF1111",
    "cardholderId": "chd_01HXYZ1111ABCDEF0000",
    "amount":       4.25,
    "currency":     "USD",
    "reference":    "a1b2c3d4e5f6a7b8c9d0e1f2",
    "timestamp":    "2026-07-08T14:30:00Z"
  }
}
{}

Authorizations

Authorization
string
header
required

API key from the FYATU CaaS portal. Pass as Authorization: Bearer <key>.

Body

application/json
event
string
Example:

"CARD_TERMINATION_REFUND_POST"

eventId
string
businessId
string
environment
enum<string>
Available options:
LIVE,
SANDBOX
timestamp
string<date-time>
data
object

Response

200

Acknowledge the event.