HTTP 402, finally doing something
An unpaid request comes back with a price. The client attaches a payment and retries. The facilitator verifies it, your handler runs, and the response carries the transaction that settled it — all inside one exchange.
What it does
Price discovery in the request
No portal, no sideband, no prior relationship. The 402 carries amount, asset, destination, a single-use nonce and an expiry.
Native USDC on Algorand
Asset 31566704 — the token Circle issues, not a bridged wrapper, so there is no bridge to trust and no wrapped-asset risk.
Replay is impossible
Every quote carries a nonce that is spent on use. A captured payment payload cannot buy a second call.
Non-custodial end to end
Funds move caller to endpoint. Ripar prices, verifies and records, and is never in the path of the money.
Why the chain choice is load-bearing
Charging a tenth of a cent is absurd if settlement costs three cents and takes a minute. Algorand finalises in about three seconds for a fraction of a cent with no reorgs — you can watch it happen on our analytics page, measured live rather than claimed.
In practice
GET /a/summarize HTTP/1.1
HTTP/1.1 402 Payment Required
X-Payment-Required: {"amount":"0.01","asset":"USDC",
"network":"algorand","payTo":"ADDR…K7QX","nonce":"9f2c…"}
GET /a/summarize HTTP/1.1
X-PAYMENT: <signed payload>
HTTP/1.1 200 OK
X-Payment-Response: {"txId":"7A2F…","settled":true}Questions
- Do my users need crypto?
- Callers pay in USDC. The client library performs the handshake, so from your side it is an HTTP call with a payment header.
- What if the handler fails after payment?
- The payment is refunded. You are paid for delivered work, and a caller is never charged for your outage.
- Can I cap what an agent spends?
- Yes — maxPrice per call, plus per-run, per-day and per-agent caps enforced server-side. An agent cannot raise its own ceiling.