One mandate, every rail. Enruta compiles each mandate into the rail’s own control and matches what the rail posts back to the record.

What the mandate becomes.

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.

The call that creates it
// on allow — on the customer's Stripe account, with a key the administrator scoped
issuing.cards.create({
  cardholder: "ich_agent_procurement_02",
  type: "virtual",
  spending_controls: {
    spending_limits: [{ amount: 16840, interval: "per_authorization" }],
    allowed_merchant_countries: ["US"],
  },
  metadata: { mandate: "mnd_7c2a…d1f0", agent: "agt_procurement_02" },
})

// issuing_authorization.request → answered in 44 ms
{ "approved": true, "metadata": { "mandate": "mnd_7c2a…d1f0" } }

Scoped credentials

An administrator creates a restricted key or a limited role on the rail’s side and enters it in the console. Enruta can do what that credential allows and nothing more.

No card numbers

Tokens and references only. The agent-facing tools reject anything that looks like a card number; the storage layer has no field for one.

Two-second answers

Where a rail asks Enruta in real time, as Stripe Issuing does, the answer is a lookup against the mandate that adds under 10 ms (44 ms end to end, measured on Stripe Issuing), recorded with the time it took.

Thin adapters

Each rail is one adapter with three duties: compile the mandate into the rail’s control, answer or observe the authorization, match the posting back to the record.

Protocol checkouts

UCP and AP2 merchants receive the checkout mandate proof they require; x402 and MPP payments are made by adapters that seal their receipts.

No fee on execution

Enruta adds no fee on execution. A mandated payment is one sealed record whether Enruta executed it or only recorded it.

Rail setup in the docs