402 body, the HTTP headers, the verify and settle payloads, and the standardized error codes. For how these fit together, see x402 Concepts and Glossary. For calling the endpoints, see Integration.
HTTP headers
The 402 body (PaymentRequired)
A server returns this JSON with a 402 status. The accepts[] array holds one entry per way to pay; the caller chooses one.
PaymentRequirements
Each entry inaccepts[] fully describes one payment option.
The signed payment payload
The caller signs an authorization and sends the payload base64-encoded in thepayment-signature header. The shape of the inner authorization depends on the transfer mechanism.
authorization, permit2Authorization, or delegation is present, matching the chosen mechanism. The facilitator settles all four mechanisms, but the Fireblocks x402 Agent signs only eip-3009 and permit2; it does not produce erc7710 delegation payloads, because Fireblocks cannot sign delegations. See Transfer mechanisms.
Facilitator request and response shapes
The merchant server calls the facilitator with the same body shape for both verify and settle: the signedpaymentPayload plus the paymentRequirements it advertised.
success is false and errorReason carries one of the error codes below.
Supported capabilities
GET /api/payments/supported is public and reports what the facilitator accepts:
Discovery resource shape
GET /api/discovery/resources lists discoverable products. Each item is a resource an agent can act on:
Error codes
The facilitator returns these standardized x402 error codes ininvalidReason (verify) or errorReason (settle).
What to read next
- Integration — the endpoints that consume and emit these shapes.
- x402 Troubleshooting and FAQ — what these errors mean in practice and how to resolve them.
- Payment Instruction Integrity — the
integrityenvelope andX-402-Integrityheader.