| 返回空 / null | 请求未带 PAYMENT-SIGNATURE 或 X-PAYMENT | 签名完成后在请求内带 PAYMENT-SIGNATURE 或 X-PAYMENT |
| invalid payment header | PAYMENT-SIGNATURE 内容无效 | 检查是否被截断 / 字符集错误 / 多次 base64 嵌套 |
| param_mismatch | 必填字段缺失、地址 / nonce 格式非法等参数相关问题 | 检查签名内的参数是否和返回不一致 |
| toAddr mismatch | Pay to 地址不一致和返回结果里的收款地址不一致收款地址为零地址 | 收款地址必须严格一致,且不能是 0x0000… |
| amount mismatch | 签名数量和返回的数量不一致 | 修改金额和返回结果一致,EIP-3009 签的 value 必须等于 返回里的 amount |
| unsupported_chain | network 解析出的 chainIndex 不支持 | 当前仅支持 X Layer (eip155:196) |
| payer_blocked | authorization.from 命中业务风控规则 | 联系 OKX 商务 / 风控申诉 |
| risk_address | payer 或 payTo 命中合规风控规则,黑名单 / 制裁地址 | 该地址不可用于 x402,切换地址 |
| resource mismatch | 签名时的接口 url ≠ 当前请求的接口 URL | sign 时必须用当前请求 URL;不要复用其他 URL 的 payload |
| no matching payment option | 付款的币种和接口要求的币种不一致 | 按返回的币种签名 |
| invalid_signature | 签名格式不合法(长度、r/s 范围、低 s、v 取值);deferred: Ed25519 验签失败 | 用 OKX 提供的 OKXEvmSigner ,不要手工拼 EIP-712;value/from 篡改无法被验证 |
| not_yet_valid | validAfter > now | 检查系统时间 |
| expired | exact 模式下 validBefore <= now(当前无 60s 宽限) | 检查系统时间 |
| invalid signature, nonce_used | EIP-3009 该 nonce 已上链消费 | 不要重放;重新生成 32-byte 随机 nonce 重新签 |
| insufficient_balance | 地址余额不足以支付本次调用费用 | 充值或减少并发支付 |
| onchain_error | 链上 multicall RPC 调用失败 / sub-call 返回失败 | 通常是节点抖动,重试 |
| payment processing | 相同签名在缓存期间内重复请求 | 不要在缓存窗口内重复提交相同签名 |