The payment stack for agent commerce. Discovery, checkout, risk, payment and post-purchase, on one evidence ledger both sides can verify.
One purchase, two sides. The agent pays under a policy. The merchant verifies the same mandate. Both records chain together.
Trust, and who pays whom. Before payment: who the agent is and what the person meant. After: where every dollar went.
The person’s words become slots. Rules decide first; a model decides the rest if the policy allows. A missing detail becomes a question, not a guess.
The merchant checks the agent’s key, code, runtime and legal entity. The agent’s side checks the merchant before paying.
Every payment has a money split: what the user paid, who took which fee, and what Enruta earned.
One record per attempt. Request, decision, approval, execution and seal in one file, verifiable offline.
Reversals, settlements and reconciliation lines chain after it · enruta-verify record.json → PASS
The record as JSON
{
"record": { "id": "rec_01J9Q2W6G5X8ZK3R7T1V9M4N2B", "schema": "enruta/0.3", "sequence": 4127 },
"kind": "payment",
"principal": { "id": "org_halvern", "login_id": "halvern/dana.reyes@halvernrobotics.com" },
"agent": { "id": "agt_procurement_02", "host": "claude-code", "identity": { "assurance": "A2" } },
"policy": { "id": "pol_office_supplies", "version": 7 },
"request": { "payee": "reamandrule.com", "amount": "168.40", "currency": "USD", "intent": { "text": "Restock the print room" } },
"payee": { "identity": { "status": "verified" } },
"decision": { "result": "step_up", "risk": { "action": "manual_review", "score": 0 } },
"approval": { "by": "usr_approver", "method": "passkey", "binds": "sha256:9f1c…2e4a" },
"mandate": { "id": "mnd_7c2a…d1f0", "single_use": true, "ledger": { "captured": "168.40", "remaining": "0.00" } },
"receipt": { "order_id": "ord_2211", "digest": "sha256:77ab…" },
"seal": { "alg": "sha256", "hash": "b0d4…71c9", "prev": "e91a…0c3d" }
}Six supporting objects. Everything after the payment is an object, and every object is a sealed record on the same chain.
Reversal
A void, cancellation, refund, return or credit, decided like a payment, with its effect on the mandate account
Chained as
reversal_ofDispute packet
The agent identity, mandate, approval chain and login id an issuer or a dispute vendor can read, in six export formats
Chained as
dispute_ofReconciliation line and weekly report
One line per mandate joining the agent, the rail and the merchant; a report the person who approves signs
Chained as
reconciliation_of,report_forSettlement record
Where the money is and when it becomes final: stage, amounts,
finality_classChained as
settlement_ofConsent record and KYA attestation
What a person authorized an agent to do, signed and revocable; who the agent is, read from a registry
Chained as
consent_for,attestation_forRecurrence
Repeated payments to one payee under a per-occurrence and a cumulative cap, each occurrence decided like a payment
Chained as
recurrence_for,occurrence_of
All six are live.
The risk assessment comes with every decision, sent to the merchant as a signed risk_signals entry. The money split shows who paid, received and earned.
Three promises you can check. Faster, cheaper and better, each where we can prove it.
Faster
Only where incumbents do not go. Where they compete, we claim no speed edge.
- Across rails. One signed policy compiled onto each rail’s own control: Stripe Issuing, Mercury, Ramp, Bill.com, Stripe Shared Payment Tokens, Link, x402, MPP and UCP checkoutsCheck it:
card_control_statein every record says what the rail was told - Across PSPs. An agent order labelled with
agent_id,mandate_refandpolicy_versionin the fields each PSP keeps: Stripe, Adyen, Checkout.com, Braintree, PayPal, Worldpay, Gr4vy, Spreedly and ShopifyCheck it:GET /v0/records/{id}/psp-metadataand the seller-side record - Portable records. JCS canonicalization, JWS signatures, RFC 3161 time-stamps, a hash chainCheck it:
npx enruta-verify record.json, no account - Reversals and disputes as objects. Not notifications:
request_reversaland the dispute packet are decided, executed and sealedCheck it: The linked record chained to the payment
Cheaper
Only in disputes, compliance evidence and merchant-side agent governance. Execution is not compared: Enruta charges nothing on it.
- Disputes. A dispute packet is $5 beyond the plan’s allowance, per packet, never per outcomeCheck it: Pricing
- Compliance evidence. The record is the evidence; the compliance export is in every planCheck it: Compliance export
- Merchant-side agent governance. Accept is free permanently; Storefront is $499 a month per domainCheck it: Pricing
- Execution and credentials. Not compared: Enruta charges nothing on executionCheck it: What is never charged
Better served
Six things, all of them product features rather than words.
- Self-serve sandbox.
POST /v0/sandbox/keysissues a sandbox organization and keys without a personCheck it: Quickstart - Public unit prices. Every price for all three roles is on one pageCheck it: Pricing
- Public specification. The object schemas, the JSON Schema, the test vectors and the verifier source, published togetherCheck it: Evidence Record schema
- Status and date on every page. Live, preview or planned, and when it last changedCheck it: Any docs page
- Three role views. The docs ordered for agents, sellers and platformsCheck it: Docs
- A conformance check with a badge.
enruta validate <endpoint>and a verifiable badge for merchantsCheck it: Conformance
Live today. What is running, where, since when.
Console
Policies signed by passkey, an approvals inbox, every payment’s timeline and record, and the seller pages
Since 2026‑09‑09
REST API
POST /v0/payment-requestsand every endpoint after it: reversals, disputes, reconciliation, the money split, sellers and platformsapi.enruta.ai/v0, since 2026‑09‑09
Remote MCP
Fifteen tools over OAuth 2.1; a Claude.ai connector completed a production purchase on 2026‑09‑10
mcp.enruta.ai/mcp, since 2026‑09‑10
Reference merchant
A UCP merchant with signed checkouts, running the Accept middleware and showing the conformance badge
Since 2026‑09‑09
Storefronts
Hosted UCP endpoints and an ACP shim for a merchant’s catalog, paid by Enruta mandate or PSP token
Since 2026‑09‑14
Default rail
Single-use virtual cards on a connected Stripe Issuing account, each authorization answered against the mandate in 44 ms
Stripe Issuing, since 2026‑09‑10
Packages
The verifier, the MCP server, the command line and the SDKs at 0.3.0 (
enruta-verify,@enruta/mcp,@enruta/cli,@enruta/sdk, Pythonenruta), the@enruta/acceptmiddleware at 0.2.0Since 2026‑09‑14
Claude Code plugin
enruta-ai/claude-plugin0.3.0: the MCP server, theenruta-payskill and a hook that blocks a checkout without a mandateSince 2026‑09‑14
Docs
47 pages, each with a status and a date, in three role views, with
llms.txt, a Markdown twin per page and the API catalogSince 2026‑09‑08
Rails and PSP adapters that depend on a third party carry their own status on the rails page and the sellers page; the boundary page says where a purchase may still stop.
Why Enruta exists. AI should extend what people can do, and respect their autonomy.
Enruta builds the trusted payment and commerce infrastructure of the AI era. It connects AI agents with merchants, so that consumers, businesses and everyone else in the commercial ecosystem get a more convenient, more efficient and more reassuring way to pay and be paid.
We let AI take part in a transaction only within an explicit authorization. It executes the person’s intent faithfully, and the person can always supervise, intervene and revoke. That is the guard against misuse, overreach and loss of control, and it is how the value AI creates in commerce reaches the people it works for.
- Vision
- Human-centred agent commerce: more efficient, a better experience, and people stay in charge of their own money.
- Mission
- Build the trusted payment infrastructure between AI agents and merchants, so that every transaction stays within the person’s intent and authorization.
Working with the first design partners.
A few companies, agent builders and merchants are shaping the first records with us. If your agents pay, or you sell to agents, write to us.