Skip to main content
This page is a field reference for the x402 v2 messages the Fireblocks facilitator emits and accepts: the 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 in accepts[] fully describes one payment option.

The signed payment payload

The caller signs an authorization and sends the payload base64-encoded in the payment-signature header. The shape of the inner authorization depends on the transfer mechanism.
Exactly one of 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 signed paymentPayload plus the paymentRequirements it advertised.
Verify response validates the signature off-chain without moving funds:
Settle response reports the on-chain result:
On failure, 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:
Only fixed-price (native-denomination) rows appear; USD-converted rows are omitted. See Publish to the discovery catalog.

Error codes

The facilitator returns these standardized x402 error codes in invalidReason (verify) or errorReason (settle).