What an x402 payment through our facilitator costs, what we accept, every reason we refuse one, and what happens when something breaks. Last updated October 19, 2026.
GET https://x402-agent-pay.com/policy. Every 402 payment response names it.| Field | Value |
|---|---|
| Asset | USDC |
| Network | Base L2 (chain 8453) |
| Mechanism | x402 v2 — EIP-3009 transferWithAuthorization |
| Payee | 0x367F…51a03 (AgentPay treasury) |
| Minimum | $0.001 USDC |
| Service | Fee |
|---|---|
| Verify a payment | Free |
Cost preview (/facilitator/cost) | Free — all-in cost before you sign |
Dry-run a settle (/facilitator/simulate) | Free — verdict plus refusal reasons |
| Settle | No facilitator fee. The USDC transfers to the payee; settlement gas is on us for in-scope resources |
| Payee disbursement rail | 1% of the disbursed amount, only on successful on-chain disbursement |
We are scoped: the facilitator settles payments for resources paying the AgentPay treasury. It is not a public gas relay — payments to other payees are refused with PAYEE_NOT_SERVED_HERE.
A payment that fails any of these checks never executes. The paid endpoint returns 402, nothing is charged, nothing settles.
| Refusal | Meaning |
|---|---|
MALFORMED_PAYLOAD | The payment header is not valid x402 JSON |
MISSING_AUTHORIZATION | No EIP-3009 authorization in the payment |
MISSING_SIGNATURE | No EIP-712 signature over the authorization |
SIGNATURE_MISMATCH | The signature does not recover to the payer |
UNSUPPORTED_SCHEME | Not an x402 v2 payment |
UNSUPPORTED_NETWORK | Chain is not Base L2 |
UNSUPPORTED_ASSET | Asset is not USDC |
MALFORMED_AMOUNT | Amount is not a valid integer |
INSUFFICIENT_AMOUNT | Below the $0.001 minimum |
WRONG_PAYEE | payTo is not the treasury address |
PAYEE_NOT_SERVED_HERE | Payee is outside facilitator scope |
AUTHORIZATION_NOT_YET_VALID | Authorization validAfter is in the future |
AUTHORIZATION_EXPIRED | Authorization validBefore has passed |
AUTHORIZATION_ALREADY_USED | This authorization nonce has already been spent on-chain |
INSUFFICIENT_FUNDS | Payer balance below the amount |
STALE_SIMULATION | The state has moved since your dry-run snapshot |
SETTLE_UNREACHABLE | Settlement provider unreachable; nothing charged |
CHAIN_READ_FAILED | On-chain state unreadable; nothing charged |
RATE_LIMITED | Too many requests; retry after the window |
/facilitator/cost and /facilitator/simulate before signing anything. Both are free, both send no payment.curl https://x402-agent-pay.com/policy
One JSON file: scheme, accepted tokens, fees, refusal rules, failure handling, discovery links. CORS-enabled, no key required. Try the whole payment flow free in the sandbox wizard first.