Docs Updates

Changelog

LiveUpdated

View as Markdown

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 (assurance A0 to A3 and its anchors), both present on every new payment record, a top-level payee.identity and economics_ref; the linked kind recurrence; the relations recurrence_for and occurrence_of; identity evidence and the model’s input and output in the bundle. enruta-verify 0.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 with POST /v0/attestations and GET /v0/agents/{id}/identity (identity anchors), and the merchant check before paying, GET /v0/merchants/identity. Policies gain intent, identity_requirements and payee_identity; nine reason codes and six checks are added.
  • Money split. GET /v0/payment-requests/{id}/economics and GET /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_off with the rail, its reason, its message and the next step; nothing is paid, the budget reservation is released, the record seals at once and payment_request.handed_off is sent. A rail that fails while issuing hands off with rail_unavailable (5xx, 408, 425 or 429, a timeout, no connection) or rail_error, and such a payment can be requested again without counting as a duplicate (rails).
  • Mandate terms. retry_policy bounds retries: at most max_attempts attempts at one payment within window_seconds, the first included, and retry_limit_reached beyond them. visibility_scope keeps chosen constraints out of the mandate the merchant receives, committed to by hidden_constraints_digest, with their values in the bundle and the digest checked by the verifier. Every decision and every enruta/0.3 payment record carries retryable and retry_after. A consent revocation can take effect later and, with cascades_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-resource pays an x402 or MPP resource with the request’s mandate and returns the resource’s status, safe headers, body and receipt: MCP pay_http_resource, CLI enruta pay-resource, paymentRequests.payResource in TypeScript and payment_requests.pay_resource in 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_auth on the inspection, the X-Enruta-Agent-Verified and X-Enruta-Signature-Agent labels, the web_bot_auth_verified risk signal and the requireVerifiedBotSignature option. 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, the X-Enruta-Agent-Profile label and the ucp_signature_verified risk signal, and requireVerifiedBotSignature accepts either scheme (Accept middleware).
  • Platforms. Platform keys and the Enruta-Account header (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.ended and recurrence.occurrence_created; payment_request.handed_off also 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_recurrences and pay_http_resource, and a decision card that shows the questions, the assurance level, the merchant check and the money split; @enruta/sdk 0.3.0 and the Python SDK enruta 0.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-record now 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’s mode, refill_policy, finality_class, deviation, policy and ledger, deviations, catalog_snapshot_hash, policy_snapshot_hash, failure_class) and a second shape for linked records. enruta-verify 0.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. observe for policies in shadow mode; reason codes consent_revoked, agent_paused, finality_irreversible_cap, deviation_over_tolerance, over_original_amount, stage_not_reversible, rail_irreversible, past_cancellable_until. Policies gain mode, 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/keys issues a sandbox organization, agent key and developer key without a person; enruta sandbox keys does the same.
  • Sellers. @enruta/accept 0.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 with enruta validate and the public badge; seller pages in the console.
  • Tools. MCP server 0.2.0 with request_reversal, get_settlement, get_reconciliation, list_disputes and 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/exports filters 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.txt and llms-full.txt generated 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-verify 0.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.checks lists each check with its result; mandates carry currency, payee and the bound request hash.
  • Hand-off for merchants that complete checkout only on their own page: POST /v0/payment-requests/{id}/handoff and the hand_off_checkout tool, request state handed_off, mandate state void, webhook payment_request.handed_off. POST /v0/policies signs a policy with a developer key. complete_checkout: true lets Enruta execute a UCP checkout itself.