EU VAT validation — 27 EU member states + Northern Ireland

Validate EU VAT Numbers —
and Prove It During Audits

Validate EU VAT numbers in a single REST call. Supply your own VAT as requester and every qualified response includes the EU Commission consultation number — the audit token VIES issues to prove the check happened. Plus national registry fallback, enriched company data, and VAT rates for 45 European countries. Built for B2B SaaS and e-commerce selling into Europe.

Built for production systems — not just form validation.

100 free requests/monthNo credit card required<50ms cached
$ curl 'api.vatnode.dev/v1/vat/IE6388047V?requesterVat=DE123456789'
{ "consultationNumber": "WAPIAAAAZ27qPadm", ... }

Pass your own VAT as requester and VIES issues this official audit token — attach it to your invoice records

Request
curl "https://api.vatnode.dev/v1/vat/IE6388047V" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response200 OK
{
  "valid": true,
  "vatId": "IE6388047V",
  "countryCode": "IE",
  "countryName": "Ireland",
  "companyName": "GOOGLE IRELAND LIMITED",
  "companyAddress": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
  "companyRegistrationDate": null,
  "companyForm": null,
  "industryDescription": null,
  "registryCode": null,
  "registryCodeName": null,
  "countryVat": {
    "vatName": "Value Added Tax",
    "vatAbbr": "VAT",
    "currency": "EUR",
    "standardRate": 23,
    "reducedRates": [
      9,
      13.5
    ],
    "vatNumberFormat": "IE + 8-9 chars",
    "vatNumberPattern": "^IE[0-9A-Z+*]{7}[A-Z]{1,2}$"
  },
  "checkId": "019d2a89-a5d9-7b97-b710-57b84604de2b",
  "verifiedAt": "2026-03-26T14:25:57.209Z",
  "consultationNumber": "WAPIAAAAZ27qPadm",
  "source": "VIES"
}

Used to validate VAT at checkout, invoicing, and B2B onboarding.

0+VAT numbers validated
0+EU companies checked
0EU member states
<50msCache response time

Since January 2020, a valid customer VAT number is a substantive legal condition for zero-rating intra-EU goods supplies — not a best practice. VAT number validation at invoice time is your first line of defence.

Why this matters

Boolean VAT Validation Is Not Enough for Audits

During a tax audit, showing that a VAT number was checked and valid at the time of invoice is a legal requirement for zero-rated intra-EU supplies. A boolean result from your own system proves nothing to a tax authority.

vatnode returns the official consultation number issued by the EU Commission — a verifiable reference that shows the check was performed, when, and what the result was. vatnode returns it as part of every qualified validation response.

Why a basic VIES call is not enough

Boolean true Is Not Audit Evidence

A Raw VIES Check

  • ×Returns valid/invalid — no proof the check happened
  • ×No official reference to attach to an invoice
  • ×Fails during country-level VIES outages
  • ×No enriched company data from national registries

vatnode

  • EU Commission consultation number — independently verifiable
  • checkId + verifiedAt — permanent, timestamped audit record
  • National registry fallback for covered EU countries
  • Legal form, registration date, industry — in one call

Everything You Need for EU VAT Compliance

One API call returns validated status, enriched company data, VAT rates, and an audit trail — ready for checkout, invoicing, and B2B onboarding.

Real-time + Resilient

National registry fallback via tax authority and company registry APIs keeps validation working even when a country node is temporarily unavailable. Cache hits return in <50ms; live checks in 200–800ms.

Audit-Proof Evidence

Supply your own VAT as requester and every qualified validation returns an official consultation number from the EU Commission — a verifiable token that proves the check happened at a specific time. Store it alongside your invoices as evidence tax authorities can verify independently.

Know Before You Invoice

Subscribe to your customers' and suppliers' VAT IDs. Get a webhook the moment one de-registers — so you fix the next invoice before it goes out wrong, instead of finding out at audit time.

Enriched Company Data

Beyond VIES: registration date, legal form (GmbH, SAS, AB…), and industry code from national registries. Local VAT name, abbreviation, all rate tiers, and currency — in every response.

Where a VAT number belongs to a sole trader, some fields may constitute personal data under GDPR.

Developer-First

Clean REST API over HTTPS. Works with any language — curl, JavaScript, Python, PHP, Ruby, Go. Up and running in minutes.

MCP Server for AI Agents

Plug Claude Desktop, Cursor, ChatGPT — anything that speaks Model Context Protocol — straight into vatnode. Your AI assistant validates VAT IDs and looks up rates in the chat, with your key staying on your machine. Open source.

Up and Running in Minutes

No SDK. No infrastructure. Just one HTTP call.

1

Create Your Account

Sign up and get an API key instantly. Free plan, no credit card required.

vat_test_••••••••••••••••
vat_live_••••••••••••••••

2

Make a Request

One HTTP call. Works with any language — curl, JavaScript, Python, PHP.

GET /v1/vat/IE6388047V

Authorization: Bearer vat_live_...

3

Get Structured Data

Company name, address, validity, and VAT rates for the country — all in one response.

"valid": true,

"companyName": "GOOGLE...",

Built for Real B2B Workflows

vatnode handles VAT validation wherever your business touches an EU counterparty.

Checkout

Validate a customer's VAT number at checkout to apply the correct reverse charge or tax rate — without blocking the buy button on VIES downtime.

Invoicing

Verify VAT before generating zero-rated intra-EU invoices. Store the consultationNumber alongside your invoice — it's the EU Commission-issued reference that proves the check happened at invoice time.

B2B Onboarding

Confirm a new business customer is registered. Enrich the record with legal form, registry code, and industry from national registries.

Monitoring

Track VAT IDs of active customers and get webhook alerts when a registration becomes invalid between billing cycles — before it surfaces in an audit.

Pricing Tied to What It Prevents

Failed B2B invoices, wrong reverse-charge VAT decisions, and audits you cannot defend — every plan stops all three. Pick a tier based on volume and how often you re-check existing customers.

Prevents

Failed B2B invoices

VAT ID validated at checkout and invoice time, before the transaction commits.

Prevents

Wrong reverse-charge VAT

Country code + validity returned, so your tax engine applies the right B2B treatment.

Prevents

Audit exposure

Consultation number, checkId, and verifiedAt timestamp on every qualified response.

Free

€0/month

For testing and small projects

  • 100 requests/month
  • VAT validation
  • VAT rates API
  • Community support
Get Free API Key

Starter

€19/monthexcl. VAT

For growing businesses

  • 1,000 requests/month
  • Everything in Free
  • Weekly monitoring
  • Webhooks
  • Email support
Get Free API Key
Most Popular

Pro

€49/monthexcl. VAT

For high-volume needs

  • 10,000 requests/month
  • Everything in Starter
  • Daily monitoring
  • Priority support
Get Free API Key

View full pricing details →

What vatnode Adds Beyond the Raw VIES API

The official VIES API returns a valid/invalid signal and basic company details. vatnode adds national registry fallback, enriched company data, audit trail, and VAT rates — all in a single REST call. Read the full EU VAT validation API overview.

Interface
Other EU source
Raw database access
Direct database protocol, requires a specialised client
vatnode
REST JSON over HTTPS
Standard HTTP — curl, fetch, any library, any language
Reliability
Other EU source
Single point of failure
Country node down = validation fails
vatnode
National registry fallback + enrichment
Falls back to national tax authority and company registry APIs when VIES is unavailable
Company data
Other EU source
Name + address only
No structured enrichment available
vatnode
Registration date, legal form, industry code
GmbH, SAS, AB — legal form and NACE industry code from national registries
Audit trail
Other EU source
No logging
You must build your own storage layer
vatnode
checkId + verifiedAt + VIES consultation number
UUID + ISO timestamp + EU Commission-issued consultation number when you pass your own VAT as requester — audit-grade evidence tax authorities expect
VAT rate data
Other EU source
Separate call needed
No rate data — you maintain your own lookup
vatnode
All rate tiers bundled in every response
Standard, reduced, super-reduced, parking — plus local name and abbreviation

All of the above arrives in a single REST call. See the full response schema

Looking at other VAT API providers? See how vatnode compares →

On a non-Stripe billing stack? Read the Stripe Tax alternative breakdown →

Built for the People Who Sign the Contract — and the People Who Ship the Code

Finance picks the vendor. Engineering does the integration. vatnode is the rare tool both sides agree on.

For Finance & Compliance

Defensible Audit Evidence, Not Best-Effort Lookups

  • Wrong VAT on an invoice means tax exposure.A VIES check that isn't logged is a check that didn't happen as far as auditors are concerned.
  • EU Commission consultation number on every qualified check — a verifiable token tax authorities can independently confirm. The same evidence every Big 4 tax team will ask for.
  • Monitoring catches de-registrations before the next invoice — not at audit time, when the fine has already accrued.
  • EU-hosted, EU-operated. DPA available. No US sub-processors in the validation path.
For the engineers integrating it

The API Your Team Actually Enjoys Using

  • One REST call. JSON over HTTPS. No SOAP, no SDK, no vendor runtime. curl works.
  • Predictable error contract. Documented codes, real requestId on every response, no surprise 200s wrapping failures.
  • Resilient by default. National-registry fallback when a VIES member node is down — so your job queue keeps moving instead of paging someone.
  • Test mode without rituals.Test keys return deterministic fixtures, don't hit VIES, don't count toward quota.

Just need VAT rates? The dataset is free and open-source.

Current standard, reduced, super-reduced and parking rates for 45 European countries — via GET /v1/rates (no API key) or the open-source npm/pip/Composer package. Updated daily from the EC TEDB.

View docs

Frequently Asked Questions

Everything you need to know before integrating

What is vatnode?

vatnode is an EU VAT number validation API. You send a VAT ID, and vatnode checks it in real time against the official EU VIES system, enriches it with national registry data where available, and returns a clean JSON response with the validity result, company details, VAT rates for that country, and a timestamped audit reference. It's built for developers adding VAT validation to invoicing, checkout, or supplier-onboarding flows.

View this question →
Why do I need to validate EU VAT numbers for B2B sales?

When you sell goods B2B to a customer in another EU country, you can generally zero-rate the supply as an intra-Community supply — but only if the customer has a valid EU VAT number (validated in VIES) at the time of supply, you report it on your EC Sales List, and you can evidence both the check and that the goods actually crossed the border. For cross-border B2B services the mechanism is different: the supply is outside your country's VAT and the customer accounts for VAT under the reverse charge. If the conditions aren't met or you can't evidence them, the tax authority can deny the zero-rating and assess the VAT against you.

View this question →
How accurate is the validation?

vatnode queries the official VIES database in real time, so accuracy is as good as the EU system itself: when VIES says "valid", the number was registered and active at the exact moment of the check. Some member states update their registrations closer to real time than others, so a very recent change may take a day or two to appear. Valid results are cached for 15 minutes for speed; for absolute certainty on a high-value transaction you can force a fresh VIES check with force=true.

View this question →
Which countries are supported?

Live validation covers all 27 EU member states plus Northern Ireland (XI), all through VIES. (Note: vatnode follows the VIES convention of EL for Greece, not the ISO GR.) VAT-rate and format reference data covers a wider set of European countries, but number validation is EU-27 + XI only.

View this question →
What happens when VIES is temporarily unavailable?

VIES is shared infrastructure across 27 national tax authorities and has occasional outages, sometimes affecting just one country. When a check can't be completed and no fallback succeeds, vatnode returns HTTP 503 with the code VIES_UNAVAILABLE — which is very different from an "invalid" result. The right pattern is to treat it as a signal to retry later rather than to reject the customer; for several countries vatnode's national-registry fallback returns a result even while VIES is down.

View this question →
What plans are available?

Free (100 requests/month, no card), Starter at €19/month (1,000 requests), Pro at €49/month (10,000 requests), and Enterprise (custom limits, on request). Paid plans also unlock VAT-monitoring subscriptions and webhooks; the Free plan is validation-only. Billing is monthly, with no annual commitment.

View this question →

Ready to Validate VAT Numbers?

Start validating in minutes. Free plan, no credit card — test your full integration before you upgrade.

Built by Iurii Rogulia for EU compliance.