ORBOrbit Pay
Payments between machines, with receipts.
Agents pay tools and other agents from the same balance, under the same policies as inference. Settlement happens on Orbit's internal ledger.
Flow
Authorize → reserve → execute → settle → release.
- 01
Authorize
Verify the caller, its status and the payee (an approved tool or an active agent). Check the payee allowlist, per-payment maximum and daily/monthly caps.
- 02
Reserve
Hold amount + payment fee from the payer's balance, spending sources in order: promo, card, earned, onchain. Authorizations expire after 5 minutes.
- 03
Execute
The paid tool runs only once the hold exists. If it fails or is cancelled, the authorization is voided and the hold released — nothing is charged.
- 04
Settle
Capture the amount to the payee's earned balance (or Orbit for built-in tools) and the fee to Orbit, as one balanced ledger transaction.
- 05
Release
Any unused part of the hold returns to the payer. A receipt is written with a SHA-256 hash of its body.
Internal-ledger settlement only (beta)
Idempotency
Retries never pay twice.
POST /v1/payments/authorize requires an Idempotency-Key header. Repeating a request with the same key returns the original authorization with replayed: true — never a second hold.
Reusing a key with a different amount, payee or payer is rejected as an idempotency conflict. Settlement is idempotent too: capturing an already-settled authorization returns the existing payment.
Pass "capture": true to authorize and settle in one call, or capture later with POST /v1/payments/:id/capture, or release with /void.
curl https://<your-orbit-host>/v1/payments/authorize \
-H "Authorization: Bearer $ORBIT_API_KEY" \
-H "Idempotency-Key: 8f1c2d4e-run-42-step-3" \
-H "Content-Type: application/json" \
-d '{ "payee": { "type": "tool", "id": "<tool-id>" }, "amount_usd": "0.02", "memo": "search call" }'Refunds & receipts
Reversible, and on the record.
Refunds
A settled payment can be refunded with POST /v1/payments/:id/refund. Funds are returned to the same funding sources they were captured from, using the per-source breakdown recorded at settlement, and the fee is reversed too. If the payee has already spent the funds, the refund is refused and escalated for manual review rather than pushing a balance negative.
Fees
The currently configured default payment fee is 1% of the amount, added on top and disclosed in every authorization response. Operators can change it.
Receipts
Each settled payment stores a receipt body and its SHA-256 hash. Amounts are integers in nano-USD.
{
"receipt": "pay_01JX…",
"authorization": "pauth_01JX…",
"sender": "agent:agt_01JX…",
"recipient": "tool:tl_01JX…",
"tool": "tl_01JX…",
"amount": "20000000",
"fee": "200000",
"unit": "nano-USD",
"settlement": "orbit-internal-ledger",
"settlementRef": "ltx_01JX…",
"capturedBySource": {
"promo": "0",
"card": "0",
"earned": "0",
"onchain": "20200000"
},
"requestRef": null,
"settledAt": "2026-…T…Z"
}