curl -i "https://test402.com/api/x402?quirk=version-as-string"
Returns 402 whose x402Version is quoted. The v2 spec types the field as a required number that must be 2, so this is a type violation, not a spelling.
Response it will return (HTTP 402)PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6IjIiLCJlcnJvciI6IlBBWU1FTlQtU0lHTkFUVVJFIGhlYWRlciBpcyByZXF1aXJlZCIsInJlc291cmNlIjp7InVybCI6Imh0dHBzOi8vdGVzdDQwMi5jb20vYXBpL3g0MDI/cXVpcms9dmVyc2lvbi1hcy1zdHJpbmciLCJkZXNjcmlwdGlvbiI6InRlc3Q0MDIgY2hhbGxlbmdlIiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sImFjY2VwdHMiOlt7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzMiIsImFtb3VudCI6IjEwMCIsImFzc2V0IjoiMHgwMzZDYkQ1Mzg0MmM1NDI2NjM0ZTc5Mjk1NDFlQzIzMThmM2RDRjdlIiwicGF5VG8iOiIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDIiLCJtYXhUaW1lb3V0U2Vjb25kcyI6MzAwLCJleHRyYSI6eyJuYW1lIjoiVVNEQyIsInZlcnNpb24iOiIyIiwiYXNzZXRUcmFuc2Zlck1ldGhvZCI6ImVpcDMwMDkifX1dLCJleHRlbnNpb25zIjp7Imh0dHBzOi8vdGVzdDQwMi5jb20vZXh0ZW5zaW9ucy9mYWNpbGl0YXRvciI6eyJpZCI6Ing0MDJvcmciLCJ1cmwiOiJodHRwczovL3g0MDIub3JnL2ZhY2lsaXRhdG9yIn19fQ==
{
"x402Version": "2",
"error": "PAYMENT-SIGNATURE header is required",
"resource": {
"url": "https://test402.com/api/x402?quirk=version-as-string",
"description": "test402 challenge",
"mimeType": "application/json"
},
"accepts": [
{
"scheme": "exact",
"network": "eip155:84532",
"amount": "100",
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"payTo": "0x0000000000000000000000000000000000000402",
"maxTimeoutSeconds": 300,
"extra": {
"name": "USDC",
"version": "2",
"assetTransferMethod": "eip3009"
}
}
],
"extensions": {
"https://test402.com/extensions/facilitator": {
"id": "x402org",
"url": "https://x402.org/facilitator"
}
},
"note": "test402 scenario. quirk=version-as-string"
}