European company verification API for AI agents
Verify any European company in a single call. Give a country (FR, UK, IE, NO, FI, SK, PL, CZ) and its national registry number and this endpoint checks existence and status in the official registry, insolvency signals (BODACC for France, registry flags elsewhere), VAT validity against VIES, the LEI record at GLEIF, the legal name against the EU, US OFAC, UN, UK and French sanctions lists, the EORI customs number and the company domain's age and mail setup.
It returns one verdict - pass, review or fail - with a confidence level, the reasons, and a per-check source and timestamp, plus an explicit coverage map that says what was checked, what is structurally not covered for that country and what was temporarily unavailable. This is factual verification of official public records, not a credit score: no payment-behavior data, no probability of default, and a sanctions match always says review, never an automated fail. $0.10 per call in USDC, no account, no API key, never billed on failure.
Endpoint
GET /v1/eu/company-check — $0.10 per call (USDC on Base, x402). Also available as the MCP tool verify_company_eu on https://data.greeneris.io/mcp.
Parameters
| Param | Description |
|---|---|
country | One of FR, UK, IE, NO, FI, SK, PL, CZ (required) |
id | National registry number: SIREN/SIRET, company number, orgnr, y-tunnus, ICO or NIP (required) |
vat | VAT number to check when not derivable from the id (IE, SK) |
lei | Known 20-character LEI to verify instead of searching |
eori | EORI customs number to validate |
domain | Company website domain for age and MX signals |
Example
curl -i "https://data.greeneris.io/v1/eu/company-check?country=FR&id=552032534"
# HTTP/1.1 402 Payment Required + machine-readable quote
# (any x402 client pays the quote and retries automatically)Response after payment:
{"ok": true, "data": {"subject": {"country": "FR", "id": "552032534", "legal_name": "DANONE", "natural_person": false}, "verdict": "pass", "confidence": "high", "reasons": ["Registered and active; no insolvency, sanctions, VAT or domain flag on any checked component."], "checks": {"registry": {"status": "checked", "exists": true, "company_status": "active"}, "vat": {"status": "checked", "is_valid": true}, "sanctions": {"status": "checked", "verdict": "no_match"}}, "coverage": {"checked": ["registry", "insolvency", "vat", "lei", "sanctions", "eori"], "degraded": []}, "flags": []}}What agents use it for
- Counterparty onboarding: one call gates approval across 8 European countries
- Accounts-payable agents: verify a payee exists, is active and is not sanctioned
- Continuous KYB: re-run periodically and alert on verdict or flag changes
How payment works
Call the endpoint: you get HTTP 402 with a signed quote (price, receiving address, network). Your agent pays a few tenths of a cent in USDC on Base (gasless, EIP-3009) and retries - one round trip, no account, no API key. Settlement only happens after a successful answer. Full catalog: llms.txt.