payout.failed

A crypto send or a gift-card issuance failed. Terminal.

🚧

This event fires for both payout types

payout.failed is emitted for crypto sends and gift cards, with structurally different bodies. Branch on payout_type first. The other shared name is payout.processing.

Triggered when a payout did not go through. Terminal for that payout, but not for the recipient, who can usually try again.


Crypto

The crypto body, with the data shape documented on payout.quote_created.

{
  "event": "payout.failed",
  "payout_type": "crypto",
  "data": {
    "id": 354,
    "status": "failed",
    "input_amount": "100.0",
    "sending_amount": "0.049422",
    "blockchain_transactions": [],
    "requires_2fa_confirmation": false
  }
}

What to do

  • The send failed and no funds reached the recipient.
  • The recipient's entitlement is untouched and still redeemable, because a failed send does not consume their balance. Expect them to quote again, producing a new payout.quote_created with a different data.id.
  • Do not mark the recipient as done. Only recipient.redeemed or recipient.expired closes them out.

Gift cards

The GIFQ envelope plus the gift-card payout keys. subject_type is "payout" and status is "failed".

{
  "event": "payout.failed",
  "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": "failed",
  "updated_at": "2026-05-21T10:05:12Z",
  "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

  • Issuance failed for this payout_uuid. No card exists and the recipient has nothing to redeem from it.
  • The reserved amount goes back to the recipient's balance. There is no separate reversal event, so this is it.
  • Because the balance is restored, no recipient.* event accompanies this and the recipient's status does not change.
  • Expect the recipient to redeem again, producing a new payout_uuid.
📘

Why there is no reversal event

GIFQ reserves the balance before calling the brand, and only notifies you at payout.fulfilled. The reservation never produced an event, so there is nothing to unwind. payout.failed is the whole story.