Country & TaxFree referencePDF, Excel, Word exportEuropean Union

EU VAT ID Number Formats by Country for ERP Customer and Supplier Validation

Every cross-border B2B invoice in the EU depends on a valid VAT ID in the customer master. This reference shows the structure and length of the VAT number for each member state, so you can build validation rules that catch typing errors at the time of entry rather than at the VAT audit.

Download:
CountryPrefixStructure after prefixDigits/charactersPattern example
Austria
ATU
8 digits
8
ATU12345678
Belgium
BE
10 digits starting 0 or 1
10
BE0123456789
Bulgaria
BG
9 or 10 digits
9-10
BG123456789
Croatia
HR
11 digits
11
HR12345678901
Cyprus
CY
8 digits then 1 letter
9
CY12345678X
Czechia
CZ
8, 9 or 10 digits
8-10
CZ12345678
Denmark
DK
8 digits
8
DK12345678
Estonia
EE
9 digits
9
EE123456789
Finland
FI
8 digits
8
FI12345678
France
FR
2 check characters then 9 digit SIREN
11
FR12345678901
Germany
DE
9 digits
9
DE123456789
Greece
EL
9 digits
9
EL123456789
Hungary
HU
8 digits
8
HU12345678
Ireland
IE
8 or 9 characters with letters
8-9
IE1234567X
Italy
IT
11 digits
11
IT12345678901
Latvia
LV
11 digits
11
LV12345678901
Lithuania
LT
9 or 12 digits
9 or 12
LT123456789
Luxembourg
LU
8 digits
8
LU12345678
Malta
MT
8 digits
8
MT12345678
Netherlands
NL
9 digits, letter B, 2 digits
12
NL123456789B01
Poland
PL
10 digits (NIP)
10
PL1234567890
Portugal
PT
9 digits
9
PT123456789
Romania
RO
2 to 10 digits
2-10
RO1234567890
Slovakia
SK
10 digits
10
SK1234567890
Slovenia
SI
8 digits
8
SI12345678
Spain
ES
9 characters, letter or digit at start and end
9
ESX1234567X
Sweden
SE
10 digits then 01
12
SE123456789001

Patterns are formal length and character rules only. A number that matches the pattern can still be invalid or unregistered. Always confirm the status in the EU VIES service before you apply a zero rate on an intra-community supply. Examples are fictitious. Northern Ireland uses prefix XI for goods; check the current rules before using it.

Customer master VAT ID cleanup

Optional: have us review a read-only extract of your customer master for malformed VAT IDs.

Optional. The tool and every export work without this. No spam.

How to use the table

Filter by country, then copy the structure into your validation rule. A simple rule has three parts: the prefix must equal the country of the address, the remaining characters must match the length and character class, and the number must pass a VIES lookup before the first zero rated order is released. Export the table to Excel to keep it next to your data cleansing plan when you migrate customers from an old system into abas, proALPHA, Exact, Visma, IFS or Priority.

Pattern check versus real validation

A pattern check only proves that the number looks plausible. VIES, the European Commission lookup service, confirms that the number is registered for intra-community transactions at the time of the query. Some national systems also check a modulus control digit, which you can add as a second layer. For audit purposes, store the VIES consultation result with the date and the request identifier, because tax authorities in several countries expect proof that you checked.

Country specific traps

Germany has both a USt-IdNr, which starts with DE, and a national tax number, which looks different and must not be used for intra-community supplies. The Netherlands has a separate BTW-nummer ending in B and a two digit suffix, which differs from a company registration number. France builds the VAT number from a check key and the nine digit SIREN. Spain and Ireland allow letters inside the number, so a numeric-only rule will reject valid customers.

  • Do not mix tax numbers and VAT IDs in the same field.
  • Allow letters for Spain, Ireland and Cyprus.
  • Handle Greece as EL, not GR.
  • Strip spaces and dots before validation, then store a clean value.

Common mistakes

Frequent errors include storing the VAT ID without its prefix, validating only the length, and relying on a one time check at customer creation. A customer can lose its registration later, so schedule periodic revalidation for active customers, and always revalidate before a large zero rated shipment. Keep the result of each check on the customer record.

Frequently Asked Questions

Can I rely on the pattern alone for a zero rated sale?

No. The pattern only confirms the format. For an intra-community supply you should confirm the number in VIES on or near the invoice date and keep the evidence. Authorities in many countries can deny the exemption if the customer number was invalid.

Why do Spanish and Irish numbers contain letters?

Both countries use alphanumeric identifiers. Spanish numbers typically begin or end with a letter, and Irish numbers include one or two letters in the structure. A rule that allows digits only will wrongly reject valid customers.

Does the prefix count as part of the number?

In invoicing and VIES queries the country prefix is part of the displayed VAT ID. Many ERPs store the prefix and the number in separate fields, which is fine as long as the invoice prints them together.

How do I handle UK and Swiss customers?

They are outside the EU VAT system and VIES does not cover them. Use their national registration formats and treat sales as exports, with the documentation your customs and tax advisers require.

If your customer master has thousands of unchecked VAT numbers, Netray can run a read-only validation pass over a data extract and give you an exception list to clean up before migration.