Tell the agent what to buy
Describe what you want and a budget. The agent fills a basket, you authorise once, and it pays for real on bank rails. New here? See how it works.
- 1Discover the product
- 2Authorise once
- 3Agent pays for real
Browse the live catalogue
A seeded slice of Klarna’s Agentic Product Protocol (APP), a product-discovery standard for AI agents, not a mobile app. Browse the feed, then Buy now (single item) or Add to basket for the agent to pay together. The payment plays out on the Workflow tab.
Single item · authority gate → Open Banking payment (sandbox)
The agent gets a scoped, issuer-signed mandate, signs its request (RFC 9421), and the gate verifies signature + mandate + policy before any bank call. Only on ALLOW does the real TrueLayer payment run. Why this rail →
no live payment yet
Sandbox settles GBP via Faster Payments. When the bank tab opens, authorise as
test_executed + any 3 PIN digits — that is the PSU’s SCA, which the agent never sees.
Basket · one authorisation, many payments — the multi-use mandate
Authorise once (one SCA), then the agent pays for every basket item as a separate sandbox payment — no re-SCA. Each draw is gated and use-counted, so once the basket is spent the next draw is denied before any bank call. The durable value →
no mandate yet
Authorise the mandate once as test_authorised + any 3
PIN digits — the single human SCA. After that the agent pays each basket item with no further
authentication, bounded by the owned mandate (per-item cap · use-count · revocation).
🔁 Standing authority: a reusable spending allowance for the agent
How this differs from the basket above: the basket mandate authorises one checkout. A standing authority is a durable allowance: you set the caps once, and the agent pays from it across many future purchases (think a monthly budget) with no further bank approvals, until it expires or you revoke it.
- 1Set the limitsPer-payment cap, monthly cap, and an expiry.
- 2Authorise onceOne bank SCA approves the whole allowance.
- 3Agent pays within themNo re-SCA. A draw over a cap is denied; revoke anytime.
🛒 Each click is a follow-up payment drawn against this allowance with no SCA, until a cap is hit. (Or fill a basket above and use “🤖 Agent pays now”.)
🥷 Security check: can a rogue agent spend this allowance?
A rogue presents the trusted agent’s stolen credential but signs with its own key. The RFC 7800 key-binding stops it at the identity check, before any cap, mandate, or bank call. Your allowance stays untouched.
When the bank tab opens, authorise once as test_authorised
+ any 3 PIN digits: the single human SCA (sandbox).
Receipts — every executed payment
One authorisation, many orders — each a live Open Banking payment (sandbox).
Watch the agent think + act
A live audit feed — discover → decide → identity → gate → pay.
How an AI agent pays, under control
Find a product, get a scoped mandate, pass the gate, pay for real. These are the six steps behind the live demo on the Workflow tab.
- 🔎1
Discover
The agent finds products via Klarna’s Agentic Product Protocol (APP), a structured feed of live prices.
- 🛑2
The gap
APP can’t authorise payment:
501 no_payment_layer, by design. - 🪪3
Agent identity
An issuer-attested credential proves who the agent is, bound to its key (RFC 7800).
- 🔑4
Mandate
A human grants a scoped, revocable, signed mandate.
- ✅5
Authority gate
Identity + signature (RFC 9421) + mandate + policy, before any bank call.
- 💳6
Pay for real
A live Open Banking payment executes on the TrueLayer sandbox.
Single item
Buy one product, one scoped mandate, one live sandbox payment. Each purchase is its own authorisation.
Basket · multi-use mandate
Authorise once, the agent pays for every basket item with no re-SCA, and a draw past the limit is denied. This is the VRP model, the real time-saving.
Want the full mechanism, the consent-vs-token comparison, and why the EU has the
better primitive? Read the deep dive →
Have your own agent? See how to connect it and shop here →