x402 seller verification before paying
x402 seller verification before paying: payTo wallet OFAC screen, domain, uptime. Use before an agent pays an x402 endpoint it has not used before: reads the seller's own 402 challenge, screens every payTo wallet against the OFAC list, checks the domain (age, setup), Factline's daily uptime probes and, with company, the register record and EU/UN/UK/US sanctions. Returns allow, review or deny, plus a trust-provider block (decision, score, evidence, ttl). Input: url, optional wallet, company,...
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://factline.dev/v1/payee/check
| Category | Company and compliance |
|---|---|
| Provider host | factline.dev |
| Networks | eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 2 from 2 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-18 | valid payment request | 402 | $0.01 | 53 ms |
Example input (from the provider)
{
"method": "GET",
"queryParams": {
"url": "https://factline.dev/v1/kyb/check"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"company": {
"description": "Optional company behind the seller: adds the register record and a sanctions screen of the company",
"type": "string"
},
"country": {
"description": "Optional ISO country of that company, e.g. GB",
"type": "string"
},
"url": {
"description": "The x402 endpoint (or origin) you are about to pay, e.g. https://factline.dev/v1/kyb/check",
"type": "string"
},
"wallet": {
"description": "Optional payTo wallet address to screen (read from the endpoint's 402 when url is given)",
"type": "string"
}
},
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}