{"slug":"kertivo-com-check-e26e2c","title":"Payment verification for x402","host":"kertivo.com","method":"POST","resource":"https://kertivo.com/check","category":"other","description":"Payment verification for x402: verify a USDC transaction on Base — did this payment really settle, and did it pay the right address the right amount? Send a tx hash (or x402 authorization): confirmations, real-USDC transfer check, expectedPayTo/expectedAmount match, fake-USDC and lookalike-address w","price_listed":0.01,"price_asked":null,"state":"effects","state_label":"Not tested: has real-world effects","checks_7d":0,"answered_7d":0,"latency_ms_median":null,"reported_calls_30d":3,"reported_payers_30d":2,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"expectedAmount":"1","expectedPayTo":"0x509E55c4F898B43C856Fb0E51048B1b7bFBC9eDE","txHash":"0xc37cbdfa44230f05129348d5160254abf354791d79de68228b201ba09de143c1"},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"description":"Provide txHash, or authorization (EIP-3009) when you have no tx hash, or both.","properties":{"authorization":{"description":"Optional EIP-3009 authorization (x402 exact payload) to check when there is no tx or the tx is not found","properties":{"from":{"pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"nonce":{"pattern":"^0x[0-9a-fA-F]{64}$","type":"string"},"validAfter":{"type":["string","integer"]},"validBefore":{"description":"unix seconds","type":["string","integer"]}},"required":["from","nonce"],"type":"object"},"expectedAmount":{"description":"Expected USDC amount, decimal (e.g. \"0.01\")","type":["string","number"]},"expectedPayTo":{"description":"Expected recipient (full-address, case-insensitive compare)","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"expectedPayer":{"description":"Optional expected payer (aliases from, payer): the USDC Transfer's from must equal it","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"minAmount":{"description":"Optional floor (aliases min_amount, min): payment must be at least this many USDC; unlike expectedAmount it is not exact","type":["string","number"]},"selfAddresses":{"description":"Optional: other addresses you control; funding from them counts as self_funded","items":{"type":"string"},"maxItems":10,"type":"array"},"token":{"description":"Optional (aliases asset, currency): \"USDC\" or the Base USDC contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (apexfaucet-style). Any other token is a 400 unsupported_token, not charged. Responses always echo token \"USDC\".","type":"string"},"txHash":{"description":"Base mainnet transaction hash","pattern":"^0x[0-9a-fA-F]{64}$","type":"string"}},"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"properties":{"attestation":{"description":"Signed response (EIP-191 by the key at /.well-known/attestation, not a wallet) over sha256 of this body minus attestation; present when signing is enabled","type":"object"},"authorization":{"description":"Present when authorization was given: {from, nonce, used, chainTime, validBefore, expired}","type":"object"},"block":{"type":["integer","null"]},"confirmations":{"type":"integer"},"confirmed":{"type":"boolean"},"found":{"type":"boolean"},"funding":{"properties":{"payeeFundedPayer":{"type":"boolean"},"reason":{"description":"Only present when verdict=unknown","enum":["no_inbound_in_window","scan_incomplete"],"type":"string"},"scannedBlocks":{"properties":{"complete":{"type":"boolean"},"from":{"type":"integer"},"to":{"type":"integer"}},"type":"object"},"topFunders":{"type":"array"},"verdict":{"enum":["external","self_funded","unknown"],"type":"string"}},"type":["object","null"]},"ignoredFields":{"description":"Request fields Kertivo Check did not use (they did not affect the answer); only present when there were any","items":{"type":"string"},"type":"array"},"match":{"properties":{"amountMatch":{"type":["boolean","null"]},"minAmountMatch":{"description":"only when minAmount given","type":["boolean","null"]},"ok":{"type":"boolean"},"payToMatch":{"type":["boolean","null"]},"payerMatch":{"description":"only when expectedPayer given","type":["boolean","null"]}},"type":["object","null"]},"mode":{"enum":["live_paid","demo"],"type":"string"},"payment":{"properties":{"amount":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"type":["object","null"]},"receipt":{"properties":{"blocksScanned":{"properties":{"complete":{"type":"boolean"},"from":{"type":"integer"},"to":{"type":"integer"}},"type":["object","null"]},"priceCharged":{"description":"'0.01 USDC' on /check, '0' on /demo","type":"string"},"reason":{"enum":["no_inbound_in_window","scan_incomplete",null],"type":["string","null"]},"rpcCalls":{"type":"integer"},"verdict":{"enum":["external","self_funded","unknown",null],"type":["string","null"]}},"required":["blocksScanned","rpcCalls","priceCharged","verdict","reason"],"type":"object"},"settlement":{"description":"Added field: did the payment settle on-chain?","properties":{"note":{"description":"For settled: delivery/response by the seller cannot be verified on-chain","type":"string"},"reason":{"enum":["confirmed_onchain","pending_confirmation","authorization_used","tx_not_found","tx_reverted","no_usdc_transfer","zero_value_transfer","authorization_unused","authorization_unused_or_expired","authorization_unused_pending"],"type":"string"},"verdict":{"enum":["settled","not_settled"],"type":"string"}},"type":"object"},"status":{"type":["string","null"]},"summary":{"type":"string"},"timestamp":{"type":["string","null"]},"usdcTransfers":{"items":{"properties":{"amount":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"}},"type":"object"},"type":"array"},"warnings":{"items":{"properties":{"code":{"enum":["fake_token","lookalike_address","tx_reverted","no_usdc_transfer","zero_value_transfer","bridged_usdbc","amount_looks_atomic"],"type":"string"},"message":{"type":"string"}},"type":"object"},"type":"array"}},"required":["found","summary","mode","receipt"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[],"description_full":"Payment verification for x402: verify a USDC transaction on Base — did this payment really settle, and did it pay the right address the right amount? Send a tx hash (or x402 authorization): confirmations, real-USDC transfer check, expectedPayTo/expectedAmount match, fake-USDC and lookalike-address warnings, who funded the payer (external, self_funded, unknown), plain-English summary and a receipt. Body {txHash|authorization, expectedPayTo?, expectedAmount?}. Free demo: POST /demo.","last_updated":"2026-10-16T22:41:17.46Z","schemes":["exact"]}