Skip to main content

Handle Cancellation Requests from Other Banks

When an originating bank requests cancellation of a payment you received, you decide: accept and return the funds, or reject and keep them. Inventi handles the messaging — you make the business decision.
What happens when a cancellation request arrives:
  1. The originating bank sends a camt.056 cancellation request
  2. Inventi notifies you via webhook with the request details
  3. You review and decide to accept or reject
  4. Inventi sends the response message automatically

API Reference

How It Works

A webhook arrives with status CANCELLATION_IN_PROGRESS. This indicates the originating bank is requesting cancellation of a payment you received.
The cancellation request includes the original transaction reference and reason for the request.
Review the request and decide based on:
  • Whether funds have been credited to the beneficiary
  • Beneficiary’s consent to return
  • Compliance or fraud flags
Once you accept, funds will be returned. This action cannot be undone.
  • Accept: Platform creates a return transaction and sends PACS.004 to the originator
  • Reject: Platform sends a refusal message, funds remain with the beneficiary

Accept a Cancellation

When you accept, the platform creates a return transaction and sends a PACS.004 message.
curl -X POST https://api.pgw-sandbox.finventi.com/v1/cancellation-requests/{id}:accept \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json"
The platform:
  • Validates the cancellation request
  • Creates a payment return transaction
  • Sends the return message to the originating bank
  • Updates the cancellation status via webhook

Reject a Cancellation

When you reject, the platform sends a refusal message and funds remain with the beneficiary.
curl -X POST https://api.pgw-sandbox.finventi.com/v1/cancellation-requests/{id}:reject \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "CUST",
    "additionalReason": "Beneficiary confirmed payment is valid"
  }'

Cancellation Statuses

StatusDescription
CANCELLATION_IN_PROGRESSAwaiting your decision
RETURNINGYou accepted, return in progress
PAYMENT_RETURNEDFunds returned
CANCELLATION_COMPLETEDProcess complete

Decision Criteria

Accept When

  • Funds not yet used
  • Beneficiary agrees
  • Fraud suspected
  • Compliance flags

Reject When

  • Funds already withdrawn
  • Beneficiary disputes
  • Valid payment confirmed
  • No grounds for return

Consider

  • Transaction amount
  • Time since receipt
  • Customer relationship
  • Regulatory requirements

Data Model

cancellationId
string
required
Request identifier from webhook
trx_id
string
Related transaction (if provided)
decision
string
required
Your accept/reject decision with reason
status_history
array
required
Full lifecycle for audit

Integration Checklist

1

Monitor cancellation webhooks

Watch for CANCELLATION_IN_PROGRESS status to identify pending requests
2

Implement decision logic

Build rules to accept or reject based on your business requirements
3

Secure the endpoints

Protect accept/reject actions with proper authorization
4

Track final status via webhooks

Use webhook statuses as the source of truth, not just the API response

What’s Next?

You now understand how to handle incoming cancellation requests. Complete your exception handling with returns and reconciliation: