One authorization per payment. A mandate is the proof that a specific payment was authorized: by which policy, by which person if one was needed, for which exact request.
Six states. Click one.
The agent called request_payment with an idempotency key. Nothing is minted yet.
Policy evaluated, budget reserved atomically. Result: allow, step-up or deny.
Only on step-up: a named person signed with a passkey or an authenticated link, binding the request hash.
The mandate exists: amount, payee, expiry. It is compiled into the rail’s own control.
The rail authorized against the mandate. The consumed state flips exactly once; a second redemption fails.
Nobody redeemed it before the window closed. The budget reservation is released and the record says so.
What a mandate looks like.
- $168.40 USD to reamandrule.com, and nothing else
- Bound to the request by its hash: payee, amount, currency, purpose, checkout reference
- Decided under the office supplies policy, version 7
- Approved by a person with a passkey
- Single use: issued, then consumed or expired, once
- Fifteen minutes to live: issued at 18:03:10, expiring at 18:18:10 UTC
- Signed by Enruta
The mandate as JSON
{
"id": "mnd_7c2a…d1f0",
"request_hash": "sha256:9f1c…2e4a",
"policy": { "id": "pol_office_supplies", "version": 7 },
"scope": { "amount": "168.40", "currency": "USD", "payee": "reamandrule.com" },
"approval": { "by": "usr_approver", "method": "passkey", "at": "2026-11-30T18:03:10Z" },
"issued_at": "2026-11-30T18:03:10Z",
"expires_at": "2026-11-30T18:18:10Z",
"single_use": true,
"consumed_state": "issued",
"signature": "ES256:…"
}Verified at issuance
All checks run when the mandate is created. The payment path only looks up and counts, so it adds under 10 ms inside a rail’s authorization window.
Single use
A consumed state moves from issued to consumed or expired exactly once. One consent cannot pay twice.
Bound to the request
The mandate carries the hash of the canonical request: payee, amount, currency, purpose, checkout reference. A different request needs a different mandate.
Signed by a person when required
A passkey assertion or an authenticated link, binding the request hash. A chat reaction is not an approval, and the record would say so.
Short-lived
Fifteen minutes by default, configurable per policy down to seconds. An expired mandate releases its budget reservation.
Compiled into the rail
Card amount and merchant lock, spend limit, bill-scoped approval, or the ap2.checkout_mandate proof a UCP merchant requires.