VAT Number Validator
Finance & Global IDsValidate VAT numbers for all 27 EU countries plus UK, Norway, and Switzerland. Per-country format rules with checksum for DE and NL. Instant, browser-only.
Reviewed by the thecalcu.com team · Last updated July 31, 2026
What is a VAT?
The VAT Number Validator checks whether a VAT (Value Added Tax) registration number follows the official format for its issuing country. It covers all 27 EU member states, the United Kingdom (GB), Northern Ireland for EU purposes (XI), Norway (NO), and Switzerland (CHE), 30 country formats in total.
VAT numbers are the primary identifier used in European B2B commerce. They appear on invoices, customs documents, and intra-EU supply declarations. Every country uses its own format, Germany's is 11 characters starting with DE and ending in a checksum digit; the Netherlands always contains a B in the middle; Sweden uses 14 characters; Ireland has letters embedded in the middle of the number. This diversity makes VAT number validation non-trivial: a single regex cannot cover all countries.
This validator uses a per-country dispatch table, applying the specific format rule for whichever country the prefix identifies. For Germany and the Netherlands, it also verifies the checksum digit, a mathematical property embedded in the number that detects most single-digit transcription errors.
What this validator does not check: whether the number is currently registered or active with the issuing tax authority. Format and checksum validation only, it cannot confirm registration status. For a live check against tax authority records, use the European Commission's VIES system directly.
For related financial identifier validation, use the IBAN Validator for bank account numbers or the GST Validator for India's equivalent of VAT.
Why Use a VAT Number Validator?
VAT numbers are entered in ERP systems, e-commerce checkout flows, customs declarations, and B2B invoice systems. An incorrectly formatted VAT number causes invoice rejection by the recipient's accounts payable team, failed VIES lookups, and potential VAT liability issues if zero-rated intra-EU supplies are invoiced without a valid counterparty VAT number.
The most common errors are: wrong country prefix (GR instead of EL for Greece), missing a character (Germany requires exactly 9 digits after DE), incorrect placement of the B in a Dutch number, or including punctuation characters like dots or hyphens that some countries print in their official format but omit from the electronic number.
Who Should Use This Validator?
Finance and accounts payable teams, Verifying VAT numbers on supplier invoices before payment is a standard control in European accounting. A format check is the first gate before running a live VIES lookup.
E-commerce platforms handling EU B2B sales, Online stores that offer VAT exemption for verified business customers need to validate the format of submitted VAT numbers before applying zero-rate pricing and before confirming against VIES.
Developers building European invoicing or ERP integrations, Any application that collects, stores, or transmits VAT numbers needs client-side format validation. This tool documents the exact format rule for all 30 supported countries.
Import/export and customs teams, Cross-border shipments within the EU and to/from the UK and Switzerland require VAT numbers on documentation. A format check prevents paperwork errors at the customs stage.
Freelancers and consultants working with EU clients, Independent contractors who invoice EU businesses need to collect and verify their client's VAT number to issue a correct reverse-charge invoice.
What Insights Does the VAT Number Validator Give You?
The validator identifies the country from the prefix and names it, confirms whether the format matches the country's specification, and, for Germany and the Netherlands, reports whether the checksum passed or failed.
Where no checksum is available, the tool states this explicitly rather than implying full verification. This scoping is important for compliance: format validity is a necessary but not sufficient condition for a VAT number being registered and active.
How to use this VAT calculator
- Type or paste the VAT number into the input field, including the 2-letter country prefix (e.g.
DE123456789,GB123456789,FR12345678901). - Spaces and dots are stripped automatically, entering
CHE-123.456.789works the same asCHE123456789. - The result updates automatically as you type.
- Check the Valid or Invalid badge.
- If Invalid, the error message names the country, states the expected format, and gives an example.
- If Valid, the details show the country name, format description, and checksum status.
Formula & Methodology
Each country has a fixed format rule. Selected rules: | Country | Prefix | Format | Length | Checksum | |---|---|---|---|---| | Germany | DE | DE + 9 digits | 11 | Yes, mod 11 | | France | FR | FR + 2 alphanum + 9 digits | 13 | No | | Netherlands | NL | NL + 9 digits + B + 2 digits | 14 | Yes, mod 11 | | UK | GB | GB + 9 digits (standard) | 11 | No | | Sweden | SE | SE + 12 digits | 14 | No | | Italy | IT | IT + 11 digits | 13 | No | | Spain | ES | ES + alphanum + 7 digits + alphanum | 11 | No | | Greece | EL | EL + 9 digits | 11 | No | | Switzerland | CHE | CHE + 9 digits + optional MWST/TVA/IVA | 12–16 | No | German checksum algorithm (Doppelter Fakultätsalgorithmus): Iterates over digits 1–8. At each step:sum = (digit + product) mod 10; if sum is 0, set to 10.product = (2 × sum) mod 11. After 8 digits, check digit =11 - product(or 0 if result is 1). Dutch checksum: Multiply digits 1–8 of the 9-digit block by weights 9–2, sum the products, compute remainder mod 11. Check digit equals the remainder (0 if > 9). Valid examples: -DE123456789, Germany, passes if checksum digit is correct -NL123456789B01, Netherlands, passes if 9-digit block checksum is correct -GB123456789, UK, format only -EL123456789, Greece (not GR) Invalid examples: -GR123456789, wrong prefix for Greece (should be EL) -FR1234567890, France requires 2 alphanumeric chars then 9 digits (13 total); this is 12 -NL12345678B01, Netherlands requires 9 digits before B, not 8
Related Tools
You may also find these useful: PAN Number Validator.
Frequently Asked Questions