Binding: AP2 (Agent Payments Protocol)
On this page
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).