A crypto send is finalized on chain. Terminal.
Triggered when the crypto send is finalized. This is the success outcome for a crypto payout, and it is terminal, so no further status events fire for this send.
payout_type is always crypto. The gift-card equivalent is payout.fulfilled.
This maps from the provider's completed or paid, so data.status may be either.
Body
The crypto body, with the data shape documented on payout.quote_created.
The on-chain hash lives at data.blockchain_transactions[0].txid.
The hash may not be there yetA send can be
completedbefore the chain transaction is confirmed, in which caseblockchain_transactionsis still[]. A secondpayout.completedfor the samedata.idmay follow once the hash lands.Treat the later delivery as authoritative for the hash, and do not report "confirmed on chain" until you actually have a
txid.
Example
{
"event": "payout.completed",
"payout_type": "crypto",
"data": {
"id": 354,
"status": "paid",
"purpose": "Gifq payout to [email protected]",
"created_at": "2026-05-25T10:00:00.000Z",
"input_amount": "100.0",
"sending_amount": "0.049422",
"sending_currency": {
"id": 5, "kind": "crypto", "title": "Ethereum", "symbol": "ETH"
},
"blockchain_transactions": [
{
"id": 7000001,
"txid": "0x1111111111111111111111111111111111111111111111111111111111111111",
"amount": "0.049422",
"status": "confirmed",
"network_confirmations": 1,
"currency": {
"id": 5, "title": "Ethereum", "symbol": "ETH",
"platform": { "id": 42, "title": "Base" }
}
}
],
"requires_2fa_confirmation": false
}
}
datais abridged. The full object is documented onpayout.quote_created.
What to do on receipt
- This is the authoritative final outcome for
data.id. The recipient has been paid. - Read the hash from
data.blockchain_transactions[0].txid. If the array is empty, wait for the follow-up delivery. - Expect
recipient.redeemedfor the recipient, because a completed crypto send finalizes their entitlement. - For anything financial, cross-check through the GIFQ API rather than trusting the webhook body alone.
- No further status events fire for this send.