78trust / 100

Counterparty Check

by Resolve402 in Company & people data

x402 APIPassing, checked 2 h ago

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

All checks passedSome failedAll failedNot checked
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

WhenResultHTTPTimePrice
2 h agoPassed402186 ms$0.02
5 h agoPassed402245 ms$0.02
9 h agoPassed402231 ms$0.02
13 h agoPassed402315 ms$0.02
16 h agoPassed402378 ms$0.02
20 h agoPassed402209 ms$0.02
23 h agoPassed402657 ms$0.02
26 h agoPassed402154 ms$0.02
31 h agoPassed402158 ms$0.02
34 h agoPassed402188 ms$0.02
38 h agoPassed402931 ms$0.02
42 h agoPassed402128 ms$0.02
44 h agoPassed402841 ms$0.02
2 days agoPassed40268 ms$0.02