Free EU VAT number check (VIES) and EORI check

Validate EU VAT numbers live against the European Commission VIES service and EORI numbers against EOS. Use it here for free, or call the same checks from your code, from n8n/Make/Zapier, or from AI agents over MCP and x402.

Check EU VAT number

27 EU states + Northern Ireland (XI). Include the country prefix. Greece uses EL.

Check EORI number

EU EORI numbers via the official EC EOS service. UK (GB) EORIs are not covered by EOS.

Free tier: 20 checks per day per IP, no signup. Data comes live from public EC services. Not affiliated with the European Commission. Not legal or tax advice.

Products

REST API

VAT (single & batch), EORI, company registry, sanctions screening and one-call KYB at api.wsystem.dev.

API docs (OpenAPI)

MCP server for AI agents

Remote streamable-HTTP MCP server for Claude, Cursor and other agents. Seven tools, no signup.

MCP setup

x402 pay-per-call

Agents pay per request in USDC on Base with the open x402 protocol. No account, no API key.

How x402 works here

Apify Actors

Pay-per-event Actors with Apify scheduling, datasets and integrations (Zapier, Make, n8n, webhooks):

API quick start

curl "https://api.wsystem.dev/verify?vat=DE811193231"
curl "https://api.wsystem.dev/eori?eori=SE5560360793"
curl -X POST https://api.wsystem.dev/verify/batch -H "Content-Type: application/json" \
  -d '{"vats":["IE6388047V","FR40303265045"]}'
curl "https://api.wsystem.dev/company?q=552032534&country=FR"
curl "https://api.wsystem.dev/sanctions/screen?name=Sberbank"

VAT status is valid, invalid, invalid_format, member_state_unavailable (VIES national backend down: retry, never a false "invalid") or error. Results are cached and retried with backoff. Full reference: api.wsystem.dev/docs. Integration guides for Python, JavaScript, n8n, Make, Zapier and agents: GitHub docs.

MCP setup (Claude Desktop, Cursor, other agents)

Endpoint: https://api.wsystem.dev/mcp/ (streamable HTTP). Tools: verify_vat, verify_batch, lookup_company, screen_sanctions, kyb_check, verify_eori, verify_eori_batch.

{ "mcpServers": { "eu-business-data": { "type": "http", "url": "https://api.wsystem.dev/mcp/" } } }

For clients that only speak stdio (e.g. older Claude Desktop builds), bridge with npx mcp-remote https://api.wsystem.dev/mcp/. Listed in the official MCP Registry as io.github.zifengw/eu-business-data-mcp.

x402: let agents pay per call

After the free allowance, REST calls return HTTP 402 with x402 payment requirements (USDC on Base, network eip155:8453). An x402-capable client signs the payment and retries with the X-PAYMENT / PAYMENT-SIGNATURE header. No account and no API key. See x402.org and our x402 agent guide.

Pricing

ChannelPrice
Website checker, REST API and MCP free tierFree, 20 calls / day / IP
x402 REST: single VAT, EORI, company or sanctions check$0.01 USDC per call
x402 REST: batch (VAT up to 100, EORI up to 100, company, sanctions)$0.10 USDC per batch
x402 REST: KYB check (VAT + registry + sanctions)$0.045 USDC per call
Apify Actors (pay per event)From $0.003 per result, see each Actor page

FAQ

Why does a German VAT number show no name or address?

Some member states (e.g. Germany, Spain) do not disclose name/address through VIES. The validity result is still official.

What is a VIES consultation number?

A dated reference from VIES proving you checked a number. It is returned when you pass your own EU VAT number as requester.

What does member_state_unavailable mean?

The national database behind VIES did not answer. That is not an invalid result. Retry later.

Do you store the numbers I check?

Results are cached briefly to reduce load on VIES. The free quota counts requests per IP per day.

Products and guides

Machine-readable: llms.txt · OpenAPI · MCP server card · x402 manifest