When it fires
Thecash_out webhook type receives the lifecycle events of a transfer created via POST /api/spei/cash-out:
The return of an already settled cash-out (
transaction.cash_out.returned) — when the counterparty’s bank returns the transfer — is delivered on the refund_out webhook type, not on cash_out.Payload
status: REJECTED, the receipt fields (reference, voucher) may be null — the SPEI network never confirmed the transaction.
Headers
Behavior
- At-least-once: you may receive the same event more than once. Deduplicate by
x-event-id. - Failure after success: does not happen. A transaction never moves from
LIQUIDATEDtoREJECTED. - Return: if the counterparty returns the transfer after settlement, you receive
transaction.cash_out.returnedon therefund_outwebhook, with the sametransactionId.
Expected Response
200 OK within 10 seconds.