A crypto send or a gift card was cancelled. Terminal.
This event fires for both payout types
payout.cancelledis emitted for crypto sends and gift cards, and the two bodies are structurally different. Branch onpayout_typebefore touching the body. The other shared names arepayout.processingandpayout.failed.
Triggered when a payout was cancelled. Terminal for that payout, but not for the recipient.
payout_type | Meaning |
|---|---|
crypto | An accepted send was cancelled. No funds moved. |
gift_cards | An issued or in-flight gift card was cancelled. |
Crypto
The crypto body, with the data shape documented on payout.quote_created.
data.status carries the provider's raw string, which may be either "canceled" or "cancelled". Both map to this one event. Read the event name to decide what happened, not data.status.
{
"event": "payout.cancelled",
"payout_type": "crypto",
"data": {
"id": 354,
"status": "cancelled",
"input_amount": "100.0",
"blockchain_transactions": [],
"requires_2fa_confirmation": false
}
}What to do
- Close out
data.id. No funds moved. - The recipient's entitlement is untouched and still redeemable.
- This event cancels an accepted send. For a recipient cancelling a quote before the send exists, see
payout.quote_cancelled.
Gift cards
The GIFQ envelope plus the gift-card payout keys. subject_type is "payout" and status is "cancelled".
{
"event": "payout.cancelled",
"payout_order_uuid": "11111111-2222-3333-4444-555555555555",
"recipient_email": "[email protected]",
"recipient_uuid": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"recipient_name": "Alice Doe",
"subject_type": "payout",
"status": "cancelled",
"updated_at": "2026-05-21T11:30:00Z",
"payout_type": "gift_cards",
"currency": "GBP",
"sent_at": "2026-05-20T09:00:00Z",
"viewed_at": "2026-05-21T10:00:00Z",
"expires_at": "2026-08-20T09:00:00Z",
"payout_uuid": "99999999-8888-7777-6666-555555555555",
"brand_uuid": "77777777-6666-5555-4444-333333333333",
"brand_name": "Amazon UK",
"amount": 25.0
}What to do
- Close out
payout_uuid. The card is void. - If you told your end user about this same
payout_uuidon an earlierpayout.fulfilled, retract that. It is the same card being withdrawn. - Read the recipient's
remaining_amountfrom their nextrecipient.*event rather than assuming the amount went back to their balance.