{
"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"
}
}Card Events
CARD_POST_REFUND_CHARGE
Fired when a termination refund is corrected and the amount is charged back to your program.
WEBHOOK
CARD_POST_REFUND_CHARGE
{
"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 an amount previously refunded to your program on card termination is charged back, because what the issuer actually returned did not stand behind what was credited.
This is the charge side of
CARD_TERMINATION_REFUND. A termination refund returns what a card held at the moment it closed; where that figure later proves not to have been backed by returned float, the difference is corrected with this event rather than left in your balance.
Reasons you may receive it:
- a settlement landed against the card after its balance had already been refunded,
- the issuer reconciled the closed card and returned less than was credited, or
- the card was never terminated at the issuer, so no funds were ever returned for it.
Your program balance decreases when this event fires. The
amount is always positive — the event name carries the direction, exactly as it does for the refund it corrects.Event Type
CARD_POST_REFUND_CHARGE
Payload
{
"event": "CARD_POST_REFUND_CHARGE",
"eventId": "evt_01HXY7890XYZABCDE",
"businessId": "BUS1A2B3C4D5E6F",
"environment": "LIVE",
"timestamp": "2026-07-08T14:30:00Z",
"data": {
"cardId": "crd_01HXYZ5555ABCDEF1111",
"cardholderId": "chd_01HXYZ1111ABCDEF0000",
"amount": 12.50,
"currency": "USD",
"reference": "a1b2c3d4e5f6a7b8c9d0e1f2",
"reason": "REFUND_NOT_BACKED_BY_RETURNED_FLOAT",
"timestamp": "2026-07-08T14:30:00Z"
}
}
Payload Fields
| Field | Type | Description |
|---|---|---|
cardId | string | The card whose termination refund is being corrected |
cardholderId | string | The cardholder the card belonged to |
amount | number | Amount charged back, debited from your program balance. Always positive |
currency | string | ISO-4217 currency of the charge |
reference | string | Unique per charge — use it as your idempotency key |
reason | string | Why the correction was raised. See below |
timestamp | string | ISO 8601 time the charge was applied |
Reasons
| Value | Meaning |
|---|---|
REFUND_NOT_BACKED_BY_RETURNED_FLOAT | The refund credited exceeded what the issuer returned for the card |
POST_TERMINATION_SETTLEMENT | A transaction settled against the card after its balance was refunded |
Reconciling
Thereference is unique per charge, so a redelivered webhook is safe to ignore once processed. To tie a charge to the refund it corrects, match on cardId: each card has at most one correction, against the termination refund carrying the same cardId.
A card that receives this event may still be ACTIVE at the issuer — a refund raised against a card that was never terminated is one of the cases this corrects, and the card continues to work normally.Authorizations
API key from the FYATU CaaS portal. Pass as Authorization: Bearer <key>.
Body
application/json
Response
200
Acknowledge the event.

