{"uid":"cap_0SBbwcdkuS7vkjEX4p47l","slug":"x402-seller-payability-check-5adfc7ad","name":"x402 Seller Payability Check","description":"Buy one call from an x402 seller endpoint right now and report exactly what happened: the unpaid call's status, the 402 decoded (accepts, chains, payTo, asset, price), whether the accept's EIP-712 domain name matches the token it names (the defect that silently makes a whole catalog unpayable), whether a stock client's signed payment was accepted, the settlement receipt and transaction, a slice of the response body, and the time each leg took. Ends in plain-English flags, never a score.","url":"https://agent402.tools/api/seller-payability","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"url":{"type":"string","description":"The seller endpoint to check (https), e.g. https://api.example.com/tools/summarize"},"body":{"type":"object","description":"Optional JSON body the seller's route expects (POST only)"},"maxUsd":{"type":"number","description":"Most to spend on the seller's own price, default 0.01, capped at 0.02"},"method":{"type":"string","description":"GET or POST (default POST) - never a verb that could mutate the seller"}}},"responseSchema":{"type":"json","example":{"url":"https://agent402.tools/api/hash","flags":["a stock buyer can pay this endpoint and get a result: nothing to fix"],"method":"POST","payable":true,"payment":{"ms":2400,"error":null,"status":200,"receipt":{"payer":"0x…","network":"eip155:8453","success":true,"transaction":"0x…"},"settled":true,"attempted":true},"challenge":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x…","accepts":[],"networks":["eip155:8453"],"priceUsd":0.01,"readable":true,"pricedFrom":"eip155:8453"},"checkedAt":"2026-09-11T02:00:00.000Z","unpaidCall":{"ms":180,"error":null,"status":402,"bodySlice":"{}","contentType":"application/json"},"responseSlice":"{\"summary\":\"…\"}","domainFindings":[{"chain":"Base","network":"eip155:8453","verdict":"matches","expectedName":"USD Coin","advertisedName":"USD Coin"}]}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.1","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.1/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.1","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.1","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_0zqsLr_Gy5X5iuchLYuBy","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.1","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Tests an x402-protected endpoint end-to-end: decodes the 402 challenge, validates EIP-712 domain/token consistency, attempts a real signed payment, and reports plain-English flags on payability.","exampleAgentPrompt":"Can you do a full payability check on my x402 endpoint at https://api.example.com/tools/summarize — send an unpaid call, decode the 402 challenge, verify the EIP-712 domain name matches the token, try to actually pay it with a stock client, and tell me in plain English whether anything is broken?","exampleUseCases":[{"title":"Pre-launch x402 endpoint validation","prompt":"Before I list my new API at https://api.myservice.com/analyze on a marketplace, can you run a full payability check on it — decode whatever 402 challenge it returns, check for any EIP-712 domain mismatch, actually pay it, and give me plain-English flags if anything needs fixing?"},{"title":"Debugging a silent catalog unpayability bug","prompt":"My x402 endpoint at https://api.example.com/summarize is listed in my catalog but buyers say payments silently fail — can you probe it, decode the 402, and specifically check whether the EIP-712 domain name matches the token it advertises?"},{"title":"Spot-checking a third-party x402 seller","prompt":"I'm about to integrate https://api.thirdparty.com/data/enrich into my agent — can you run a payability check on it using POST, spend at most $0.01, and tell me whether a standard x402 client can successfully pay it and what the settlement receipt looks like?"}],"resultDescription":"A JSON object containing: plain-English payability flags, the decoded 402 challenge (payTo address, asset contract, price in USD, accepted networks), EIP-712 domain name match verdicts per chain, whether the unpaid call returned 402 correctly, whether a signed payment was accepted, the settlement receipt with transaction hash and payer address, a slice of the paid response body, and millisecond timings for each leg.","failureModes":["Seller endpoint is unreachable or returns non-402 status on unpaid call — reported in unpaidCall.status","Payment rejected by seller — settled:false with error details","EIP-712 domain name mismatch detected — flagged in domainFindings with verdict:'mismatch'","Seller price exceeds maxUsd cap (default $0.01, max $0.02) — call aborted before payment","Invalid or malformed 402 response body — readable:false in challenge","Network or RPC timeout during settlement — payment.error populated"],"whenToPreferThis":"Use this endpoint when you need to verify that a specific x402-protected API can actually be paid end-to-end by a standard client, especially before listing it on a marketplace or integrating it into an agent workflow. It is uniquely suited for catching the EIP-712 domain name mismatch defect that silently breaks entire x402 catalogs. Prefer it over manual curl-based debugging when you want a structured, machine-readable report with settlement proof and latency data in a single call.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T12:42:57.392Z","isFirstParty":false}