Enruta

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 accountYou hold the order and the money. Enruta never touches either.
What you gain on the orderagent_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 checkThe 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
InterfacesThe 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 byThe 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.

TierWhat it isPriceStatus
AcceptRecognize agent orders, verify the mandate, keep a record, run the conformance check, confirm fulfillmentFree, permanentlyLive
StorefrontHosted 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 thatLive
EnterpriseMultiple domains and brands, custom PSP adapters, 99.9 % SLA, SSO, a dedicated sandboxFrom $2,500 a monthContracts 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.

StepWhat it doesWhat you see
RecognizeWeb 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 bodiesX-Enruta-Agent-Verified: true, X-Enruta-Agent-Profile: https://…, X-Enruta-Agent-Platform: openai
Verifyap2.checkout_mandate against Enruta’s keys: signature, payee equals your domain, expiry, checkout referenceX-Enruta-Mandate-Valid: true
LabelThe order carries the agent, the mandate, the policy version and the principal for your PSP metadata, your order attributes and your risk engineX-Enruta-Agent, X-Enruta-Mandate, X-Enruta-Policy-Version, X-Enruta-Principal
RecordCompleted orders are reported with your seller key; you get labels, a risk signal and your own sealed record chained to the buyer’sX-Enruta-Record: rec_…
worker.ts
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.

EventWhat Enruta doesWhere
A refund, a cancellation, a returnReport 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 shapesAdjustments
A chargeback or an alertOne 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 JusttDispute delivery
The week’s booksYour slice of the reconciliation: the order, the mandate, the rail’s authorization and settlement, every adjustment, on one lineGET /v0/sellers/reconciliation?period=
Who earned on the orderYour PSP fee and where it went, each line marked as actual or estimate with its sourceMoney split
Are you agent-ready?enruta validate <endpoint> runs the suite locally; a hosted run earns a signed badge you can embedConformance and badge
Fulfillmentorder_shipped or POST /v0/sellers/fulfillments moves the buyer’s settlement record and confirms the outcomeSettlement 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