Reference dataset
VAT and GST number formats by country
Prefix, format pattern, regex, and verification service for VAT and GST registration numbers across jurisdictions. Built for developers writing invoice validators and B2B sellers verifying buyer tax IDs. Downloadable as CSV and JSON.
How VAT and GST registration numbers are structured in each country. The country prefix used on invoices (with one notable exception, Greece uses EL rather than GR), the format pattern, a regex you can drop into a validator, an example number, and the verification service that confirms whether a given number is currently valid. Each row cites the national tax authority that publishes the format.
| Country | Prefix | Format | Example | Regex | Verification | Source |
|---|---|---|---|---|---|---|
| Austria | AT | AT + U + 8 digits | ATU12345678 | ^ATU[0-9]{8}$ | FinanzOnline UID-Bestätigung; EU VIES | Bundesministerium für Finanzen (BMF) |
| Belgium | BE | BE + 10 digits (leading 0 or 1) | BE0123456789 | ^BE[01][0-9]{9}$ | EU VIES; FOD Financiën KBO/BCE lookup | FOD Financiën / SPF Finances |
| Bulgaria | BG | BG + 9 or 10 digits | BG123456789 | ^BG[0-9]{9,10}$ | EU VIES; NRA (НАП) portal | Национална агенция за приходите (NRA) |
| Cyprus | CY | CY + 8 digits + 1 letter | CY12345678L | ^CY[0-9]{8}[A-Z]$ | EU VIES; Cyprus Tax Department | Cyprus Tax Department |
| Czech Republic | CZ | CZ + 8, 9, or 10 digits | CZ12345678 | ^CZ[0-9]{8,10}$ | EU VIES; ADIS register (Finanční správa) | Finanční správa České republiky |
| Germany | DE | DE + 9 digits | DE123456789 | ^DE[0-9]{9}$ | BZSt qualified confirmation; EU VIES | Bundeszentralamt für Steuern (BZSt) |
| Denmark | DK | DK + 8 digits | DK12345678 | ^DK[0-9]{8}$ | EU VIES; CVR register (Erhvervsstyrelsen) | Skattestyrelsen (Danish Tax Agency) |
| Estonia | EE | EE + 9 digits | EE123456789 | ^EE[0-9]{9}$ | EU VIES; EMTA e-services | Maksu- ja Tolliamet (EMTA) |
| Greece | EL | EL + 9 digits | EL123456789 | ^EL[0-9]{9}$ | EU VIES; AADE TAXISnet | Independent Authority for Public Revenue (AADE) |
| Spain | ES | ES + 9 characters; first and/or last position may be a letter depending on entity type | ESA1234567B | ^ES(?:[A-Z][0-9]{7}[A-Z]|[A-Z][0-9]{8}|[0-9]{8}[A-Z])$ | EU VIES; Agencia Tributaria (AEAT) consulta NIF | Agencia Estatal de Administración Tributaria (AEAT) |
| Finland | FI | FI + 8 digits | FI12345678 | ^FI[0-9]{8}$ | EU VIES; Vero.fi YTJ company-information service | Verohallinto (Finnish Tax Administration) |
| France | FR | FR + 2-character key (digits and/or uppercase letters, excluding I and O) + 9-digit SIREN | FR12345678901 | ^FR[0-9A-HJ-NP-Z]{2}[0-9]{9}$ | EU VIES; impots.gouv.fr | Direction générale des Finances publiques (DGFiP) |
| Croatia | HR | HR + 11 digits | HR12345678901 | ^HR[0-9]{11}$ | EU VIES; Porezna uprava OIB lookup | Porezna uprava (Croatian Tax Administration) |
| Hungary | HU | HU + 8 digits | HU12345678 | ^HU[0-9]{8}$ | EU VIES; NAV adószám-érvényesség lookup | Nemzeti Adó- és Vámhivatal (NAV) |
| Ireland | IE | IE + 7 digits + 1 or 2 letters (current format: 7 digits + 2 letters; legacy variants exist) | IE1234567WA | ^IE(?:[0-9]{7}[A-W]|[0-9]{7}[A-W][A-I]|[0-9][A-Z+*][0-9]{5}[A-W])$ | EU VIES; Revenue Online Service (ROS) | Revenue Commissioners |
| Italy | IT | IT + 11 digits | IT12345678901 | ^IT[0-9]{11}$ | EU VIES; Agenzia delle Entrate VIES service | Agenzia delle Entrate |
| Lithuania | LT | LT + 9 or 12 digits | LT123456789 | ^LT(?:[0-9]{9}|[0-9]{12})$ | EU VIES; VMI (State Tax Inspectorate) | Valstybinė mokesčių inspekcija (VMI) |
| Luxembourg | LU | LU + 8 digits | LU12345678 | ^LU[0-9]{8}$ | EU VIES; AED | Administration de l'enregistrement, des domaines et de la TVA (AED) |
| Latvia | LV | LV + 11 digits | LV12345678901 | ^LV[0-9]{11}$ | EU VIES; VID (State Revenue Service) | Valsts ieņēmumu dienests (VID) |
| Malta | MT | MT + 8 digits | MT12345678 | ^MT[0-9]{8}$ | EU VIES; CfR (Commissioner for Revenue) | Commissioner for Revenue (Malta) |
| Netherlands | NL | NL + 9 digits + 'B' + 2 digits (legal entities); since 1 Jan 2020 sole traders use a 12-character alphanumeric btw-id (NL + 9 alphanumerics + 'B' + 2 digits) decoupled from BSN | NL123456789B01 | ^NL[0-9A-Z+*]{10}[0-9]{2}$ | EU VIES; Belastingdienst btw-controle | Belastingdienst |
| Poland | PL | PL + 10 digits | PL1234567890 | ^PL[0-9]{10}$ | EU VIES; KAS 'Biała lista podatników VAT' (white list) | Krajowa Administracja Skarbowa (KAS) |
| Portugal | PT | PT + 9 digits | PT123456789 | ^PT[0-9]{9}$ | EU VIES; AT portal | Autoridade Tributária e Aduaneira (AT) |
| Romania | RO | RO + 2 to 10 digits | RO1234567890 | ^RO[1-9][0-9]{1,9}$ | EU VIES; ANAF Registrul persoanelor impozabile | Agenția Națională de Administrare Fiscală (ANAF) |
| Sweden | SE | SE + 12 digits (last two are always '01') | SE123456789001 | ^SE[0-9]{10}01$ | EU VIES; Skatteverket | Skatteverket |
| Slovenia | SI | SI + 8 digits (first digit 1-9) | SI12345678 | ^SI[1-9][0-9]{7}$ | EU VIES; FURS davčni zavezanci register | Finančna uprava Republike Slovenije (FURS) |
| Slovakia | SK | SK + 10 digits | SK1234567890 | ^SK[1-9][0-9]{9}$ | EU VIES; Finančné riaditeľstvo SR | Finančné riaditeľstvo Slovenskej republiky |
| United Kingdom | GB | GB + 9 digits (standard), or GB + 12 digits (branch traders), or GB + 'GD' + 3 digits (government departments 500-999), or GB + 'HA' + 3 digits (health authorities 000-499) | GB123456789 | ^GB(?:[0-9]{9}|[0-9]{12}|GD[0-9]{3}|HA[0-9]{3})$ | HMRC 'Check a UK VAT number' service. NOT validatable via EU VIES post-Brexit | HM Revenue and Customs (HMRC) |
| Northern Ireland | XI | XI + 9 digits (or 12 digits / GD / HA variants, mirroring GB structure) | XI123456789 | ^XI(?:[0-9]{9}|[0-9]{12}|GD[0-9]{3}|HA[0-9]{3})$ | EU VIES (Northern Ireland goods movements); HMRC service | HM Revenue and Customs (HMRC) |
| Switzerland | CHE | CHE + 9 digits + space + 'MWST' (German) or 'TVA' (French) or 'IVA' (Italian) | CHE-123.456.789 MWST | ^CHE[- ]?[0-9]{3}\.?[0-9]{3}\.?[0-9]{3}( (MWST|TVA|IVA))?$ | ESTV UID-Register (https://www.uid.admin.ch/); EFTA does not participate in VIES | Eidgenössische Steuerverwaltung (ESTV) |
| Norway | NO | NO + 9 digits + 'MVA' | NO123456789MVA | ^NO[0-9]{9}MVA$ | Brønnøysundregistrene (https://data.brreg.no/enhetsregisteret/) | Skatteetaten (Norwegian Tax Administration) |
| Iceland | IS | IS + 5 or 6 digits | IS123456 | ^IS[0-9]{5,6}$ | Skatturinn | Skatturinn (Iceland Revenue and Customs) |
| Australia | 11 digits (often displayed as XX XXX XXX XXX) | 51824753556 | ^[0-9]{11}$ | ABN Lookup (https://abr.business.gov.au/) | Australian Taxation Office (ATO) | |
| New Zealand | 8 or 9 digits (often displayed XXX-XXX-XXX) | 123456789 | ^[0-9]{8,9}$ | Inland Revenue Department; no public lookup API for arbitrary GST numbers | Inland Revenue Department (IRD) | |
| Japan | T | 'T' + 13-digit Corporate Number (法人番号) for corporations, or 'T' + 13-digit individually issued number for sole proprietors | T1234567890123 | ^T[0-9]{13}$ | National Tax Agency Qualified Invoice Issuer Public Site (https://www.invoice-kohyo.nta.go.jp/) | National Tax Agency (NTA) |
| Singapore | Typically the entity's UEN (Unique Entity Number), 9-10 characters. Common forms: 'NNNNNNNNNX', 'TNNPQNNNNX' or 'SNNPQNNNNX', 'MNNNNNNNNX' | 200012345M | ^(?:[0-9]{8}[A-Z]|[STR][0-9]{2}[A-Z]{2}[0-9]{4}[A-Z]|M[0-9]{8}[A-Z])$ | IRAS GST Registered Business Search | Inland Revenue Authority of Singapore (IRAS) | |
| India | 15 characters: 2-digit state code + 10-character PAN + 1-digit entity number + 'Z' (default) + 1 check character | 22AAAAA0000A1Z5 | ^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$ | GSTN portal 'Search Taxpayer' (https://services.gst.gov.in/services/searchtp) | Goods and Services Tax Network (GSTN) / CBIC | |
| United Arab Emirates | 15 digits | 100123456700003 | ^[0-9]{15}$ | Federal Tax Authority TRN Verification | Federal Tax Authority (FTA) | |
| South Africa | 10 digits, always starting with '4' | 4123456789 | ^4[0-9]{9}$ | SARS VAT Vendor Search (eFiling) | South African Revenue Service (SARS) | |
| Canada | 9-digit Business Number + 'RT' + 4-digit reference (e.g. 123456789RT0001) | 123456789RT0001 | ^[0-9]{9}RT[0-9]{4}$ | CRA GST/HST Registry | Canada Revenue Agency (CRA) | |
| Mexico | 12 alphanumerics for legal entities, 13 alphanumerics for natural persons | ABC123456T1A | ^(?:[A-ZÑ&]{3}[0-9]{6}[A-Z0-9]{3}|[A-ZÑ&]{4}[0-9]{6}[A-Z0-9]{3})$ | SAT 'Validación de RFC' | Servicio de Administración Tributaria (SAT) |
Every row cites a primary source. See the methodology section below for sourcing details and known limitations.
Methodology
Regex patterns match format only, not check digits. Most countries use a check-digit algorithm (modulo 11, modulo 97, Luhn variants) but delegate validation of liveness and check digits to a national lookup service or, for the EU, the VIES portal. The regex is therefore a syntactic filter; full validation requires a lookup.
Areas where this dataset specifically corrects common AI errors and validator bugs:
- Greece uses
EL, notGR. This is a historical artifact and the single most common AI-generated regex error for EU VAT numbers. - UK post-Brexit: GB VAT numbers no longer validate via VIES (since 1 January 2021). Use HMRC's "Check a UK VAT number" service. Northern Ireland businesses moving goods continue to use the
XIprefix in VIES. - Austria's literal "U":
ATU+ 8 digits. Validators that drop the U will reject every valid Austrian number. - Spain has three valid sub-formats depending on entity type (NIF for corporates, NIE for foreign individuals, NIF for natural persons). The regex uses alternation to cover all three.
- Switzerland's UID is
CHE-123.456.789 MWST(or TVA / IVA depending on canton language). The language suffix is part of the printed number. - The Netherlands changed format in 2020: sole traders received a new privacy-protecting btw-id that includes letters in positions 3 through 11 and a literal "B" at position 12. Validators built before 2020 reject the new format.
- Ireland has three coexisting format families: modern 7 digits + 2 letters, transitional 7 digits + 1 letter, and a legacy 1 digit + special character + 5 digits + 1 letter.
- Japan introduced T-prefixed qualified invoice issuer numbers on 1 October 2023 (T + 13-digit Corporate Number). The T is part of the printed registration number.
- Italy: partita IVA (11 digits, business) must not be confused with codice fiscale (16 alphanumerics, personal).
For validators, the right architecture is: (1) syntactic check via the regex here, (2) authoritative lookup via the verification service in the last column. Format alone is necessary but not sufficient.
Capture VAT numbers without the validator headache
JupiterInvoice validates the buyer's VAT or GST number format on entry and lets you call out to the national verification service where the integration exists. No silent failures, no rejected invoices. Free, no signup.
Create your first invoiceNo signup required. Build now, save later.