Research guide · x402 buyer safety · updated 12 September 2026
How to verify an x402 API before paying
Machine-readable discovery makes it easy for an agent to find something that asks for money. The harder question is whether it should pay — and, after it pays, whether settlement and useful delivery actually happened. Verify the live contract, keep /verify, /settle and application delivery as separate verdicts, then validate the purchased output before reuse.
Published 11 September 2026 · updated 12 September 2026 · sources checked 12 September 2026
402 ≠ trust
A payment challenge is a quote, not proof of seller quality
verify ≠ paid
x402 /verify is explicitly read-only
settled ≠ delivered
Payment finality and application success are separate evidence
The four verdicts
Verify, settle and delivery answer different questions
This is the most useful debugging boundary in x402. The v2 specification says facilitator /verify validates payment state without committing it, while /settle durably commits payment state for the request. The protected application still has its own response and output contract. A buyer should preserve those layers rather than collapsing all of them into one “paid” flag.
| Evidence | What it establishes | Record | Do not infer |
|---|---|---|---|
| 402 challenge | The resource is quoting payment requirements. | Resource, method, amount, asset, network, payTo, scheme and paymentFlow. | Trust, settlement, independent demand or useful delivery. |
| /verify | The supplied payment authorization passed a read-only validity check. | isValid, invalidReason and payer where available. | That funds moved. x402 v2 says /verify must not commit payment state or write onchain. |
| /settle / PAYMENT-RESPONSE | Payment state was durably committed according to the selected scheme and flow. | success, transaction, network, payer and amount where supplied; use ledger evidence when stronger financial finality is required. | That the application result was correct, complete or economically useful. |
| Application response | The paid resource returned an HTTP/application result. | HTTP status, schema, content, freshness and task-specific acceptance checks. | Payment finality unless settlement evidence is joined to the same request. |
Operational wallet tooling now exposes this split directly. Naven, for example, returns x402 payment status separately from the upstream HTTP status and documents that a paid resource can settle successfully while still returning an application-level 4xx or 5xx response. That is one implementation, not a protocol-wide guarantee about every resource server, but it demonstrates why a buyer should track both verdicts.
Buyer checklist
Seven checks before an autonomous x402 spend
1
Resolve the exact resource
Call the canonical endpoint and HTTP method directly. Redirects, dead routes and stale directory URLs are reasons to stop before payment.
2
Read the live 402
Treat the current PaymentRequired challenge as the payment contract: resource, amount, asset, network, payee and any declared payment-flow fields.
3
Check the payment flow
x402 v2 can use authorization, upfront or escrow. Do not assume value moves only after useful output; inspect the offered flow and reject one your buyer does not understand.
4
Compare price and payee
Compare the live amount and receiving address with the provider's owned OpenAPI, x402 manifest or other canonical metadata. Unexpected drift should fail closed.
5
Separate verify from settle
A valid /verify result is authorization evidence, not payment. Record the eventual settlement response or stronger ledger evidence separately.
6
Validate the result
Define what a successful response looks like before spending. HTTP status, schema, freshness and deterministic output checks are separate from settlement success.
7
Cap the wallet
Set per-call and session limits, allowlisted networks/assets and a maximum acceptable price. Discovery should never imply unlimited authority to spend.
The protocol detail that matters
Do not assume every x402 payment settles after delivery
The x402 v2 specification distinguishes three payment flows. In the default authorization flow, the facilitator verifies first, the resource executes, settlement follows, and the response is returned. The specification also defines upfront and escrow flows that can commit value before resource execution.
That changes buyer risk. A wallet-equipped agent should inspect paymentFlow, understand the mechanism it is being offered, and skip combinations it does not support. The specification says clients should prefer authorization when the same request offers both authorization and a pre-handler-settlement flow.
The same distinction matters for retries. A timeout, missing response header or application error should not automatically trigger a second payment. Reconcile the request identifier, settlement response and ledger state first, then retry only under an idempotent policy that cannot double-pay for the same intended purchase.
Why the distinction is operational, not academic
Recent implementation reports show how evidence can be misread
An August 2026 x402 Java SDK bug report documented a middleware path that could send protected content before settlement completed. The report was closed after a linked fix, so it should be read as an implementation defect rather than the intended protocol order. For buyers and sellers, the lesson is durable: resource delivery and settlement need explicit sequencing and evidence rather than one optimistic success flag.
A separate open Bazaar provenance proposal reports a verify-only experiment where discovery processing was triggered without tokens moving. The proposal asks catalog data to distinguish verify-derived observations from settled activity. That issue is not a normative specification and its broader catalog implications remain under discussion, but it is another reason not to interpret discovery counters or a successful verify as proof of payment.
Verification market · 12 Sep 2026
A new verification layer is appearing around machine payments
Several independent services now target the same buyer question: should an agent trust this paid endpoint enough to spend? Their methods differ. Some inspect the payment payload, some use on-chain or liveness evidence, and some buy the service to test fulfillment. zFinia has not independently benchmarked their proprietary scoring, so the table describes their current public claims rather than endorsing a winner.
| Service | What it checks | Current public model |
|---|---|---|
| Paddock | Endpoint, expected price, liveness, observed payer activity and circular-pattern checks | Its public verify-before-pay example returns a verdict before the buyer commits. Paddock says its free-key tier includes 10 checks per day and also offers pay-per-call access. |
| vet402 | Independent fulfillment measurement based on actually buying x402 endpoints | Its public methodology says it buys what endpoints sell, checks fulfillment against the seller declaration and publishes evidence. The service describes itself as building in public. |
| Faro | Pre-payment verdict from raw x402, AP2 or ACP payment context | Its documentation says the verifier is advisory only: it does not settle, authorize or move funds. That separation is useful when the buyer wants a policy gate before payment execution. |
| PulseFeed | Liveness, payment anomaly and receiver-profile checks | Its public trust API describes checks including payTo hijack, price bait-and-switch and on-chain receiver signals. Treat its proprietary verdict as one input rather than a universal trust score. |
What a verifier can tell you
- • whether the resource is reachable now;
- • whether the quoted price or payee looks anomalous;
- • whether there is observed settlement or delivery evidence;
- • whether the payment payload matches a policy;
- • whether known risk signals justify rejecting the spend.
What it cannot guarantee
- • that a future call will return a useful answer;
- • that historical payers were economically independent;
- • that a seller will never change price or behavior;
- • that one proprietary reputation score fits every buyer;
- • that the agent should exceed its own explicit spend policy.
Minimal policy
A buyer should be able to reject a service deterministically
allow only if:
endpoint == expected canonical resource
network in approved_networks
asset in approved_assets
payTo in expected_or_verified_payees
quoted_price <= max_price_per_call
payment_flow in supported_flows
response_schema is known
requested_action is within session_spend_cap
otherwise: do not sign
after payment:
record verify_result separately from settlement_result
reconcile settlement before retrying an uncertain request
accept delivery only if http_status and output_schema passReputation can improve this policy, but should not replace it. The useful pattern is discover → verify → select → pay → reconcile settlement → validate delivery → record evidence → reuse only when the result justifies it.
Continue the research
Move from discovery to a bounded buying decision
zFinia tracks x402 discovery, payment infrastructure and machine-readable services. Use the discovery guide to find candidates, then inspect the owned machine contract before an agent spends.
Sources
- x402 Foundation — x402 specification v2, including facilitator verify/settle semantics
- x402 documentation — facilitator verification and settlement
- Naven — x402 wallet payment and upstream-status documentation
- x402 Foundation issue #3068 — Java PaymentFilter settlement-order bug report, opened 6 August 2026 and closed
- x402 Foundation issue #3226 — open Bazaar verify-versus-settle provenance proposal, opened 21 August 2026
- Paddock — agent-commerce measurement and verify-before-pay surface
- vet402 — independent x402 fulfillment verification
- Faro — Verify before pay documentation
- PulseFeed — x402 trust and verification surface
The x402 specification is normative for protocol semantics. GitHub issues are implementation reports or proposals and are labelled as such above, not treated as protocol requirements. Verification services are independent third parties whose features and pricing can change. zFinia describes public documentation observed on 12 September 2026 and does not represent third-party scoring as a guarantee, certification or substitute for the buyer's own wallet policy.