Study the AP2 v0.2.0 specification at ap2-protocol.org/specification to understand the three mandate types: Intent Mandate (user scope), Cart Mandate (merchant-assembled SKU+price binding), and Payment Mandate (network-facing credential)
Each mandate is a W3C Verifiable Credential in JSON-LD format, signed with ECDSA over P-256; integrate a VC library capable of verifying these signatures before trusting any inbound mandate
When an agent presents an Intent Mandate, generate a Cart Mandate that binds your specific SKU, price, tax, and shipping total to the intent; sign with your merchant key and return it to the agent
Pass the Payment Mandate downstream to your payment processor; the mandate includes a hashed payment-method reference, amount, currency, and a human-present vs human-not-present flag that affects network-level liability rules
Implement revocation checking: mandates carry an expiry and may be revoked at the Credential Provider before settlement; query the revocation endpoint before finalizing auth
Retain signed mandate chains as dispute-grade evidence; Cart Mandates cryptographically prove what the user authorized, which is critical if the cardholder later disclaims the purchase
Known gotchas
The human-not-present flag inside the Payment Mandate changes how card networks apply liability rules; failing to set it correctly may cause issuers to reject the auth or shift chargeback liability to you unexpectedly
AP2 mandates expire; an agent holding a stale Cart Mandate that arrives at your endpoint after expiry must restart the mandate cycle — build a graceful re-authorization flow rather than letting the checkout silently fail
AP2 v0.2.0 (April 2026) introduced breaking changes to the mandate envelope structure relative to the September 2025 initial release; verify your counterparty's spec version before assuming schema compatibility
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp