Draft v0.1 — published for review. Not final until approved; may change incompatibly before 1.0.

Binding: AP2 (Agent Payments Protocol)

On this page
  1. Isto Intents Intent → AP2
    1. To AP2 v0.1 IntentMandate
    2. To AP2 v0.2 open Checkout Mandate (SD-JWT)
  2. AP2 → Isto Intents Intent
  3. Verifiable Intent (Mastercard)

Isto Intents does not replace AP2. An Isto Intents Intent is long-lived and broadcast; an AP2 mandate is a short-lived, signed authorisation that one merchant reads during one purchase. The two meet at the moment a match turns into a purchase.

Sources (checked 2026-10-10): AP2 specification, repository. Note that AP2 renamed its objects between v0.1 (IntentMandate, CartMandate) and v0.2 (Checkout Mandate and Payment Mandate, each "open" with constraints or "closed" for a concrete purchase, encoded as SD-JWT).

Isto Intents Intent → AP2#

Direction of use: a buyer agent holds an Isto Intents Intent; a match is found; the agent derives a fresh, short-lived AP2 mandate scoped to that one offer. The Isto Intents Intent itself is never handed to the merchant.

To AP2 v0.1 IntentMandate#

AP2 v0.1 field from Isto Intents
natural_language_description intent.statement (+ a rendering of criteria.must in the buyer's language)
merchants [offer.source.operator.name] — the one seller of the matched offer
skus omitted (unique goods have no SKU)
requires_refundability false unless the buyer said otherwise
user_cart_confirmation_required true (always, for unique high-value goods)
intent_expiry min(intent.validUntil, now + 24 h) — AP2 recommends short validity

To AP2 v0.2 open Checkout Mandate (SD-JWT)#

v0.2 claim from Isto Intents
constraints.checkout.allowed_merchants the matched offer's operator
constraints.checkout.line_items one item: the offer id and a price the buyer accepts (at most the buyer's private limit, or budget.max)
cnf the buyer agent's key
iat / exp now / now + short validity (AP2's example: one hour)

The hidden limit never appears in clear in a mandate. The mandate states a price cap; the buyer's agent (which knows the buyer's limit from the buyer, never from the holder) uses it only to decide whether that cap is acceptable. A merchant therefore learns at most "the buyer accepts this price", which is exactly what any purchase reveals.

AP2 → Isto Intents Intent#

Direction of use: an AI agent already holds an AP2 v0.1 IntentMandate (or v0.2 open mandate) and wants the buyer's wish to outlive the session.

Isto Intents field from AP2
statement natural_language_description
criteria.must parsed from the description by the holder; holder records parser
allowedSellers merchants (if present)
validUntil not copied from intent_expiry blindly — an Isto Intents intent needs the buyer's fresh consent for its own validity (spec §7)
consent MUST be obtained by the holder; an AP2 mandate is not consent to broadcast an intent

An AP2 mandate authorises a purchase; it does not authorise telling sellers that someone wants something. That consent is separate and the holder must ask for it.

Verifiable Intent (Mastercard)#

Verifiable Intent chains identity → intent → action as SD-JWT. An Isto Intents holder MAY attach a Verifiable Intent credential to an Offer reply to prove to a seller that a real, verified buyer stands behind a pseudonymous intent — without revealing who. Mapping is left for v0.2 of this binding (the VI spec is itself a v0.1 draft).