PAYMENT-REQUIRED is raw JSON (not base64)

Quirk · GET /api/x402/header-raw-json · 402 / Challenge Construction

Sends the PAYMENT-REQUIRED requirements as raw JSON instead of base64.

Explanation

The PAYMENT-REQUIRED value is sent as raw JSON rather than base64-encoded as the spec requires. Strict clients that base64-decode first will fail to parse it. The merchant's challenge encoder is wrong.

What to watch

Strict base64 decoders fail to parse the header.

Facilitator

Settled against the live Radius testnet facilitator (https://facilitator.testnet.radiustech.xyz). A valid payment runs a real /verify and /settle on-chain.

Metadata

Back to catalog