Implement AP2 v0.2.0 mandate chaining using the Python SDK so an agent application can build a verifiable IntentMandate→CartMandate→PaymentMandate chain end-to-end
Install the AP2 Python SDK from PyPI (pip install ap2-sdk); the v0.2.0 release shipped April 2026 and is the current stable version; check the repo at github.com/google-agentic-commerce/AP2 for the latest changelog before installing.
Build an IntentMandate using the ap2.models.IntentMandate Pydantic class, specifying budget ceiling, allowed payment instruments, merchant category constraints, and expiry timestamp; sign it with the user's private key using sdk.sign_mandate(mandate, private_key).
When the agent selects a merchant cart, call the merchant's UCP endpoint to receive a CartMandate; use sdk.verify_cart_mandate(cart_mandate, merchant_public_key) to verify the merchant's ECDSA signature before proceeding.
Construct a PaymentMandate linking the CartMandate ID and IntentMandate ID; call sdk.create_payment_mandate(cart_mandate_id, intent_mandate_id, payment_instrument) and sign with the user's key.
Submit the three-mandate chain to the credential provider's verify_and_pay endpoint; the provider validates the full chain signature integrity, intent constraints, and cart immutability before authorizing settlement.
Known gotchas
v0.2.0 introduced breaking schema changes to PaymentMandate compared to v0.1.x; the 'instrument' field was renamed and the 'references' array structure changed — review the migration guide in the CHANGELOG before upgrading existing integrations.
The Python SDK's canonical JSON schemas live in ap2/schemas/ and must match exactly; any custom serialization (e.g., sorting keys differently) will cause signature verification failures because ECDSA signs the canonical byte representation.
TypeScript, Kotlin, and Go reference implementations are also available in the repo; if your agent runtime is not Python, use the appropriate SDK rather than porting the Python signing logic manually.
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