Verifiable Intent

Verifiable Intent is an open format by Mastercard in which a user signs the limits of an agent purchase and the agent provably binds the final values to them.

Verifiable Intent builds on SD-JWT and works in layers: one layer binds the user's key to her payment credential, another holds her intent with limits such as an amount range and permitted payees, and a final one holds the concrete values the agent fills in. Each layer is bound to the one before.

The format distinguishes two modes: in an immediate purchase the user confirms the final values herself; in an autonomous purchase the agent sets them within the signed limits. Mastercard provides a reference implementation under the Apache 2.0 license.

Example

A user allows her agent to buy concert tickets up to CHF 150 from two vendors and signs these limits. The agent finds tickets for CHF 120 and signs the final values. Merchant and network each verify their view of whether the values fall within the signed limits.

How it differs

Verifiable Intent describes the intent for a purchase within the payment network. Google's AP2 covers a similar flow with intent, cart and payment mandates; the two approaches are converging. Web Bot Auth and the Trusted Agent Protocol, by contrast, mainly identify the agent itself.

In practice

  • Set the amount range and permitted payees as narrowly as the task allows.
  • Choose immediate mode for one-off purchases and autonomous mode for recurring purchases within clear limits.
  • Add a revocation check if evidence is meant to go beyond level KYA-A2.

Role in KYA

KYA verifies Verifiable Intent against Mastercard's reference implementation: signatures of all layers, bindings via sd_hash, delegation to the agent key, plus amount range and payees. Without a revocation check, evidence reaches at most level KYA-A2.

Related check: Scope of the action (intent_scope). Is the action within the mandate's action type, amount limit, currency and counterparty?

Verify now: open a matching example

Frequently asked questions

Who is behind Verifiable Intent?

Mastercard introduced Verifiable Intent as an open format and published a reference implementation under the Apache 2.0 license. The format is meant to work alongside other approaches to agent payments.

What is the difference between immediate and autonomous mode?

In immediate mode, the user confirms the concrete values herself. In autonomous mode, she only sets the limits, and the agent fills in the final values within them. Both modes can be verified afterwards.

Can KYA verify Verifiable Intent?

Yes. KYA verifies the layers, their bindings and the limits against Mastercard's reference implementation, locally in the browser. An example from the reference data is available on the verification page.

Sources

  1. Verifiable Intent: specification and reference
  2. SD-JWT (IETF)