For sellers
Recognize the agent order. Keep the evidence. Change nothing else.
A channel tells you an order came from an agent. Enruta tells you which agent, for whom, under which limit and which policy, and gives you a record you can take to a refund, a dispute or an audit. Your checkout page, your PSP, your acquirer and your merchant of record stay exactly as they are.
What you hold
The order and the money. Enruta holds neither.
| Detail | |
|---|---|
| Orders, fulfillment, your PSP account | You hold the order and the money. Enruta never touches either. |
| What you gain on the order | agent_id, mandate_ref and policy_version labels, also written into your PSP; adjustments[] that execute; a dispute packet; a reconciliation slice; a risk signal you did not have to take on the agent’s word; the money split |
| What you check | The mandate and the agent’s identity. Whether the purchase is what the person meant was decided by the user’s policy before the mandate existed |
| Interfaces | The Accept middleware; a hosted storefront; verify_record; the sellers API (orders, verify, adjustments, reversals, fulfillments, dispute packets and deliveries, reconciliation, PSP connections, conformance, domains); the seller console |
| Billed by | The agent order. Accept is free permanently; Storefront is per domain and per agent order. |
Three tiers
Accept and Storefront are live. Enterprise is on the price list.
| Tier | What it is | Price | Status |
|---|---|---|---|
| Accept | Recognize agent orders, verify the mandate, keep a record, run the conformance check, confirm fulfillment | Free, permanently | Live |
| Storefront | Hosted UCP endpoint and ACP shim, payment by mandate or on your own PSP account, reversal write-back, dispute packets, the merchant slice of the weekly reconciliation | $499 a month per domain; 25,000 agent orders and 20 dispute packets a month; $0.02 an agent order above that | Live |
| Enterprise | Multiple domains and brands, custom PSP adapters, 99.9 % SLA, SSO, a dedicated sandbox | From $2,500 a month | Contracts from 2027 |
The middleware
One edge deployment, four things on every request.
Cloudflare Workers, Vercel Edge, Fastly Compute, Hono or Node 22. Zero dependencies, Apache-2.0. Without a seller key it labels; with one it reports and you get a record.
| Step | What it does | What you see |
|---|---|---|
| Recognize | Web Bot Auth signatures, verified with the key from the agent’s own directory; UCP signatures (Shopify’s Signed tier), verified with the key the agent’s profile publishes; the UCP-Agent fingerprint table, known agent user agents, MCP bodies | X-Enruta-Agent-Verified: true, X-Enruta-Agent-Profile: https://…, X-Enruta-Agent-Platform: openai |
| Verify | ap2.checkout_mandate against Enruta’s keys: signature, payee equals your domain, expiry, checkout reference | X-Enruta-Mandate-Valid: true |
| Label | The order carries the agent, the mandate, the policy version and the principal for your PSP metadata, your order attributes and your risk engine | X-Enruta-Agent, X-Enruta-Mandate, X-Enruta-Policy-Version, X-Enruta-Principal |
| Record | Completed orders are reported with your seller key; you get labels, a risk signal and your own sealed record chained to the buyer’s | X-Enruta-Record: rec_… |
import { createAccept, toFetchHandler } from "@enruta/accept";
const accept = createAccept({
domain: "shop.example",
sellerKey: env.ENRUTA_SELLER_KEY,
});
export default {
fetch: toFetchHandler(accept, { origin: "https://origin.shop.example" }),
};An invalid mandate is passed through labelled X-Enruta-Mandate-Valid: false so your own AP2 check decides; set enforce: true to answer 402 instead.
Storefront
No protocol surface of your own? Enruta hosts one for your catalog.
A hosted UCP endpoint and ACP shim at shop.enruta.ai, or on your own domain through a proxy. It reads your catalog from JSON or a feed, takes payment with an Enruta mandate or a PSP token charged on your own PSP account, and reports every order to you like any agent order.
After the order
Refunds, disputes and the week’s books, with evidence.
| Event | What Enruta does | Where |
|---|---|---|
| A refund, a cancellation, a return | Report it (POST /v0/sellers/adjustments), let the order webhook carry it, or let your PSP’s own refund webhook do it through a PSP connection; Enruta decides and executes the reversal on the buyer’s side and hands you the same adjustment in the UCP, ACP, Adyen and Shopify shapes | Adjustments |
| A chargeback or an alert | One call produces the dispute packet: login id, device, IP, the mandate, the approval chain, the authorization, plus a one-page PDF; Enruta can deliver it into Stripe, Shopify, Adyen, Klarna, Chargeflow or Justt | Dispute delivery |
| The week’s books | Your slice of the reconciliation: the order, the mandate, the rail’s authorization and settlement, every adjustment, on one line | GET /v0/sellers/reconciliation?period= |
| Who earned on the order | Your PSP fee and where it went, each line marked as actual or estimate with its source | Money split |
| Are you agent-ready? | enruta validate <endpoint> runs the suite locally; a hosted run earns a signed badge you can embed | Conformance and badge |
| Fulfillment | order_shipped or POST /v0/sellers/fulfillments moves the buyer’s settlement record and confirms the outcome | Settlement record |
What stays the same
No new PSP, no new merchant of record, no money through Enruta.
Connect the PSP account you already use: Enruta writes the agent labels into Stripe, Braintree or PayPal after the order; Adyen, Checkout.com and Worldpay take them only when the payment is created, so Enruta links the payment reference to the order instead. Every adapter other than Stripe is complete and runs once your own account at that PSP is connected. A merchant that completes checkout only on its own page keeps doing so: the agent hands the person the link and Enruta records the order the person placed.
Run the middleware today, or open a storefront.
A small number of companies whose agents pay, agent builders and merchants are shaping the first records with us. If your agents already pay, or sell to agents, or are about to, write to us.
hello@enruta.ai