International · Validation

EU VAT number validator.

Check an EU VAT identification number's format against all 27 member states' published rules, with a real check-digit algorithm verified for Germany, France, Italy, Spain and the Netherlands. Everything runs in your browser: nothing you type is transmitted anywhere.

Source: EUIPO's EU VAT format table + national algorithms (see below) This is NOT the live VIES registry — see the notice below

Advertisement

Inputs

2-letter country prefix (Greece is EL, not GR) followed by the number. Spaces and dashes are ignored.

Result

Enter an EU VAT number and press Validate.

What this tool checks — and what it doesn't

An EU VAT identification number is a 2-letter country prefix (ISO 3166-1, except Greece which uses EL) followed by a number whose exact shape is set by that member state. This tool checks the shape for all 27 states, and for five of them — Germany, France, Italy, Spain and the Netherlands — it also verifies the real, published check-digit algorithm, not a guessed one:

The other 22 member states are checked for format only — correct length and character pattern for that country, nothing more. Where a source found this session confirms that country does publish its own check-digit rule (Belgium, Denmark, Finland, Croatia, Greece, Poland, Portugal, Slovenia, Slovakia), the result says so explicitly rather than silently passing it off as unverifiable. For the remaining format-only countries, no source fetched this session stated whether a check digit exists, so no claim is made either way.

PrefixCountryFormatReal checksum?
ATAustriaU + 8 digitsFormat only
BEBelgium10 digitsDocumented, not implemented
BGBulgaria9-10 digitsFormat only
CYCyprus8 digits + letterFormat only
CZCzech Republic8-10 digitsFormat only
DEGermany9 digitsVerified — ISO 7064 MOD 11-10
DKDenmark8 digitsDocumented, not implemented
EEEstonia9 digitsFormat only
ELGreece9 digitsDocumented, not implemented
ESSpain9 characters, 4 sub-formatsVerified — DNI/NIE/CIF algorithms
FIFinland8 digitsDocumented, not implemented
FRFrance2 chars + 9 digitsVerified — mod-97 key
HRCroatia11 digitsDocumented, not implemented
HUHungary8 digitsFormat only
IEIreland7-9 charactersFormat only
ITItaly11 digitsVerified — Luhn + province range
LTLithuania9 or 12 digitsFormat only
LULuxembourg8 digitsFormat only
LVLatvia11 digitsFormat only
MTMalta8 digitsFormat only
NLNetherlands9 digits + B + 2 digitsVerified — BSN check or ISO 7064 MOD 97-10
PLPoland10 digitsDocumented, not implemented
PTPortugal9 digitsDocumented, not implemented
RORomania2-10 digitsFormat only
SESweden12 digitsFormat only
SISlovenia8 digitsDocumented, not implemented
SKSlovakia10 digitsDocumented, not implemented

Verification

Formats were cross-checked between two independent sources with no contradiction between them: EUIPO's (an EU agency) own published "European Union VAT identification numbers" reference table, and Wikipedia's VAT identification number article, whose own citations trace back to national tax authorities (Austria's BMF, France's INSEE) and the EU VIES FAQ. The live VIES site (ec.europa.eu/taxation_customs/vies) is now a client-rendered single-page app with no static FAQ page left to fetch, which is exactly why this tool relies on the two fetchable references above instead.

The five real check-digit algorithms were implemented from, and independently re-run against the doctest vectors published in, the MIT-licensed python-stdnum library — the same class of independent, actively-maintained source already cited elsewhere on this site (this page's Netherlands check reuses this site's own IBAN-validator ISO 7064 MOD 97-10 code directly). France's numeric-key formula was additionally cross-verified algebraically against the independent INSEE-sourced formula on Wikipedia: the two are mathematically identical (since 100 ≡ 3 mod 97), and both reduce SIREN 404833048 to key 83, matching Wikipedia's own worked example.

This is format/checksum validation, not the VIES registry

A passing result here proves the number is well-formed and internally consistent — that its digits could belong to a real VAT number of that shape. It does not prove the number is actually issued, currently active, or belongs to the business you think it does. Confirming that requires a live lookup against the EU's own VIES (VAT Information Exchange System), which calls a real-time web service this browser-only tool does not have access to. For 22 of the 27 member states, this tool checks format only — it has no check digit to verify at all, real or otherwise. This tool runs entirely in your browser: nothing you type is transmitted, stored, or logged.

Advertisement
Advertisement
Listening…