Skip to main content

Cancel Payments When Plans Change

Sometimes payments need to be stopped - a customer changes their mind, duplicate payment detected, or wrong beneficiary details. Inventi handles the cancellation protocol with the beneficiary bank on your behalf.
What happens when you cancel a payment:
  1. You submit a cancellation request via API
  2. Inventi sends a camt.056 message through CSM
  3. The beneficiary bank accepts or rejects the request
  4. You receive the outcome via webhook
Cancellation is a request, not a guarantee. The beneficiary bank may accept or reject based on whether funds have been credited.

API Reference

Cancel Transaction

Initiate a cancellation request

Cancellation Status Webhook

Track cancellation lifecycle

Get Cancellation Request

Retrieve cancellation details

List Cancellation Requests

Search cancellation requests

How It Works

  1. You submit a cancellation request via API
  2. The platform creates a cancellation record and returns a cancellationId
  3. A camt.056 message is sent to the beneficiary bank
  4. You receive webhook updates as the request progresses
The beneficiary bank can:
  • Accept: funds come back as a payment return (pacs.004) - a new linked inbound transaction; the original settled payment stays Completed
  • Reject: Original transaction proceeds normally
  • Refuse: the beneficiary bank declines to return the funds (camt.029 refusal - CANCELLATION_REFUSED)
Never assume cancellation succeeded until the webhook indicates PAYMENT_RETURNED.

Initiate Cancellation

Cancellation Statuses

Track Both States

Cancellation and transaction states are independent. Monitor both via webhooks.

Cancellation Accepted

Cancellation: CANCELLATION_IN_PROGRESSRETURNINGPAYMENT_RETURNEDTransaction: original stays Completed; a new linked payment return transaction credits the funds back

Cancellation Refused

Cancellation: CANCELLATION_IN_PROGRESSREFUSINGCANCELLATION_REFUSEDTransaction: CompletedPayment settles normally

Data Model

string
required
Original transaction reference
string
required
Cancellation request identifier
string
required
Track separately from transaction status
array
required
Append-only for audit

Integration Checklist

1

Handle cancellation webhooks

Upsert by cancellationId to track cancellation state separately from transaction state
2

Link cancellation to transaction

Maintain the relationship between trx_id and cancellationId in your database
3

Display states separately

Show cancellation progress independently from transaction status in your UI
4

Wait for completion

Only consider a cancellation final when the webhook indicates PAYMENT_RETURNED or CANCELLATION_REFUSED

What’s Next?

You now understand exception handling for outbound payments. Complete your integration with inbound exceptions and reconciliation:

Respond to Cancellations

Handle incoming cancellation requests

Return Inbound Payments

Return funds when you can’t credit the beneficiary

Track and Reconcile

Monitor transactions and reconcile with statements
Last modified on July 10, 2026