Skip to content

Merchant-side AP2 v0.2 implementation report: Suede Agent Studio #345

Description

@JasonColapietro

We run AP2 v0.2 merchant authorization in production at Suede Agent Studio (https://agents.suedeai.ai), a visual agent builder that publishes user-built flows as pay-per-call services other agents can discover and buy.

Live surfaces:

What is implemented on the merchant side:

  • Short-lived ES256 merchant-signed Checkout JWTs bound to one exact service call.
  • Deterministic verification of v0.2 Checkout and Payment Mandate schemas, SD-JWT disclosures, configured issuer trust, algorithms, time, audience, challenge nonce, key binding, and delegation and checkout hashes. No LLM makes a trust or payment decision anywhere in that path.
  • Authorization bound to the canonical run URL and method, the agent and slug, the immutable live deployment, the canonical input digest, the service schema, network, asset, exact atomic amount, payee, payout address, and expiry.
  • Durable reservation of mandate and payment nonce identities before settlement, so exact retries are idempotent while changed-body and concurrent replays fail closed.
  • Merchant-signed Checkout Receipts for acceptance or rejection.

Two deliberate limits worth stating plainly. Settlement runs on the x402 v2 rail, since the finalized AP2 and x402 v2 binding is not published yet, so we do not claim general AP2 plus x402 compliance. And we do not act as a credential provider, network, or payment processor, so we never claim to issue a protocol Payment Receipt.

We negotiate the extension over A2A at https://github.com/google-agentic-commerce/ap2/v1, emitting the A2A 1.0 A2A-Extensions header and temporarily accepting the sample client X-A2A-Extensions spelling.

Two asks: a review of the merchant flow against the spec's intent, especially anywhere our deterministic verification is stricter or looser than you intend, and consideration as a merchant-side reference deployment. Happy to feed back whatever we learn running this in production.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions