Cancel a mandate
cancel_mandateFull Description
Cancel a mandate. Also known as: stop a direct debit, revoke a mandate, cancel an authorisation.
HIGH-BLAST-RADIUS operation — this also cancels everything attached to the mandate. Two-call pattern: first call with confirmed=false returns a preview enumerating what will be cancelled; second call with confirmed=true executes after the user has explicitly confirmed in their next message. DO NOT pass confirmed=true in the same turn as a preview.
Requirements:
- Mandate must be in a cancellable state: pending_customer_approval, pending_submission, submitted, or active. Mandates already cancelled, failed, expired, consumed, or blocked cannot be cancelled.
- Cancellation is irreversible — once cancelled, the mandate cannot be reinstated and the payer would have to set up a new authorisation.
Cascading side effects (will happen automatically):
- All active subscriptions on this mandate auto-cancel. No further scheduled payments will be created.
- All pending payments on this mandate auto-cancel (pending_customer_approval, pending_submission). Already-submitted payments continue through the bank.
- All cancellable instalment schedules on this mandate auto-cancel.
- The bank authorisation is revoked where the scheme supports it (Frontier-enabled schemes). The payer's bank will no longer permit collections.
The preview enumerates active subscriptions and pending payments so the merchant can see the full blast radius before confirming.
One of mandate_id (single) or mandate_ids (bulk) must be provided.
Bulk cap: mandate_ids accepts up to 10 IDs per call.
- If the user asks to cancel more than 10 mandates, do NOT call this tool multiple times to work around the cap. Instead: state the 10-per-call limit and ask the user to confirm a specific quantity to proceed with. Wait for their reply before proceeding.
- When the requested count exceeds 10, process one batch at a time — preview and confirm the first batch, execute it, then preview and confirm the next batch. Do not preview subsequent batches before the previous one has been confirmed and created.
Requires read_write scope.
Parameters (0 required, 4 optional)
confirmedbooleanSet true only after the user has explicitly confirmed the preview in their most recent message. Default false (returns a preview).
mandate_idstringID of the mandate to cancel (e.g. MD000123). Must be in a cancellable state — see description.
mandate_idsarrayFor bulk cancellations: list of mandate IDs to cancel (max 10). Use instead of mandate_id.
preview_tokenstringRequired when confirmed=true: the preview_token field from this tool's own preceding preview response (the confirmed=false call for these exact same parameters). Rejected if missing, mismatched, already used, or if confirmed=true arrives too soon after the preview — a preview_token is only valid a few seconds after being issued, since it exists to prove a genuine user reply happened in between, not just that a preview call was made. If confirmed=true is rejected for being too soon, wait for the user's actual next message before trying again; do not immediately retry.