The decision model
Every verification runs up to three independent layers, and the response tells you exactly which ones passed:
- transport: who is the agent? Verifies a Web Bot Auth signature (an HTTP message signature, RFC 9421) against the agent's published key directory.
- mandate: is it allowed to spend? Verifies a signed AP2 spending mandate and binds it to the real cart (amount, currency, and a hash of the merchant-signed checkout terms).
- allowance: does the ACP session add up? Checks an Agentic Commerce Protocol allowance and Shared Payment Token when the merchant runs in ACP mode.
A decision is allow only when every required layer passes. A required layer that fails, or a presented layer that fails even when optional, produces deny. Genuine uncertainty (a key directory you cannot reach, an ACP step-up) produces review in standard mode. The set of required layers and how uncertainty resolves are both set by your policy mode.
Base URL and authentication
The production service is live at:
https://verify.mandategate.com
Every call to /v1/verify is authenticated with a merchant API key as a bearer token. Each key is bound to one merchant_id and can only verify for that merchant. Keys are issued per merchant; during early access we provision them directly, so request access to get one. Health and scan endpoints are public.
# confirm the service is up (no auth)
curl https://verify.mandategate.com/healthz
# → {"status":"ok","version":"0.1.0"}
Quickstart
-
Get a merchant key
Request early access. We issue an
mg_live_…key bound to yourmerchant_id. Treat it as a secret; it lives server-side in your store, never in the browser. -
Install the enforcement layer
For WooCommerce, install the plugin and point it at
https://verify.mandategate.comwith your key. It calls the API only when an agent is present, so human checkout is never touched. See the WooCommerce integration guide. -
Verify a checkout
The plugin sends a
POST /v1/verifywith the agent's signature headers, the cart your server built, and your policy. You get a decision plus reason codes. The full request and response shape is in the API reference. -
Start in monitor mode, then enforce
Run in monitor mode first: it logs every decision and denies nothing, so rollout carries zero risk to sales. When you trust what you see, promote to standard. See policy modes.