{"how":{"endpoint":"POST /api/settlement-verify","free":true,"purpose":"Three-way match for an x402 EIP-3009 authorization: (1) the signature recovers to `from`, (2) USDC.authorizationState(from, nonce) is consumed on-chain, (3) the settlement tx's USDC Transfer log matches from/to/value exactly, (4) the settled block sits inside the validity window.","body":{"authorization":{"from":"0x… payer address","to":"0x… payee address","value":"amount in USDC base units (string or number)","validAfter":"unix seconds","validBefore":"unix seconds","nonce":"0x… bytes32","v":27,"r":"0x… bytes32","s":"0x… bytes32"},"txHash":"0x… settlement transaction (optional — without it, checks 3–4 are not run and `verified` rests on signature + consumed nonce)","network":"\"8453\" (optional, default — Base only for now)"},"verify_status":"verified — every required leg passed. failed — a VISIBLE mismatch (bad signature, visible settlement that does not match, settled block outside the validity window). unverified_pending — signature valid but a chain leg was still not visible after the re-check window (~0s/+5s/+15s/+30s); NOT a failure, retry after retryAfterSeconds. unverified_verifier_down — a chain read failed, no determination made. Each check also carries a per-leg `state`: pass | fail | pending | error | not_checked.","network":"Base (8453), USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}