{
"event": "card.post_refund_charge",
"version": "3.0",
"eventId": "6b2c9a1d-7e4f-40a8-b3c2-1f9e8d7c6b5a",
"sign": "8c4768fa5a3e8a36d69942bc066f2c236e920701fa5a4348e3075aa7ead3588",
"data": {
"cardId": "a4e8f2b6c9d1e3f7a2b5c8d0e4f1a3b6c9d2e5f8a1b4c7d0e3",
"cardholderId": "8f4e2a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d",
"amount": 12.50,
"currency": "USD",
"reference": "a1b2c3d4e5f6a7b8c9d0e1f2",
"reason": "REFUND_NOT_BACKED_BY_RETURNED_FLOAT",
"appId": "A1B2C3D4E5F6G7H8",
"timestamp": "2026-07-08T14:30:00Z"
}
}
{}
Cards
Card Post-Refund Charge
Sent when a card termination refund is corrected and the amount is charged back to your business wallet.
WEBHOOK
card.post_refund_charge
{
"event": "card.post_refund_charge",
"version": "3.0",
"eventId": "6b2c9a1d-7e4f-40a8-b3c2-1f9e8d7c6b5a",
"sign": "8c4768fa5a3e8a36d69942bc066f2c236e920701fa5a4348e3075aa7ead3588",
"data": {
"cardId": "a4e8f2b6c9d1e3f7a2b5c8d0e4f1a3b6c9d2e5f8a1b4c7d0e3",
"cardholderId": "8f4e2a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d",
"amount": 12.50,
"currency": "USD",
"reference": "a1b2c3d4e5f6a7b8c9d0e1f2",
"reason": "REFUND_NOT_BACKED_BY_RETURNED_FLOAT",
"appId": "A1B2C3D4E5F6G7H8",
"timestamp": "2026-07-08T14:30:00Z"
}
}
{}
Fired when an amount previously refunded to your wallet 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
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.
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 wallet.
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 wallet 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. Always deduplicate on reference.{
"event": "card.post_refund_charge",
"version": "3.0",
"eventId": "6b2c9a1d-7e4f-40a8-b3c2-1f9e8d7c6b5a",
"sign": "8c4768fa5a3e8a36d69942bc066f2c236e920701fa5a4348e3075aa7ead3588",
"data": {
"cardId": "a4e8f2b6c9d1e3f7a2b5c8d0e4f1a3b6c9d2e5f8a1b4c7d0e3",
"cardholderId": "8f4e2a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d",
"amount": 12.50,
"currency": "USD",
"reference": "a1b2c3d4e5f6a7b8c9d0e1f2",
"reason": "REFUND_NOT_BACKED_BY_RETURNED_FLOAT",
"appId": "A1B2C3D4E5F6G7H8",
"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 wallet. 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 |
appId | string | The app the card belongs to |
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 |

