Payments
Agentic Payments (x402)
FurlPay implements x402 and the Machine Payments Protocol (MPP) for HTTP "Payment Required" challenges. On 11 October 2026, the production x402 endpoint returned 503 controls_unavailable with reason plan_limit. x402 and MPP settlement are also not currently enabled for production payments.
Protocol support is not settlement availability
The flow
When a settlement rail is enabled, the intended sequence runs through the facilitator's verification guards before the resource is served. The diagram documents that flow; it is not evidence that production settlement is configured:
1. Request the resource
When operational controls are available, an unpaid request is intended to return 402 with a machine-readable payment quote. The production endpoint currently returns 503. Any quote fields below are illustrative; use values returned by a healthy endpoint and never hardcode a recipient or network:
curl -i "https://furlpay.com/api/x402/fx?from=USD&to=EUR&amount=100"
HTTP/1.1 402 Payment Required
{
"x402Version": 1,
"accepts": [{
"scheme": "exact",
"network": "<network-from-current-challenge>",
"maxAmountRequired": "10000", // 0.01 USDC (6 decimals)
"asset": "<asset-from-current-challenge>",
"payTo": "<payTo-from-current-challenge>",
"resource": "https://furlpay.com/api/x402/fx",
"extra": { "quoteId": "…", "expiresAt": 1782943200, "binding": "…" }
}]
}2. Pay and retry
The protocol client signs an EIP-3009 transferWithAuthorization for the quoted amount and retries with the base64 payload in the X-PAYMENT header. A live paid response requires a configured settlement rail; do not treat the example below as a response that is available in production today.
curl "https://furlpay.com/api/x402/fx?from=USD&to=EUR&amount=100" \
-H "X-PAYMENT: $(base64_signed_payload)"
HTTP/1.1 200 OK
X-PAYMENT-RESPONSE: eyJzdWNjZXNzIjp0cnVl…
{ "paid": true, "payer": "0x1111…", "quote": { "rate": 0.917, "amountTo": 91.7 } }Hardened verification
With agents, the payment is the authentication — so payment verification is the entire security boundary. Furlpay defends the four attack classes from 2026 x402 research (arXiv 2605.11781 / 2605.30998):
- Authorization — amount, recipient, and network are re-checked server-side; the client's echoed requirements are never trusted.
- Binding — each quote carries an HMAC over
(resource, method, amount, expiry); a payment for one endpoint fails closed on every other. - Replay — quote IDs and nonces are single-use with a 300-second expiry.
- Web-layer — the header is size-capped and strictly parsed; malformed input returns 400, never a free resource.
Related agent controls
