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:
- You submit a cancellation request via API
- Inventi sends a camt.056 message through CENTROlink or EKS
- The beneficiary bank accepts or rejects the request
- 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
Request Flow
Request Flow
- You submit a cancellation request via API
- The platform creates a cancellation record and returns a
cancellationId - A camt.056 message is sent to the beneficiary bank
- You receive webhook updates as the request progresses
Possible Outcomes
Possible Outcomes
The beneficiary bank can:
- Accept: Funds are returned, original transaction is cancelled
- Reject: Original transaction proceeds normally
- Refuse: Request cannot be processed
Initiate Cancellation
Cancellation Statuses
- In Progress
- Final States
| Status | Description |
|---|---|
CANCELLATION_CREATED | Request initiated |
CANCELLATION_IN_PROGRESS | Sent to beneficiary bank |
Track Both States
Cancellation and transaction states are independent. Monitor both via webhooks.Cancellation Accepted
Cancellation:
ACCEPTED → COMPLETEDTransaction: CancelledFunds returned to youCancellation Rejected
Cancellation:
REJECTED → COMPLETEDTransaction: CompletedPayment settles normallyData Model
Original transaction reference
Cancellation request identifier
Track separately from transaction status
Append-only for audit
Integration Checklist
1
Handle cancellation webhooks
Upsert by
cancellationId to track cancellation state separately from transaction state2
Link cancellation to transaction
Maintain the relationship between
trx_id and cancellationId in your database3
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
CANCELLATION_COMPLETED