Docs Sellers
Storefront
LiveUpdated
Sellers. Written for merchants that receive agent orders.
Storefront gives a merchant without a protocol surface the endpoints agents check out through. Enruta hosts the UCP profile, the checkout and order endpoints and the ACP shim at https://shop.enruta.ai/s/{slug}/…, reads your catalog, takes payment with an Enruta mandate or on your own PSP account, and reports every order to your seller organization. Enruta does not become your merchant of record and holds no funds.
What is hosted
| Path | Protocol | What it answers |
|---|---|---|
/.well-known/ucp | UCP 2026-08-25 | The profile: this storefront’s ucp.keys, the REST and MCP bindings, the capabilities |
/ucp/… | UCP | The checkout lifecycle and orders; every checkout is signed with ap2.merchant_authorization, and an Enruta mandate is verified on complete |
/mcp | UCP over MCP | The same operations as tools |
/.well-known/acp.json | ACP | The ACP discovery document |
/acp/checkout_sessions | ACP 2026-04-17, and the September 2025 shape | POST to create, POST /{id} to update, POST /{id}/complete, POST /{id}/cancel, GET /{id}; the API-Version header selects the version, and client_reference_id is kept on both sides |
Stock is not reserved when a checkout is created; that stays with your PSP or your commerce platform.
On your own domain
Proxy /.well-known/ucp, /.well-known/acp.json, /ucp/*, /acp/* and /mcp from your domain to your storefront. The console shows a Cloudflare Worker or Vercel rewrite snippet for your storefront, built on @enruta/accept’s toFetchHandler. Once the domain is verified, agents see your domain and your keys.
Payment
| Handler | How it pays | Needs |
|---|---|---|
enruta_card | The agent presents an Enruta mandate and its single-use token; the storefront presents the token to POST /v0/rails/authorize, as the reference merchant does | Nothing beyond the storefront |
psp | The agent presents a PSP token, such as a Stripe Shared Payment Token, and the storefront charges it on your own PSP account | Your PSP account, connected as a PSP connection |
Catalog
- Inline (
catalog: { source: "inline", products }), or a feed URL that returns a JSON array or a Google Merchant-style JSON feed (catalog: { source: "feed_url", url }). - A feed is cached for five minutes;
POST /v0/storefronts/{id}/catalog/refreshreads it again at once. - Prices in minor units; images over https only.
Orders
Every order is reported to your seller organization the way the reference merchant reports its own: placed, updated, shipped. Agent orders are labelled with the agent, the mandate and the policy version and counted as agent orders. Refunds become adjustments and reversals on the buyer’s side, and a dispute gets a dispute packet.
Set one up
POST /v0/storefronts Authorization: Bearer enruta_slr_…
{
"slug": "shop-example",
"name": "Shop Example",
"currency": "USD",
"catalog": { "source": "feed_url", "url": "https://shop.example/feeds/products.json" }
}
// or an inline catalog: "catalog": { "source": "inline", "products": [ … ] }
GET /v0/storefronts
GET /v0/storefronts/{id} PATCH /v0/storefronts/{id}
POST /v0/storefronts/{id}/catalog/refresh
GET /v0/storefronts/{id}/ordersThe console’s /storefronts pages do the same, and show the catalog, the protocols, the endpoint URLs, the proxy snippet and the orders. enruta storefront ls and enruta storefront create work from the terminal.
The merchant tiers
| Tier | What it is | Status |
|---|---|---|
| Accept | Recognize agent orders, verify the mandate, keep a record, conformance and badge, fulfillment confirmation | Live (Accept middleware) |
| 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 | Live |
Price
No plan: 0.1% + $0.03 a successful payment, at least $0.05; the sandbox is free.
| Line | Price | Includes |
|---|---|---|
| Accept | $0, permanently | The agent orders it admits carry the per-payment fee |
| Storefront | 0.1% + $0.03 a successful payment | At least $0.05, at most $0.50; reversal write-back and dispute packets included |
| Third-party risk signals | At cost | About $0.05 a screened order, passed through without mark-up |