VAT Number Generator for Software Testing
Make random test VAT numbers for the 27 EU countries, the United Kingdom, Switzerland and Norway, or check the format and check digit of a number you paste. Everything runs in your browser.
Test data only. Each number is made up at random and only passes the format and check-digit rules, so by chance it can belong to a real business. Use these numbers to test software and forms; never put one on an invoice, a tax return or any other real document.
Examples made when this page was built (Germany)
Tap a number to copy it.
Check the format of a VAT number
The checker runs in your browser as you type; with JavaScript off it cannot answer.
A pass means the number is well formed, nothing more. Whether it is registered, and to whom, only the official lookups can say: VIES (European Commission) for EU numbers, GOV.UK for UK numbers (its page offers to check "if a UK VAT registration number is valid"), the Swiss UID register and the Norwegian Brønnøysund Register Centre. Numbers starting with XI (Northern Ireland) are read with the UK rules.
What the generator makes for each country
The checker accepts the same shapes, and for some countries a few older or personal formats too (for example the 10-digit Bulgarian and Czech personal numbers). The examples below were generated when this page was built.
- Austria ATU: ATU followed by 8 digits; the last digit is a check digit. Example:
ATU16181236 - Belgium BE: BE followed by 10 digits starting with 0 or 1; the last two digits are a mod 97 check. Example:
BE0334843208 - Bulgaria BG: BG followed by 9 digits (legal entities) or 10 digits (individuals); each type has its own check digit. Example:
BG620126037 - Croatia HR: HR followed by the 11-digit OIB; ISO 7064 MOD 11,10 check digit. Example:
HR76952143953 - Cyprus CY: CY followed by 8 digits and a check letter. Example:
CY59844132M - Czechia CZ: CZ followed by 8 digits (legal entities) or 9 to 10 digits (individuals); check digit. Example:
CZ25520181 - Denmark DK: DK followed by 8 digits; weighted mod 11 check. Example:
DK99582464 - Estonia EE: EE followed by 9 digits; weighted check digit. Example:
EE106409291 - Finland FI: FI followed by 8 digits; weighted mod 11 check. Example:
FI47916382 - France FR: FR followed by 2 check characters and the 9-digit SIREN (itself Luhn-checked). Example:
FR60954553251 - Germany DE: DE followed by 9 digits; ISO 7064 MOD 11,10 check digit. Example:
DE728447281 - Greece EL: EL (not GR) followed by 9 digits; check digit. Example:
EL933429164 - Hungary HU: HU followed by 8 digits; weighted check digit. Example:
HU76844283 - Ireland IE: IE followed by 7 digits and 1 or 2 letters (an older style has a letter in second place); check letter. Example:
IE1663498V - Italy IT: IT followed by 11 digits: 7-digit company number, 3-digit office code, Luhn check digit. Example:
IT49328150104 - Latvia LV: LV followed by 11 digits; check digit. Example:
LV40000528679 - Lithuania LT: LT followed by 9 digits (legal entities) or 12 digits; check digit. Example:
LT277071713 - Luxembourg LU: LU followed by 8 digits; the last two are a mod 89 check. Example:
LU29342480 - Malta MT: MT followed by 8 digits; weighted mod 37 check. Example:
MT52593355 - Netherlands NL: NL followed by 9 digits, the letter B and 2 digits; mod 11 or mod 97 check. Example:
NL176839914B01 - Poland PL: PL followed by 10 digits; weighted mod 11 check. Example:
PL9723059682 - Portugal PT: PT followed by 9 digits; mod 11 check digit. Example:
PT594931665 - Romania RO: RO followed by 2 to 10 digits; check digit. Example:
RO42080269 - Slovakia SK: SK followed by 10 digits that divide by 11. Example:
SK8599368547 - Slovenia SI: SI followed by 8 digits; mod 11 check digit. Example:
SI43000916 - Spain ES: ES followed by 9 characters: a letter or digit, 7 digits and a check character. Example:
ESA11174190 - Sweden SE: SE followed by 12 digits ending in 01; Luhn check on the first 10. Example:
SE562961143401 - United Kingdom GB: GB followed by 9 digits (12 with a branch suffix); mod 97 check, old and newer (9755) series. Example:
GB726414486 - Switzerland CHE: CHE followed by 9 digits and MWST, TVA or IVA; mod 11 check digit. Example:
CHE-618.219.593 MWST - Norway NO: NO followed by the 9-digit organisation number and MVA; weighted mod 11 check. Example:
NO960152492MVA
How the numbers are made and tested
For each country the page draws random digits with the browser's crypto.getRandomValues() and then works out the check digit or check letters with that country's rule, so every number passes the check. The rules are a port of the open-source python-stdnum library, version 2.2.
Before this page went up (2026-10-03) we ran two tests against python-stdnum itself: 1,000 numbers per country with the letters and 1,000 without all passed, and more than 400,000 altered or random strings (changed, missing and swapped digits, separators, other countries' letters) got the same answer from both checkers.
Good uses: testing the VAT field of a sign-up or checkout form, an import file, an accounting integration or your own validation code. A number that passes a format check can still be refused by VIES, so test the "not registered" path of your software as well.
VAT number generator FAQ
Are these real VAT numbers?
No. Each one is built at random by your browser so that it has the right length, letters and check digit for the country. Nobody registered it, and no tax authority was asked. Because the space of valid-looking numbers is finite, a random number can still be one that a real business holds.
Can I put a generated number on an invoice?
No. Use them only as test data, for example to try the VAT field of a form, an import file or your own validation code. A real invoice needs the VAT number the tax authority gave you, and your customer's real number where the rules ask for it. Check those numbers with VIES or GOV.UK, not with this page.
What does the checker on this page actually check?
The length, the characters in each position and the check digit, following the rules of the open-source python-stdnum library (version 2.2). A pass means the number is well formed. It does not mean the number is registered, active or belongs to a particular business: only VIES for EU numbers, GOV.UK for UK numbers and the national registers can tell you that.
Why does a Greek number start with EL?
The generator writes EL for Greece because that is the letter pair Greek VAT numbers use in the EU's VIES system. The checker accepts both EL and GR in front of a Greek number, the way python-stdnum does.
Is anything I generate or paste sent to your server?
No. Numbers are generated and checked by this page's script in your browser and are not saved. Google Analytics receives the page view, an event the first time you use the generator or the checker (with the country picked) and, when you press a copy button, the kind of button; no number is ever included.
Official lookups linked on this page were opened on 2026-10-03. General information, not legal or tax advice.