EU VAT & EORI Format Checker

The two numbers a cross-border seller needs on every invoice and every customs entry. This page checks them against the published formats — and catches the two prefix mistakes that produce a rejection saying nothing more useful than "invalid VAT number".

🔒 Your data never leaves your browser.

Format — and for most countries, the check digit — is checked here; registration has to be checked at the source.

Greece is EL. Northern Ireland is XI.

Greece is GR in ISO 3166-1 and EL in the VAT system. Every other member state uses its ISO code, so GR is the natural thing to type and it is always wrong.

Since the Northern Ireland Protocol, a Northern Irish business trading goods with the EU uses an XI-prefixed VAT number. The digits are the same as the GB one; the prefix is not, and GB numbers are no longer in the EU scheme for goods.

Both mistakes produce the same unhelpful rejection — "invalid VAT number" — which sends people re-reading nine digits that were correct all along. This page names the prefix and hands back the corrected value.

Most member states also get a check-digit verification

A number can match the published shape and still be wrong — a transposed digit is invisible to a format check. For 28 of 29 member states, this page also verifies the check digit, so a shape-correct but arithmetically-wrong number is caught here rather than at the tax database.

Read this carefully before you rely on it. Most EU tax authorities do not publish their check-digit algorithm — the European Commission's own compilation of national TIN rules notes Greece's method as "not publicly available", and that is typical, not an exception. The algorithms here were not taken from any single government page. They were cross-checked against python-stdnum — an actively maintained, source-visible open-source library used by tax and compliance software — then independently re-derived and verified against real worked examples by this project. That establishes the arithmetic is correct. It does not make this an official government specification, and this page does not claim it is one. Every check-digit finding says so, and links to the same explanation.

Coverage is deliberately narrower than the format check: only the company/legal-entity branch is verified for countries whose VAT scheme also covers individuals (their personal-taxpayer numbers reuse a separate national ID checksum, which is out of scope here). Where no verified algorithm exists for a country, the page says so rather than guessing — AT, BE, BG, CY, CZ, DE, DK, EE, EL, ES, FI, FR, GB, HR, HU, IE, IT, LT, LU, LV, MT, NL, PL, PT, RO, SE, SI, SK currently have one; the rest are format-only.

Format is not registration, and we cannot check registration

There is no EU-wide VAT database. VIES works by asking each member state's own system in turn. This page runs entirely in your browser and makes no network requests, so the strongest thing it can tell you is that a number is internally consistent — it fits its country's published shape and, where implemented, its arithmetic holds up. Neither is the same as "registered".

That is still worth doing first: a number that fails the format check will be rejected before it ever reaches a tax database, and knowing that takes a second rather than a support ticket. But before you zero-rate an invoice, check the number in VIES.

Where the formats come from

From VIES itself. The per-country patterns published on the European Commission's own validation service are the source for all 29 prefixes here, including the literal characters the Commission documents — Austria's fixed U after the prefix, Belgium's leading 0 or 1, the GD and HA forms used by UK government departments and health authorities.

VAT checks (10 rules)

VAT-M01 Format only — never registration

A VAT number matching its country’s published pattern says nothing about whether it is registered, to whom, or whether it is still active. There is no EU-wide VAT database; VIES asks each member state in turn. Treat a pass here as "worth submitting", not as "verified".

Fix: Confirm registration through VIES before relying on a zero-rated invoice.

Source: VIES — EU VAT number validation (European Commission)

VAT-P01 Greece uses EL, not GR

Greece is GR in ISO 3166-1, but its VAT prefix is EL. This is the single most common VAT prefix error, and the resulting rejection normally says only "invalid VAT number" — which sends people checking the digits when the digits were fine.

Fix: Replace the GR prefix with EL.

Source: VIES — EU VAT number validation (European Commission)

VAT-P02 Northern Ireland uses XI, not GB

Since the Northern Ireland Protocol, businesses in Northern Ireland trading goods with the EU use an XI-prefixed VAT number. A GB prefix on a Northern Ireland number will be rejected by EU systems, because GB numbers are no longer in the EU VAT scheme for goods.

Fix: Use the XI prefix for Northern Ireland goods trade with the EU.

Source: VIES — EU VAT number validation (European Commission)

VAT-P03 Prefix is not an EU VAT prefix

The first two letters do not match any member state VAT prefix. Either the number is not an EU VAT number, or the country code was written in some other convention.

Source: VIES — EU VAT number validation (European Commission)

VAT-F01 Does not match the country’s published pattern

Every member state publishes the exact shape of its VAT numbers — how many characters, which are digits, which are letters. The value does not fit any of them, so it will be rejected before it ever reaches the tax database.

Source: VIES — EU VAT number validation (European Commission)

VAT-S01 Spaces and punctuation are presentation

Some countries print their VAT numbers in blocks. Systems expect the unbroken form, and the two do not compare equal, so the same customer can arrive twice.

Fix: Store the value without spaces, dots or hyphens.

Source: VIES — EU VAT number validation (European Commission)

VAT-V01 Matches the published pattern

The value fits one of the shapes this member state publishes.

Source: VIES — EU VAT number validation (European Commission)

VAT-C01 The check digit does not match

This country’s VAT number carries a check digit, and this one does not add up. One of the digits is wrong — most often a transposition or a mis-keyed character — and the number will be rejected before it ever reaches the tax database.

Fix: Re-read the number from its source rather than guessing which digit is wrong.

Source: Most EU tax authorities do not publish their VAT check-digit algorithm — the European Commission’s own TIN compilation notes Greece’s method as "not publicly available", and that is typical, not exceptional. This algorithm was cross-checked against python-stdnum (an actively maintained, source-visible open-source library used by tax/compliance software: https://github.com/arthurdejong/python-stdnum), then independently re-derived and verified against real worked examples by this project — not copied from a summary. That establishes the algorithm is correct; it does not make it an official government specification, and it is not presented as one.

VAT-C02 The check digit matches

The number is internally consistent under this country’s check-digit algorithm — the strongest statement this page can make about a VAT number without asking VIES.

Source: Most EU tax authorities do not publish their VAT check-digit algorithm — the European Commission’s own TIN compilation notes Greece’s method as "not publicly available", and that is typical, not exceptional. This algorithm was cross-checked against python-stdnum (an actively maintained, source-visible open-source library used by tax/compliance software: https://github.com/arthurdejong/python-stdnum), then independently re-derived and verified against real worked examples by this project — not copied from a summary. That establishes the algorithm is correct; it does not make it an official government specification, and it is not presented as one.

VAT-C03 No check digit was verified

Either this country’s tax authority does not publish a check-digit algorithm this page could verify, or the number falls into a branch this page does not cover (personal/individual taxpayer schemes, which reuse a separate national ID checksum). The format still matches; the digits themselves were not further checked.

Source: Most EU tax authorities do not publish their VAT check-digit algorithm — the European Commission’s own TIN compilation notes Greece’s method as "not publicly available", and that is typical, not exceptional. This algorithm was cross-checked against python-stdnum (an actively maintained, source-visible open-source library used by tax/compliance software: https://github.com/arthurdejong/python-stdnum), then independently re-derived and verified against real worked examples by this project — not copied from a summary. That establishes the algorithm is correct; it does not make it an official government specification, and it is not presented as one.

EORI checks (5 rules)

EORI-M01 Format only — never registration

An EORI number matching the published shape is not necessarily issued or still valid. EORI numbers do not expire, but they can be invalidated when a business stops trading, and only the EU’s EORI validation service knows.

Fix: Check the number against the EU EORI validation service before shipping.

Source: European Commission — Economic Operators Registration and Identification number (EORI)

EORI-F01 Not the shape of an EORI number

An EORI number is a two-letter country code followed by up to 15 alphanumeric characters, and nothing else. Punctuation or a longer identifier means the value has been mangled or is not an EORI at all.

Source: European Commission — Economic Operators Registration and Identification number (EORI)

EORI-C01 Country code is not one that issues EORI numbers

The prefix must be the issuing country. EU member states issue them, and the UK issues GB numbers under its own scheme; a code belonging to neither is not an EORI prefix.

Source: European Commission — Economic Operators Registration and Identification number (EORI)

EORI-G01 A GB EORI is usually the VAT number plus 000

UK EORI numbers for VAT-registered businesses are conventionally GB followed by the nine-digit VAT number and then 000, making twelve digits after the prefix. A GB EORI of a different length is possible but unusual enough to be worth re-reading.

Source: Own engineering observation of the common UK form, not a rule from the EU EORI specification — the EU specification only fixes "country code plus up to 15 alphanumeric characters".

EORI-V01 Well-formed EORI number

Country prefix plus an identifier within the published length.

Source: European Commission — Economic Operators Registration and Identification number (EORI)

Format only. Whether a number is registered and active is a question for VIES and the EU EORI validation service.