Skip to main content
This webhook fires on every cancellation status change, for SEPA CT/Instant, SEPA Direct Debit, SWIFT and T2 alike. The schema field tells you which. See the status field below for the full set of values.
Cancelling a payment that has not yet been sent does not produce this webhook. Such a payment is cancelled outright with no cancellation request created, so you receive a payment status change to Cancelled instead.

Webhook Details

integer
required
Cancellation request ID
integer
Original payment transaction ID
string
required
Transaction direction. Available values: “INBOUND”, “OUTBOUND”. This is always the direction of the original payment, not of the cancellation message: OUTBOUND when you sent the payment and requested its cancellation, INBOUND when you received the payment and a cancellation request arrived for it.
string
required
Scheme of the cancelled payment. Available values: “SEPA”, “INST”, “SDD”, “SWIFT”, “T2”
string
required
Cancellation reason code. Available values: “DUPL”, “CUST”, “FRAD”, “TECH”, “AC03”, “AM09”, “AGNT”, “COVR”, “CURR”, “CUTA”, “DS24”, “FRNA”, “FRTR”, “INDM”, “NARR”, “SYAD”, “UPAY”, “AC01”, “AC04”, “AC06”, “AC13”, “AG01”, “AG02”, “AM01”, “AM04”, “AM05”, “CNOR”, “DNOR”, “MD01”, “MD02”, “MD07”, “MS02”, “MS03”, “RC01”, “RR01”, “RR02”, “RR04”, “SL01”, “BE05”, “FF01”, “DT01”, “ED05”, “PY01”
string
required
Cancellation status. Available values: “CANCELLATION_CREATED”, “CANCELLATION_IN_PROGRESS”, “RETURNING”, “REFUSING”, “PAYMENT_RETURNED”, “CANCELLATION_REFUSED”, “PROCESSING_FAILED”, “CANCELLATION_COMPLETED”, “CANCELLATION_REJECTED”, “CANCELLATION_ACCEPTED”
When settled funds are returned, the platform creates a separate payment return transaction linked to the original payment. Track that return transaction through Payment Status Change webhooks; continue tracking the cancellation request through this webhook.

Request Example

Cancellation Request Processing Statuses

The table below standardises how you track SEPA cancellation requests from start to finish. Each status maps to specific inbound/outbound ISO-20022 messages, giving you clear, machine-readable checkpoints for monitoring and automating your cancellation workflow.
The table describes the SEPA flow, where the counterparty is the clearing system. SWIFT cancellations use the same statuses but reach them differently - see SWIFT differences below.

SWIFT differences

For an outbound SWIFT recall (schema is SWIFT) the counterparty is the correspondent bank rather than a clearing system, and only four of the statuses above occur. CANCELLATION_CREATED, PROCESSING_FAILED, REFUSING, CANCELLATION_COMPLETED, CANCELLATION_REJECTED and CANCELLATION_ACCEPTED do not occur for SWIFT.
RETURNING is agreement, not settlement. Treat only PAYMENT_RETURNED as funds recovered. A correspondent may take days to answer, or never answer - a SWIFT cancellation can stay in a non-final status indefinitely.
REFUSING never appears on a cancellation you initiated, on any scheme. It means you are refusing someone else’s cancellation request - see inbound cancellations.

Retry Mechanism

There is a retry mechanism - if an endpoint fails, the notification will be repeatedly sent until it is successfully delivered. Each notification is delivered and retried independently: a failed delivery does not hold back other notifications, so events can arrive out of order and your handler should rely on the status and identifiers in the payload rather than on arrival sequence. Retries use exponential backoff (1, 2, 4, 8 minutes and so on, up to roughly 8.5 hours between attempts) and continue until your endpoint accepts the delivery. Every retry is signed again with a fresh timestamp, so a strict timestamp freshness check on your side does not reject retried deliveries. If the webhook configuration is disabled or removed, pending retries are discarded.
Last modified on September 8, 2026