One stack for both sides of the purchase. Enruta checks the agent and the intent, decides against the policy, pays the merchant and seals one record both sides can verify.

Five stages, one evidence ledger.

  1. 01Discovery
    • Catalog serving
    • GEO and AI visibility
    • Recommendations (planned)
    • Price matching (planned)
    • AI assistant integrations
  2. 02Order
    • Agent checkout protocols
    • Mandates
    • Closed-loop checkout
    • Inventory sync (planned)
    • Cross-protocol support
  3. 03Risk
    • KYA interoperability
    • Agent-native risk control
    • Immutable order records

    Risk Control on Enruta | Christmas Checkpoint 2:01

    Watch on YouTube
  4. 04Payment
    • Rail execution
    • Cross-border settlement (planned)
    • Reconciliation
    • Compliance evidence
  5. 05Post-purchase
    • Disputes and chargebacks
    • Refunds and returns
    • Buyer and merchant protection (planned)
Agent evidence ledgerIdentity, mandate, consent and decision trail, sealed in one record.

Planned, not running yet

One payment and what follows it. Click through, or use the arrow keys.

Step 1 of 8: The agent asks

The agent asks

One tool call with the payee, the amount, the purpose and the evidence it has. No card number anywhere.

Sample data
The calls behind this step
> request_payment
    agent=agt_procurement_02  payee=reamandrule.com (verified)
    amount=168.40 USD  purpose="20 reams A4 paper, 1 stapler"
    checkout=ucp:chk_8f3…  evidence=[quote sha256:…]  idempotency=a3c9…

Two questions, checked separately: who the agent is, and whether this is what the person meant.

Intent decided on the user’s side

User → asks → Agent → request → Enruta

slotsrulesmodelquestions

↓ signed mandate → Merchant

Identity checked both ways

The merchant checks the agent

keycoderuntimeentity

The agent’s side checks the merchant

domainkeyssignature

Rail · PSP the payment executes here

Intent, on the user’s side. The person’s words become slots the policy checks. Rules decide first. If the policy allows, a separate model judges the rest, and its inputs are hashed into the record. A gap becomes a question, not a guess.

Identity, both ways. The merchant checks the agent’s anchors and gets an assurance level, A0 to A3. Before paying, the agent’s side checks the merchant’s domain, keys and checkout signature.

The trust model in the docs

A policy the user signed, evaluated in order, reserved atomically.

Try the sample policy. Change the payee, the amount or the category and watch the decision, the reasons and what would be compiled onto the card.

Payee→Category→Window→Cap→Budget→Duplicate→Screening→Threshold→Allow/Step-up/DenyAny failed check denies; the budget is reserved at the moment it passes.

pol_office_supplies · version 7 · budget left $400.00 of $1,000

Policy: verified payees only · office supplies or shipping · ≤ $200 per payment · $1,000 a month · above $150 a person signs.

Decision

Step-up

  • approval_required Above $150: a named person must sign
Approval
Asked of the approver
Method
Passkey, bound to the request hash
Expires
In 15 minutes
Mandate
Issued after the signature

Every user also gets shadow mode, approvals from phone or Slack, scoped delegation, a one-click pause and a signed weekly report.

More on policiesThe controls

The mandate becomes the rail’s own control.

Enruta decides first, then compiles the decision into each rail’s control: a card limit, a spend limit, a bill approval or a checkout proof.

A single-use virtual card on the connected Stripe account: amount equal to the mandate, the payee as the allowed merchant, expiry equal to the mandate’s. The real-time authorization request is answered against the mandate inside the two-second window.

The card token reaches the payee. The card number never reaches the agent and is never stored by Enruta.

One file per payment. Verifiable in 2033 without us.

Sealed bytes

  • rec_…VZ sha256 e91a…0c3d
  • prev …

↓ prev hash

  • rec_…W6 sha256 b0d4…71c9
  • prev e91a…0c3d

↓ prev hash

  • rec_…X1 sha256 4c2f…a9e0
  • prev b0d4…71c9

↓ rolled into

  • daily root
  • signed checkpoint

Each record has a bundle outside its bytes: RFC 3161 time-stamps, proofs and keys. Renewals never change the record hash.

Sixteen core fields that AP2, ACP, UCP, x402, MPP, card authorizations and accounting exports all map into, six more for B2B rails, and since enruta/0.3 the intent, the judgement and both parties’ identity.

Canonicalized, hashed, chained, rolled into a daily root and time-stamped. Later proofs live in a companion bundle, so the record itself never changes.

Explore the record

Joined per payment, exceptions surfaced weekly.

  1. credential→
  2. authorization→
  3. posted transaction→
  4. receipt→
  5. ledger

One line per mandate joins the agent, the rail, the merchant’s order and every adjustment. Nine exception codes each suggest an action. Every Monday the approver signs last week’s report, and it seals as a record.

Reconciliation in the docs

Every payment shows where its money went, and what Enruta earned.

The user pays for the goods. The merchant pays its PSP a fee, shared by the issuer, the network, the acquirer and the PSP. The agent platform earns from its own fees. Enruta is paid one fee per payment, invoiced monthly. Every line is marked actual, estimate or plan.

The user
Pays the price of the goods and receives the goods.
The merchant
Pays its PSP’s fee and receives the price, less that fee. Earns its margin on the goods.
The PSP and acquirer
Receives the fee and pays interchange and network fees out of it. Earns what is left of the fee.
The card issuer
Receives interchange and earns from it.
The card network
Receives network fees and earns from them.
The agent platform
Receives nothing from the payment. Earns its subscription, or its own fee to the merchant.
Enruta
Receives nothing from the payment. No plan: 0.1% + $0.03 a successful payment, at least $0.05; the sandbox is free. The merchant pays when it is on Enruta; otherwise the agent account that started the payment pays the same fee.

Who pays whomThe money split in the API

The merchant recognizes the agent order and keeps the evidence.

One edge middleware, or a hosted storefront, recognizes the agent, verifies the mandate, labels the order and seals a record chained to the buyer’s. Refunds, disputes and reconciliation use the same objects.

  • The agent recognized, the mandate verified, the order labelled with agent_id, mandate_ref and policy_version, a signed risk signal, a sealed record of its own

One key runs Enruta for every customer of a PSP, a dispute service or an agent platform.

A platform creates an Enruta account for each of its customers and calls the same API for them, naming the account in a header. Each customer keeps its own policies, budgets, keys and records. Priced by the record.

  • An Enruta account per customer, created and keyed through one platform key, with usage per account

    Platform accounts

All five are live.

The same fifteen tools in every host.

The plugin bundles the MCP server, the enruta-pay skill and a hook that blocks checkout calls without a mandate.

/plugin marketplace add enruta-ai/claude-plugin
/plugin install enruta@enruta

Quickstart

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.

See what you’ll pay

Every price is public, on one page.

Pricing

Start building

A sandbox organization and keys from one call, without a person.

Quickstart