Docs Updates
Changelog
LiveUpdated
September 14, 2026: identity and intent, platforms, three roles
Trust as two separate checks, the money split of every payment, the platforms API, and the merchant side on the merchant’s own PSP.
- Evidence Record `enruta/0.3`. Optional
request.intent(words, slots, coverage, questions and answers),decision.judgement(rules and model),decision.result: clarify,agent.identity(assuranceA0toA3and its anchors), both present on every new payment record, a top-levelpayee.identityandeconomics_ref; the linked kindrecurrence; the relationsrecurrence_forandoccurrence_of; identity evidence and the model’s input and output in the bundle.enruta-verify0.3.0 checks them, with new vectors; records sealed earlier keep their schema (schema). - Trust model. Identity and intent are checked separately (trust model): questions for missing details with
POST /v0/payment-requests/{id}/clarifications, rules and an optional model on the person’s words (intent and clarification), six identity anchors from an agent key to on-chain collateral withPOST /v0/attestationsandGET /v0/agents/{id}/identity(identity anchors), and the merchant check before paying,GET /v0/merchants/identity. Policies gainintent,identity_requirementsandpayee_identity; nine reason codes and six checks are added. - Money split.
GET /v0/payment-requests/{id}/economicsandGET /v0/sellers/orders/{id}/economics: who pays, receives and earns on one payment, every line marked actual, estimate or plan, with its source and date (money split). - Recurrence is live:
POST /v0/recurrences, pause, resume and end, each occurrence decided like a payment and chained to the recurrence (recurrence). - Rails. Adapters for Mercury, Ramp, Bill.com (read-only evidence and single-bill approval), Stripe Shared Payment Tokens, Link, x402 and MPP. Each runs with your own account, or for x402 your own signer (rails).
- Rail hand-off. When a rail cannot issue a credential for a payment the policy allowed or a person approved, the request moves to
handed_offwith the rail, its reason, its message and the next step; nothing is paid, the budget reservation is released, the record seals at once andpayment_request.handed_offis sent. A rail that fails while issuing hands off withrail_unavailable(5xx, 408, 425 or 429, a timeout, no connection) orrail_error, and such a payment can be requested again without counting as a duplicate (rails). - Mandate terms.
retry_policybounds retries: at mostmax_attemptsattempts at one payment withinwindow_seconds, the first included, andretry_limit_reachedbeyond them.visibility_scopekeeps chosen constraints out of the mandate the merchant receives, committed to byhidden_constraints_digest, with their values in the bundle and the digest checked by the verifier. Every decision and everyenruta/0.3payment record carriesretryableandretry_after. A consent revocation can take effect later and, withcascades_scheduled, end the agent’s recurrences, unused mandates and pending approvals. A decision or an approval that fails inside Enruta is rolled back rather than left half done (decision, mandate, consent record). - Paying HTTP resources.
POST /v0/payment-requests/{id}/pay-resourcepays an x402 or MPP resource with the request’s mandate and returns the resource’s status, safe headers, body and receipt: MCPpay_http_resource, CLIenruta pay-resource,paymentRequests.payResourcein TypeScript andpayment_requests.pay_resourcein Python (API). - Sellers. Storefront is live at shop.enruta.ai: hosted UCP endpoints and an ACP shim, paid by mandate or on your own PSP account. PSP connections for Stripe, Adyen, Checkout.com, Braintree, PayPal and Worldpay write the agent labels, turn PSP refunds into reversals and list disputes. Dispute delivery sends packets into Stripe, Shopify, Adyen, Klarna, Chargeflow and Justt.
- Accept middleware. Web Bot Auth signatures are verified, not only parsed, against draft-ietf-webbotauth-httpsig-protocol-00 with the key from the agent origin’s own directory:
agent.web_bot_authon the inspection, theX-Enruta-Agent-VerifiedandX-Enruta-Signature-Agentlabels, theweb_bot_auth_verifiedrisk signal and therequireVerifiedBotSignatureoption. The Visa Trusted Agent Protocol is supported, waiting on Visa’s published agent keys. UCP agent-profile signatures (UCP-Agent: profile=…, the scheme of Shopify’s Signed traffic tier) are verified too, with the key the profile publishes:agent.ucp_signature, theX-Enruta-Agent-Profilelabel and theucp_signature_verifiedrisk signal, andrequireVerifiedBotSignatureaccepts either scheme (Accept middleware). - Platforms. Platform keys and the
Enruta-Accountheader (platform accounts, embedded calls), usage per account, the white-label verifier and its web component, dispute field feeds in Enruta, Chargeflow, Justt and Visa CE3.0 shapes, and PSP metadata for nine PSPs and orchestrators. - Controls. Approval delegation within a scope, approval requests in Slack, single sign-on for Enterprise, organization verification, and OpenTimestamps anchoring of the daily checkpoints (signed policy).
- Webhooks.
recurrence.created,recurrence.paused,recurrence.resumed,recurrence.endedandrecurrence.occurrence_created;payment_request.handed_offalso reports a rail hand-off, with the rail, the reason, the message and the next step (API). - Tools. MCP server 0.3.0 with fifteen tools, adding
answer_clarification,verify_merchant,get_economics,list_recurrencesandpay_http_resource, and a decision card that shows the questions, the assurance level, the merchant check and the money split;@enruta/sdk0.3.0 and the Python SDKenruta0.3.0; CLI 0.3.0 (attest,merchant verify,economics,platform accounts,storefront,recurrence); plugins for Cursor, Gemini CLI and OpenClaw (SDKs, MCP tools, CLI). - Roles and docs. The role views are Agents, Sellers and Platforms. The controls every user has (signed policy, shadow mode, weekly report, compliance export) form a Controls group on the Agents side, and
/docs/policy-of-recordnow redirects to Signed policy. The header lists Product, Agents, Sellers, Platforms, Docs and Pricing. - Pricing. The Agents sheet adds Enterprise, from $24,000 a year, with approval seats, single sign-on, signed policies across rails, the weekly report, the audit export and 24-month retention. Three price sheets and three units: the mandate, the agent order and the record. Never a percentage of the money.
September 13, 2026: the two-sided release
Both sides of an agent payment, and everything that follows it, in one release.
- Evidence Record `enruta/0.2`. Optional fields on payment records (
kind,chain,principal.login_id, the three intent layers,decision.risk,decision.shadow_result, the mandate’smode,refill_policy,finality_class,deviation,policyandledger,deviations,catalog_snapshot_hash,policy_snapshot_hash,failure_class) and a second shape for linked records.enruta-verify0.2.0 verifies both, with new vectors. - Six supporting objects, each a sealed linked record: reversal (
POST /v0/reversals,request_reversal, the mandate account and budget refill, the four merchant-side adjustment renderings), dispute packet with the representment PDF and six exports, settlement record, reconciliation line and weekly report signed by passkey or link, consent record and KYA attestation, and the risk assessment made with every decision. - Decisions.
observefor policies in shadow mode; reason codesconsent_revoked,agent_paused,finality_irreversible_cap,deviation_over_tolerance,over_original_amount,stage_not_reversible,rail_irreversible,past_cancellable_until. Policies gainmode,refill_policy,deviation,finality_rules,retry_policy,shadow,require_consent,reversal; the console shows the autonomy level of every policy. - Agent pause. An owner pauses an agent in one click, or a developer key calls
POST /v0/agents/{id}/pause; the pause is a sealed record. - Self-serve sandbox.
POST /v0/sandbox/keysissues a sandbox organization, agent key and developer key without a person;enruta sandbox keysdoes the same. - Sellers.
@enruta/accept0.1.0, the edge middleware for Cloudflare Workers, Vercel Edge, Fastly Compute, Hono and Node; seller keys and the/v0/sellers/…API; adjustments and merchant-initiated reversals; fulfillment confirmation; the seller-side dispute packet; the conformance suite withenruta validateand the public badge; seller pages in the console. - Tools. MCP server 0.2.0 with
request_reversal,get_settlement,get_reconciliation,list_disputesand the reversal card; SDK 0.2.0; CLI 0.2.0 (reversals,disputes,reconciliation,settlements,consents,agents,validate,sandbox keys,--schema); Claude Code plugin 0.2.0 with the refund, shadow-mode and prompt-injection sections in the skill. - Exports.
POST /v0/exportsfilters by person, period and kind and includes consents and linked records (compliance export). - Docs. Role pages for agents, sellers and platforms; nineteen new docs pages under Objects, Sellers, Guides and what is now the Controls group; a role view (
?role=), a status badge and an updated date on every page;/.well-known/skills/index.json,/agent-guide.md,/.well-known/api-catalog;llms.txtandllms-full.txtgenerated from the docs; a Markdown twin of every page at/docs/<page>.md. - Pricing. The ship-date labels on the Accept middleware and the dispute packet are gone; both are live.
September 8 to 10, 2026
- Documentation published: concepts, Evidence Record schema v0, verifier behavior, API and MCP reference;
llms.txt,llms-full.txt, Copy page as Markdown. - Evidence Record schema
enruta/0: sixteen core fields and the six-field B2B addendum. enruta-verify0.1.0: the single-file verifier and the JSON Schema, with published test vectors (a valid chain, a tampered record, a back-dated record, a chain gap) time-stamped by public RFC 3161 authorities.- Published on npm:
enruta-verify,@enruta/mcp(the stdio MCP server) and@enruta/cli; the Claude Code plugin at github.com/enruta-ai/claude-plugin. - Console, API and remote MCP live at app.enruta.ai, api.enruta.ai and mcp.enruta.ai; the reference merchant at reamandrule.com; OAuth 2.1 for hosted connectors; Stripe Issuing as the production default rail.
- Approvals carry a
state(approved,declined,expired);decision.checkslists each check with its result; mandates carrycurrency,payeeand the bound request hash. - Hand-off for merchants that complete checkout only on their own page:
POST /v0/payment-requests/{id}/handoffand thehand_off_checkouttool, request statehanded_off, mandate statevoid, webhookpayment_request.handed_off.POST /v0/policiessigns a policy with a developer key.complete_checkout: truelets Enruta execute a UCP checkout itself.