Revoke a mandate
POST /functions/v1/mandate-revoke
Immediate, never cached, terminal, and it needs no cooperation from the agent holding the mandate.
{ "mandate_id": "mdt_a91f3c", "reason": "no longer travelling" }{
"revoked": true,
"already_revoked": false,
"mandate_id": "mdt_a91f3c",
"status": "revoked",
"revoked_at": "2026-09-16T12:40:11Z"
}Three properties
- Immediate and never cached — the next action fails, with no window.
- Terminal — revoked never returns to active.
- No cooperation — revocation does not ask the holder for anything.
Who may call it
The granting human, the issuing merchant, or the service role — not the agent holding the mandate. Repeat calls answer already_revoked: true rather than failing.
What the person sees
The revocation screen names the agent with agent_display_name and agent_descriptor, falling back to granted_to when they were not declared.
A mandate.revoked webhook follows, delivered by the outbox worker within a minute. See webhooks.
Sidaxis is the human authorisation layer. It never moves money, holds funds or settles. The machine-readable contract is openapi.yaml.