Confirm the payment is in an authorised-but-not-captured state by checking the notification or your internal ledger; only pre-capture authorisations can be voided
POST to /v68/cancels (or the versioned equivalent) with merchantAccount, paymentPspReference (the original authorisation PSP reference), and an idempotencyKey to cancel the authorisation before capture
Alternatively, if the payment was captured, use POST /v68/refunds with the originalReference (capture PSP reference), merchantAccount, and amount to issue a refund
Listen for the CANCEL or REFUND webhook notification to confirm the reversal was accepted by the scheme
Handle the CANCEL_FAILED notification by investigating the reason field and, if necessary, re-attempting with a corrected originalReference
Known gotchas
A void/cancel must reference the authorisation PSP reference, not the capture reference; using the wrong reference returns an error or targets the wrong transaction
Once an authorisation is captured it can no longer be voided — only a refund can be issued, and that refund may take days to settle back to the cardholder
Partial cancels are not supported; to release only part of a hold you must perform a capture for the desired amount and the remainder is automatically released
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp