402 with machine-readable payment requirements; you sign a USDC transfer, attach it as the X-PAYMENT header, and retry. The gateway verifies the payment with the facilitator, settles on-chain, and proxies your request to the upstream service — all within the same HTTP round trip.
GET /gateway/:orgSlug/:routePath
The paid proxy endpoint. Every route you create is reachable at this pattern.Path parameters
Your organisation’s URL slug, visible in the dashboard under Settings → General.
The route path you configured when creating the route, e.g.
weather/forecast.Request headers
Base64-encoded signed x402 payment payload. Omit this header on the first (probe) request to receive the
402 challenge. Include it on the retry to authorise payment and receive the proxied response.Step 1 — Unpaid probe (402 Payment Required)
When you call a route without a valid X-PAYMENT header the gateway returns 402 and sets X-Payment-Requirements with a JSON object describing exactly what you need to pay.
Step 2 — Paid request (200 OK)
Use the requirements to construct and sign an ERC-3009 transferWithAuthorization payload, then send it as the X-PAYMENT header.
Sign the payment
Use the x402 client library to sign a USDC transfer using the details from
X-Payment-Requirements.Full flow reference
Error codes
The table below covers errors specific to the payment proxy path.| Code | HTTP Status | Cause |
|---|---|---|
NONCE_REPLAY | 400 | The payment nonce in X-PAYMENT has already been used. Generate a fresh signed payment. |
ROUTE_NOT_FOUND | 404 | No active route matches the requested orgSlug / routePath combination. |
ORG_SUSPENDED | 403 | The organisation associated with this route has been suspended. Contact support. |
Each payment nonce is single-use. If you retry an identical
X-PAYMENT payload you will always receive NONCE_REPLAY. Your x402 client library handles nonce generation automatically on each signing call.