Counterparty Check
by Resolve402 in Company & people data
KYB company verification before paying or invoicing: sanctions screening (OFAC, EU, France), EU VAT number validation (VIES), French insolvency proceedings. Input a SIREN, SIRET, EU VAT number or French company name (optional IBAN). Output for a French company: registry status, insolvency proceedings (BODACC), latest revenue and net income with risk signals, sanctions screening of the company and its officers (DG Trésor, EU consolidated, OFAC SDN), IBAN checksum and country, verdict ok / review / block with reasons. Other EU VAT numbers: VIES validity and sanctions screening of the VAT number and, when VIES discloses it, the registered name. Exact-match pre-check, not an AML service. Charged only if found.
GET https://resolve402.dev/api/counterparty-check
Last 30 days
- Uptime
- 100%
- Response time
- 209 ms typical, 841 ms slowest 5%
- Last check
- 2 h ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X GET "https://resolve402.dev/api/counterparty-check?siren=552032534"import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fresolve402.dev%2Fapi%2Fcounterparty-check
const res = await pay("https://resolve402.dev/api/counterparty-check?siren=552032534");
console.log(await res.json());Example input
{
"siren": "552032534"
}Example output
{
"company": {
"active": true,
"city": "PARIS",
"name": "DANONE",
"siren": "552032534"
},
"iban": {
"country": "FR",
"masked": "FR76…0189",
"sepa": true,
"valid": true
},
"proceedings": {
"count": 0,
"latest": null,
"source_status": "checked",
"status": "none"
},
"sanctions": {
"listed": false,
"lists": [
{
"id": "fr_gels",
"status": "checked"
},
{
"id": "eu_consolidated",
"status": "checked"
},
{
"id": "ofac_sdn",
"status": "checked"
}
],
"matches": [],
"officer_matches": [],
"officers_screened": 3,
"status": "checked"
},
"vat": {
"number": "FR27552032534",
"status": "checked",
"valid": true
},
"verdict": {
"level": "ok",
"reasons": []
}
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 2 h ago | Passed | 402 | 186 ms | $0.02 |
| 5 h ago | Passed | 402 | 245 ms | $0.02 |
| 9 h ago | Passed | 402 | 231 ms | $0.02 |
| 13 h ago | Passed | 402 | 315 ms | $0.02 |
| 16 h ago | Passed | 402 | 378 ms | $0.02 |
| 20 h ago | Passed | 402 | 209 ms | $0.02 |
| 23 h ago | Passed | 402 | 657 ms | $0.02 |
| 26 h ago | Passed | 402 | 154 ms | $0.02 |
| 31 h ago | Passed | 402 | 158 ms | $0.02 |
| 34 h ago | Passed | 402 | 188 ms | $0.02 |
| 38 h ago | Passed | 402 | 931 ms | $0.02 |
| 42 h ago | Passed | 402 | 128 ms | $0.02 |
| 44 h ago | Passed | 402 | 841 ms | $0.02 |
| 2 days ago | Passed | 402 | 68 ms | $0.02 |