Skip to main content
AP2 is Google’s Agent Payment Protocol — a mandate-based approach where a user pre-authorizes an agent to spend within specific rules. The agent then transacts freely within those rules; exceeding them requires a new mandate.

Core concept: the mandate

A mandate is a signed authorization:
The agent carries this mandate and presents it on every transaction. Merchants verify the mandate is valid; Sly enforces the policy on every execution.

Create a mandate

Response:
The mandate_jwt is signed by Sly’s mandate authority; merchants and facilitators can verify without calling Sly’s API.

Execute against a mandate

The agent presents the mandate on every transaction:
Sly checks:
  • Mandate is active (not revoked, not expired)
  • Amount ≤ max_per_tx
  • This-day total + amount ≤ max_per_day
  • This-month total + amount ≤ max_per_month
  • Merchant is in the allowlist (if set) and not blocked
  • Agent KYA tier allows this amount
If any check fails, the execution is rejected and logged. If all pass, the transfer executes and the mandate’s counters advance.

Revoke a mandate

Revocation is instant. Any pending executions against the mandate fail.

Update a mandate

Update scope (e.g. raise a limit, extend expiry) without revoking:
Patches are tracked in an audit log; every execution after the patch uses the new scope.

Mandates and wallet policies

AP2 mandates layer on top of wallet policies, not replace them. An execution must pass:
  1. Mandate scope (from this page)
  2. Wallet policy (per-agent limits and allowlists)
  3. KYA tier (account-level and agent-level)
Every additional layer can only make the allowed set narrower. A mandate allowing $1,000 at a merchant that the wallet policy has blocked will still be rejected.

Endpoints

Plus 30+ sub-resource endpoints for mandate templates, explanation of rejections, tier-limit queries, and dispute flows. See API reference.

When to use AP2

  • Agent needs persistent spending authority over weeks/months
  • You want mandate portability (a single signed object agents can present anywhere)
  • You operate in the Google / Gemini ecosystem where AP2 is the native protocol
  • You need a user-controllable kill-switch separate from agent credentials (revoking the mandate instantly blocks spending without changing the agent)