After you pay: payment status
Your paid call timed out, or came back 5xx or an empty 402. Did the money move? POST https://api.402xagent.com/v1/products/payment-status with JSON {"payment_payload":"<base64 PAYMENT-SIGNATURE you sent>","seller_url":"<url you paid>"} (or tx_hash, or from + nonce + valid_before). Base USDC (EIP-3009 exact) only for now.
- status: landed (on-chain, 10+ confirmations), not_landed, pending (could still land, or too few confirmations), canceled, unknown.
- safe_to_retry_same_payload: always true. An EIP-3009 nonce is single-use, so resending the same signed payment can never charge twice.
- safe_to_resign: true only when two independent RPC sources agree the nonce is unused and the chain is past validBefore + 120 s. Any doubt, disagreement, single source or error means false: don't sign a new payment yet (see
wait_until). - Also: the tx (amount, payTo, block, confirmations), a match against the seller's 402 terms, who to claim from and with what evidence, and what we can't know (delivery, seller state, facilitator internals, reorgs).
- Every answer carries a signed copy in
receipt(same keys as below). Same price as the check, $0.02, and the same 5 free per day. A bare request returns the x402 402. In x402-spotcheck 1.2.0:afterPay()orspotCheckFetch(fetch, { afterPay: true }).
Worked example: a paid call that timed out but settled (402rates-ping, Oct 16, 2026)
A real case from our own client. Facts only; times are Pacific (UTC-7).
- 10:49:28: the seller's 402 asked $0.001 (amount
1000, USDC on Base) to payTo0xf567…cb98,maxTimeoutSeconds300. The client signed and sent the paid retry. - ~10:49:48: the client gave up after 20,359 ms. No response body was delivered.
- 10:51:19: the authorization settled on-chain in block 52691866 (tx
0x2b4cc694…13ee, from0x37cf…8674(our payTo; Verified owner), relayer0xa32c…d101). - 11:12:28: one free payment-status check with
tx_hash,from,nonceandseller_url(no payload needed when you have these).
Answer: status landed (reason settled_onchain, 634 confirmations), amount and payTo match the seller's 402 terms, two RPC sources (Alchemy and Infura) agreed, safe_to_resign false. So: don't sign a new payment; the money moved, and the next step is to ask the seller for the response or a refund, using the tx as evidence. Signed receipt: https://402xagent.com/v1/receipts/ps-65a4fdffae01d2b6.