{
  "title": "VAT and GST number formats",
  "description": "Format, prefix, regex, and verification service for VAT and GST registration numbers across jurisdictions. Each row cites the national tax authority.",
  "row_count": 41,
  "source": "https://jupiterinvoice.com/reference/vat-number-formats/",
  "license": "CC BY 4.0 with attribution to JupiterInvoice and each row's primary source.",
  "rows": [
    {
      "country_code": "AT",
      "country_name": "Austria",
      "tax_type": "VAT",
      "vat_id_local_name": "Umsatzsteuer-Identifikationsnummer (UID-Nummer)",
      "prefix": "AT",
      "format_description": "AT + U + 8 digits",
      "example_format": "ATU12345678",
      "regex": "^ATU[0-9]{8}$",
      "check_digit_algorithm": "Modulo 11 with positional weights; validated via FinanzOnline / VIES",
      "verification_service": "FinanzOnline UID-Bestätigung; EU VIES",
      "source_url": "https://www.bmf.gv.at/themen/steuern/fuer-unternehmen/umsatzsteuer/UID-und-ZM.html",
      "source_name": "Bundesministerium für Finanzen (BMF)",
      "last_verified": "2026-05-27",
      "notes": "The literal letter 'U' is part of the format and is a frequent omission in AI-generated regexes."
    },
    {
      "country_code": "BE",
      "country_name": "Belgium",
      "tax_type": "VAT",
      "vat_id_local_name": "BTW-identificatienummer / Numéro de TVA",
      "prefix": "BE",
      "format_description": "BE + 10 digits (leading 0 or 1)",
      "example_format": "BE0123456789",
      "regex": "^BE[01][0-9]{9}$",
      "check_digit_algorithm": "Modulo 97 on the first 8 digits",
      "verification_service": "EU VIES; FOD Financiën KBO/BCE lookup",
      "source_url": "https://finance.belgium.be/en/enterprises/vat/vat-identification-number",
      "source_name": "FOD Financiën / SPF Finances",
      "last_verified": "2026-05-27",
      "notes": "Historically 9 digits; since 2008 always 10 digits, prefixed with 0 (and increasingly 1 as the 0-block was exhausted)."
    },
    {
      "country_code": "BG",
      "country_name": "Bulgaria",
      "tax_type": "VAT",
      "vat_id_local_name": "ДДС номер",
      "prefix": "BG",
      "format_description": "BG + 9 or 10 digits",
      "example_format": "BG123456789",
      "regex": "^BG[0-9]{9,10}$",
      "check_digit_algorithm": "Different algorithms for legal entities (9 digits) and natural persons / branches (10 digits); validated via VIES",
      "verification_service": "EU VIES; NRA (НАП) portal",
      "source_url": "https://nra.bg/wps/portal/nra/taxes/vat",
      "source_name": "Национална агенция за приходите (NRA)",
      "last_verified": "2026-05-27",
      "notes": "10-digit form is used for sole traders and certain natural persons; 9-digit form is the standard EIK-based legal-entity ID."
    },
    {
      "country_code": "CY",
      "country_name": "Cyprus",
      "tax_type": "VAT",
      "vat_id_local_name": "Αριθμός Εγγραφής ΦΠΑ",
      "prefix": "CY",
      "format_description": "CY + 8 digits + 1 letter",
      "example_format": "CY12345678L",
      "regex": "^CY[0-9]{8}[A-Z]$",
      "check_digit_algorithm": "Trailing letter is the check character; validated via VIES",
      "verification_service": "EU VIES; Cyprus Tax Department",
      "source_url": "https://www.mof.gov.cy/mof/tax/taxdep.nsf/page22_en/page22_en?OpenDocument",
      "source_name": "Cyprus Tax Department",
      "last_verified": "2026-05-27",
      "notes": "The first digit is never 9 in legal-entity registrations (reserved range)."
    },
    {
      "country_code": "CZ",
      "country_name": "Czech Republic",
      "tax_type": "VAT",
      "vat_id_local_name": "Daňové identifikační číslo (DIČ)",
      "prefix": "CZ",
      "format_description": "CZ + 8, 9, or 10 digits",
      "example_format": "CZ12345678",
      "regex": "^CZ[0-9]{8,10}$",
      "check_digit_algorithm": "Three distinct algorithms: 8-digit (legal entities), 9-digit (special), 10-digit (natural persons, based on birth number)",
      "verification_service": "EU VIES; ADIS register (Finanční správa)",
      "source_url": "https://adisspr.mfcr.cz/dpr/DphReg",
      "source_name": "Finanční správa České republiky",
      "last_verified": "2026-05-27",
      "notes": "10-digit form encodes a birth number; format-only regex cannot enforce that semantic."
    },
    {
      "country_code": "DE",
      "country_name": "Germany",
      "tax_type": "VAT",
      "vat_id_local_name": "Umsatzsteuer-Identifikationsnummer (USt-IdNr.)",
      "prefix": "DE",
      "format_description": "DE + 9 digits",
      "example_format": "DE123456789",
      "regex": "^DE[0-9]{9}$",
      "check_digit_algorithm": "Modulo 11 with positional weighting; validated via BZSt Bestätigungsverfahren or VIES",
      "verification_service": "BZSt qualified confirmation; EU VIES",
      "source_url": "https://www.bzst.de/EN/Businesses/VAT/vat_node.html",
      "source_name": "Bundeszentralamt für Steuern (BZSt)",
      "last_verified": "2026-05-27",
      "notes": "USt-IdNr. is issued separately from the domestic Steuernummer; both exist concurrently for German businesses."
    },
    {
      "country_code": "DK",
      "country_name": "Denmark",
      "tax_type": "VAT",
      "vat_id_local_name": "Momsregistreringsnummer (CVR-nummer used as VAT no.)",
      "prefix": "DK",
      "format_description": "DK + 8 digits",
      "example_format": "DK12345678",
      "regex": "^DK[0-9]{8}$",
      "check_digit_algorithm": "Modulo 11 with weights 2,7,6,5,4,3,2,1",
      "verification_service": "EU VIES; CVR register (Erhvervsstyrelsen)",
      "source_url": "https://skat.dk/en-us/businesses/vat",
      "source_name": "Skattestyrelsen (Danish Tax Agency)",
      "last_verified": "2026-05-27",
      "notes": "VAT number equals the 8-digit CVR (business register) number with DK prefix."
    },
    {
      "country_code": "EE",
      "country_name": "Estonia",
      "tax_type": "VAT",
      "vat_id_local_name": "Käibemaksukohustuslase number (KMKR)",
      "prefix": "EE",
      "format_description": "EE + 9 digits",
      "example_format": "EE123456789",
      "regex": "^EE[0-9]{9}$",
      "check_digit_algorithm": "Modulo 10 with weights 3,7,1,3,7,1,3,7",
      "verification_service": "EU VIES; EMTA e-services",
      "source_url": "https://www.emta.ee/en/business-client/registration-business/vat-liability",
      "source_name": "Maksu- ja Tolliamet (EMTA)",
      "last_verified": "2026-05-27",
      "notes": "First digit is conventionally 1 for the standard issuance range."
    },
    {
      "country_code": "EL",
      "country_name": "Greece",
      "tax_type": "VAT",
      "vat_id_local_name": "Αριθμός Φορολογικού Μητρώου (ΑΦΜ)",
      "prefix": "EL",
      "format_description": "EL + 9 digits",
      "example_format": "EL123456789",
      "regex": "^EL[0-9]{9}$",
      "check_digit_algorithm": "Modulo 11 on the first 8 digits with weights 256,128,64,32,16,8,4,2",
      "verification_service": "EU VIES; AADE TAXISnet",
      "source_url": "https://www.aade.gr/",
      "source_name": "Independent Authority for Public Revenue (AADE)",
      "last_verified": "2026-05-27",
      "notes": "Greece uses the prefix EL, not GR. This is the single most common AI-generated regex error for EU VAT data."
    },
    {
      "country_code": "ES",
      "country_name": "Spain",
      "tax_type": "VAT",
      "vat_id_local_name": "Número de Identificación Fiscal a efectos del IVA (NIF-IVA)",
      "prefix": "ES",
      "format_description": "ES + 9 characters; first and/or last position may be a letter depending on entity type",
      "example_format": "ESA1234567B",
      "regex": "^ES(?:[A-Z][0-9]{7}[A-Z]|[A-Z][0-9]{8}|[0-9]{8}[A-Z])$",
      "check_digit_algorithm": "Multiple algorithms: legal entities (CIF, leading letter) use modulo 10 or 11; natural persons (NIF/NIE) use modulo 23 producing a trailing letter",
      "verification_service": "EU VIES; Agencia Tributaria (AEAT) consulta NIF",
      "source_url": "https://sede.agenciatributaria.gob.es/Sede/iva.html",
      "source_name": "Agencia Estatal de Administración Tributaria (AEAT)",
      "last_verified": "2026-05-27",
      "notes": "Three valid sub-formats: leading letter + 7 digits + trailing letter (corporates), leading letter + 8 digits, and 8 digits + trailing letter (natural-person NIF). Leading letter encodes legal form (A=SA, B=SL, etc.)."
    },
    {
      "country_code": "FI",
      "country_name": "Finland",
      "tax_type": "VAT",
      "vat_id_local_name": "Arvonlisäveronumero (ALV-numero)",
      "prefix": "FI",
      "format_description": "FI + 8 digits",
      "example_format": "FI12345678",
      "regex": "^FI[0-9]{8}$",
      "check_digit_algorithm": "Modulo 11 with weights 7,9,10,5,8,4,2",
      "verification_service": "EU VIES; Vero.fi YTJ company-information service",
      "source_url": "https://www.vero.fi/en/businesses-and-corporations/about-corporate-taxes/vat/",
      "source_name": "Verohallinto (Finnish Tax Administration)",
      "last_verified": "2026-05-27",
      "notes": "Derived from the 7-digit Business ID (Y-tunnus) by removing the hyphen before the check digit."
    },
    {
      "country_code": "FR",
      "country_name": "France",
      "tax_type": "VAT",
      "vat_id_local_name": "Numéro de TVA intracommunautaire",
      "prefix": "FR",
      "format_description": "FR + 2-character key (digits and/or uppercase letters, excluding I and O) + 9-digit SIREN",
      "example_format": "FR12345678901",
      "regex": "^FR[0-9A-HJ-NP-Z]{2}[0-9]{9}$",
      "check_digit_algorithm": "The 2-character key is a modulo 97 computation derived from the SIREN; when both characters are digits, key = (12 + 3 × SIREN mod 97) mod 97",
      "verification_service": "EU VIES; impots.gouv.fr",
      "source_url": "https://www.impots.gouv.fr/professionnel/numero-de-tva-intracommunautaire",
      "source_name": "Direction générale des Finances publiques (DGFiP)",
      "last_verified": "2026-05-27",
      "notes": "Letters I and O are excluded from the key to avoid confusion with 1 and 0. Most issued keys are numeric, but alphanumeric keys are valid and not rare for older registrations."
    },
    {
      "country_code": "HR",
      "country_name": "Croatia",
      "tax_type": "VAT",
      "vat_id_local_name": "PDV identifikacijski broj (OIB-based)",
      "prefix": "HR",
      "format_description": "HR + 11 digits",
      "example_format": "HR12345678901",
      "regex": "^HR[0-9]{11}$",
      "check_digit_algorithm": "ISO 7064 MOD 11,10 over the OIB",
      "verification_service": "EU VIES; Porezna uprava OIB lookup",
      "source_url": "https://www.porezna-uprava.hr/en/Pages/default.aspx",
      "source_name": "Porezna uprava (Croatian Tax Administration)",
      "last_verified": "2026-05-27",
      "notes": "VAT ID equals the 11-digit OIB of the registered entity."
    },
    {
      "country_code": "HU",
      "country_name": "Hungary",
      "tax_type": "VAT",
      "vat_id_local_name": "Közösségi adószám",
      "prefix": "HU",
      "format_description": "HU + 8 digits",
      "example_format": "HU12345678",
      "regex": "^HU[0-9]{8}$",
      "check_digit_algorithm": "Modulo 10 with weights 9,7,3,1,9,7,3 on the first 7 digits",
      "verification_service": "EU VIES; NAV adószám-érvényesség lookup",
      "source_url": "https://nav.gov.hu/ado/afa",
      "source_name": "Nemzeti Adó- és Vámhivatal (NAV)",
      "last_verified": "2026-05-27",
      "notes": "The 8-digit közösségi adószám is the first 8 digits of the 11-digit domestic adószám."
    },
    {
      "country_code": "IE",
      "country_name": "Ireland",
      "tax_type": "VAT",
      "vat_id_local_name": "VAT registration number / Uimhir CBL",
      "prefix": "IE",
      "format_description": "IE + 7 digits + 1 or 2 letters (current format: 7 digits + 2 letters; legacy variants exist)",
      "example_format": "IE1234567WA",
      "regex": "^IE(?:[0-9]{7}[A-W]|[0-9]{7}[A-W][A-I]|[0-9][A-Z+*][0-9]{5}[A-W])$",
      "check_digit_algorithm": "Letter at position 8 is the check character; modulo 23 over preceding digits, mapped to A-W. Second letter (when present) encodes group registration",
      "verification_service": "EU VIES; Revenue Online Service (ROS)",
      "source_url": "https://www.revenue.ie/en/vat/vat-registration/index.aspx",
      "source_name": "Revenue Commissioners",
      "last_verified": "2026-05-27",
      "notes": "Three valid format families coexist: modern 7D+2L, transitional 7D+1L, and legacy 1D + special-character + 5D + 1L."
    },
    {
      "country_code": "IT",
      "country_name": "Italy",
      "tax_type": "VAT",
      "vat_id_local_name": "Partita IVA",
      "prefix": "IT",
      "format_description": "IT + 11 digits",
      "example_format": "IT12345678901",
      "regex": "^IT[0-9]{11}$",
      "check_digit_algorithm": "Luhn-style modulo 10 on the first 10 digits (Italian variant)",
      "verification_service": "EU VIES; Agenzia delle Entrate VIES service",
      "source_url": "https://www.agenziaentrate.gov.it/",
      "source_name": "Agenzia delle Entrate",
      "last_verified": "2026-05-27",
      "notes": "Partita IVA (11 digits, business) must not be confused with the 16-character alphanumeric codice fiscale (personal tax ID)."
    },
    {
      "country_code": "LT",
      "country_name": "Lithuania",
      "tax_type": "VAT",
      "vat_id_local_name": "PVM mokėtojo kodas",
      "prefix": "LT",
      "format_description": "LT + 9 or 12 digits",
      "example_format": "LT123456789",
      "regex": "^LT(?:[0-9]{9}|[0-9]{12})$",
      "check_digit_algorithm": "Modulo 11 (with modulo 1 fallback to ISO 7064) over the leading digits",
      "verification_service": "EU VIES; VMI (State Tax Inspectorate)",
      "source_url": "https://www.vmi.lt/evmi/en/",
      "source_name": "Valstybinė mokesčių inspekcija (VMI)",
      "last_verified": "2026-05-27",
      "notes": "9-digit form is for legal entities; 12-digit form is for temporary registrations and natural persons."
    },
    {
      "country_code": "LU",
      "country_name": "Luxembourg",
      "tax_type": "VAT",
      "vat_id_local_name": "Numéro d'identification à la TVA",
      "prefix": "LU",
      "format_description": "LU + 8 digits",
      "example_format": "LU12345678",
      "regex": "^LU[0-9]{8}$",
      "check_digit_algorithm": "Modulo 89 over the first 6 digits, producing the trailing 2-digit check",
      "verification_service": "EU VIES; AED",
      "source_url": "https://pfi.public.lu/fr/creation-developpement/fiscalite/tva.html",
      "source_name": "Administration de l'enregistrement, des domaines et de la TVA (AED)",
      "last_verified": "2026-05-27",
      "notes": "Modulo 89 is unusual among EU check-digit algorithms."
    },
    {
      "country_code": "LV",
      "country_name": "Latvia",
      "tax_type": "VAT",
      "vat_id_local_name": "PVN reģistrācijas numurs",
      "prefix": "LV",
      "format_description": "LV + 11 digits",
      "example_format": "LV12345678901",
      "regex": "^LV[0-9]{11}$",
      "check_digit_algorithm": "Two algorithms: legal entities use modulo 11 with specific weights; natural persons use a date-of-birth-derived algorithm",
      "verification_service": "EU VIES; VID (State Revenue Service)",
      "source_url": "https://www.vid.gov.lv/en/value-added-tax",
      "source_name": "Valsts ieņēmumu dienests (VID)",
      "last_verified": "2026-05-27",
      "notes": "First digit indicates entity type: 4-9 = legal entity, 3 = no longer issued, leading 0/1/2 = natural-person date encoding."
    },
    {
      "country_code": "MT",
      "country_name": "Malta",
      "tax_type": "VAT",
      "vat_id_local_name": "VAT registration number",
      "prefix": "MT",
      "format_description": "MT + 8 digits",
      "example_format": "MT12345678",
      "regex": "^MT[0-9]{8}$",
      "check_digit_algorithm": "Modulo 37 with weights 3,4,6,7,8,9 over the first 6 digits",
      "verification_service": "EU VIES; CfR (Commissioner for Revenue)",
      "source_url": "https://cfr.gov.mt/en/vat/Pages/VAT.aspx",
      "source_name": "Commissioner for Revenue (Malta)",
      "last_verified": "2026-05-27",
      "notes": "First 6 digits are sequential issuance, last 2 are the check."
    },
    {
      "country_code": "NL",
      "country_name": "Netherlands",
      "tax_type": "VAT",
      "vat_id_local_name": "Btw-identificatienummer (btw-id)",
      "prefix": "NL",
      "format_description": "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",
      "example_format": "NL123456789B01",
      "regex": "^NL[0-9A-Z+*]{10}[0-9]{2}$",
      "check_digit_algorithm": "Legal entities: modulo 11 over the 9 leading digits (RSIN-based). Sole-trader post-2020 btw-id: random, no public check-digit algorithm",
      "verification_service": "EU VIES; Belastingdienst btw-controle",
      "source_url": "https://www.belastingdienst.nl/",
      "source_name": "Belastingdienst",
      "last_verified": "2026-05-27",
      "notes": "Since 1 January 2020, sole traders received a new privacy-protecting btw-id that no longer embeds their BSN."
    },
    {
      "country_code": "PL",
      "country_name": "Poland",
      "tax_type": "VAT",
      "vat_id_local_name": "Numer identyfikacji podatkowej (NIP)",
      "prefix": "PL",
      "format_description": "PL + 10 digits",
      "example_format": "PL1234567890",
      "regex": "^PL[0-9]{10}$",
      "check_digit_algorithm": "Modulo 11 with weights 6,5,7,2,3,4,5,6,7 on the first 9 digits",
      "verification_service": "EU VIES; KAS 'Biała lista podatników VAT' (white list)",
      "source_url": "https://www.podatki.gov.pl/wykaz-podatnikow-vat-wyszukiwarka/",
      "source_name": "Krajowa Administracja Skarbowa (KAS)",
      "last_verified": "2026-05-27",
      "notes": "Polish NIP is sometimes written with hyphens; strip separators before validating."
    },
    {
      "country_code": "PT",
      "country_name": "Portugal",
      "tax_type": "VAT",
      "vat_id_local_name": "Número de Identificação Fiscal (NIF / NIPC)",
      "prefix": "PT",
      "format_description": "PT + 9 digits",
      "example_format": "PT123456789",
      "regex": "^PT[0-9]{9}$",
      "check_digit_algorithm": "Modulo 11 with weights 9,8,7,6,5,4,3,2",
      "verification_service": "EU VIES; AT portal",
      "source_url": "https://info.portaldasfinancas.gov.pt/",
      "source_name": "Autoridade Tributária e Aduaneira (AT)",
      "last_verified": "2026-05-27",
      "notes": "First digit encodes taxpayer type: 1-3 = individuals, 5 = corporations, 6 = public entities, 8 = sole traders, 9 = provisional/non-resident."
    },
    {
      "country_code": "RO",
      "country_name": "Romania",
      "tax_type": "VAT",
      "vat_id_local_name": "Cod de înregistrare în scopuri de TVA",
      "prefix": "RO",
      "format_description": "RO + 2 to 10 digits",
      "example_format": "RO1234567890",
      "regex": "^RO[1-9][0-9]{1,9}$",
      "check_digit_algorithm": "Modulo 11 with weights 7,5,3,2,1,7,5,3,2 right-aligned over the leading digits",
      "verification_service": "EU VIES; ANAF Registrul persoanelor impozabile",
      "source_url": "https://www.anaf.ro/",
      "source_name": "Agenția Națională de Administrare Fiscală (ANAF)",
      "last_verified": "2026-05-27",
      "notes": "Variable length (2-10 digits) is a frequent source of validator bugs. Leading zero is not allowed."
    },
    {
      "country_code": "SE",
      "country_name": "Sweden",
      "tax_type": "VAT",
      "vat_id_local_name": "Momsregistreringsnummer (Moms-nr)",
      "prefix": "SE",
      "format_description": "SE + 12 digits (last two are always '01')",
      "example_format": "SE123456789001",
      "regex": "^SE[0-9]{10}01$",
      "check_digit_algorithm": "Luhn modulo 10 on the first 10 digits (derived from the organisationsnummer)",
      "verification_service": "EU VIES; Skatteverket",
      "source_url": "https://www.skatteverket.se/",
      "source_name": "Skatteverket",
      "last_verified": "2026-05-27",
      "notes": "Final two digits are the sequence number of the establishment; in practice almost always '01'."
    },
    {
      "country_code": "SI",
      "country_name": "Slovenia",
      "tax_type": "VAT",
      "vat_id_local_name": "Identifikacijska številka za DDV (ID za DDV)",
      "prefix": "SI",
      "format_description": "SI + 8 digits (first digit 1-9)",
      "example_format": "SI12345678",
      "regex": "^SI[1-9][0-9]{7}$",
      "check_digit_algorithm": "Modulo 11 with weights 8,7,6,5,4,3,2 on the first 7 digits",
      "verification_service": "EU VIES; FURS davčni zavezanci register",
      "source_url": "https://www.fu.gov.si/en/",
      "source_name": "Finančna uprava Republike Slovenije (FURS)",
      "last_verified": "2026-05-27",
      "notes": "Leading 0 is not used; the first digit is always 1-9."
    },
    {
      "country_code": "SK",
      "country_name": "Slovakia",
      "tax_type": "VAT",
      "vat_id_local_name": "Identifikačné číslo pre DPH (IČ DPH)",
      "prefix": "SK",
      "format_description": "SK + 10 digits",
      "example_format": "SK1234567890",
      "regex": "^SK[1-9][0-9]{9}$",
      "check_digit_algorithm": "Divisibility check: the full 10-digit number must be divisible by 11 (and second-to-last digit must be odd)",
      "verification_service": "EU VIES; Finančné riaditeľstvo SR",
      "source_url": "https://www.financnasprava.sk/en/businesses/taxes-businesses/vat",
      "source_name": "Finančné riaditeľstvo Slovenskej republiky",
      "last_verified": "2026-05-27",
      "notes": "The full-number-divisible-by-11 rule is unusual and easy for validators to miss."
    },
    {
      "country_code": "GB",
      "country_name": "United Kingdom",
      "tax_type": "VAT",
      "vat_id_local_name": "VAT registration number",
      "prefix": "GB",
      "format_description": "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)",
      "example_format": "GB123456789",
      "regex": "^GB(?:[0-9]{9}|[0-9]{12}|GD[0-9]{3}|HA[0-9]{3})$",
      "check_digit_algorithm": "Modulo 97 (with -55 offset for numbers issued from late 2010 onward) on the first 7 digits, producing the trailing 2-digit check",
      "verification_service": "HMRC 'Check a UK VAT number' service. NOT validatable via EU VIES post-Brexit",
      "source_url": "https://www.gov.uk/guidance/check-a-uk-vat-number",
      "source_name": "HM Revenue and Customs (HMRC)",
      "last_verified": "2026-05-27",
      "notes": "Since 1 January 2021, GB VAT numbers are no longer validatable via VIES. Use HMRC's API/web service. Northern Ireland businesses moving goods continue to use the XI prefix for VIES."
    },
    {
      "country_code": "XI",
      "country_name": "Northern Ireland",
      "tax_type": "VAT",
      "vat_id_local_name": "VAT registration number (Northern Ireland Protocol)",
      "prefix": "XI",
      "format_description": "XI + 9 digits (or 12 digits / GD / HA variants, mirroring GB structure)",
      "example_format": "XI123456789",
      "regex": "^XI(?:[0-9]{9}|[0-9]{12}|GD[0-9]{3}|HA[0-9]{3})$",
      "check_digit_algorithm": "Same modulo 97 (with -55 variant) as GB; same underlying registration",
      "verification_service": "EU VIES (Northern Ireland goods movements); HMRC service",
      "source_url": "https://www.gov.uk/guidance/check-a-uk-vat-number",
      "source_name": "HM Revenue and Customs (HMRC)",
      "last_verified": "2026-05-27",
      "notes": "XI is the Northern Ireland Protocol prefix used in place of GB for intra-EU goods movements since 1 January 2021."
    },
    {
      "country_code": "CH",
      "country_name": "Switzerland",
      "tax_type": "VAT",
      "vat_id_local_name": "Unternehmens-Identifikationsnummer (UID) / Mehrwertsteuernummer",
      "prefix": "CHE",
      "format_description": "CHE + 9 digits + space + 'MWST' (German) or 'TVA' (French) or 'IVA' (Italian)",
      "example_format": "CHE-123.456.789 MWST",
      "regex": "^CHE[- ]?[0-9]{3}\\.?[0-9]{3}\\.?[0-9]{3}( (MWST|TVA|IVA))?$",
      "check_digit_algorithm": "Modulo 11 over the 8 leading digits with weights 5,4,3,2,7,6,5,4 (ISO 7064 variant)",
      "verification_service": "ESTV UID-Register (https://www.uid.admin.ch/); EFTA does not participate in VIES",
      "source_url": "https://www.estv.admin.ch/estv/en/home/value-added-tax/vat-registration.html",
      "source_name": "Eidgenössische Steuerverwaltung (ESTV)",
      "last_verified": "2026-05-27",
      "notes": "The trailing language suffix (MWST/TVA/IVA) is part of the printed VAT number even though the underlying UID is the same."
    },
    {
      "country_code": "NO",
      "country_name": "Norway",
      "tax_type": "VAT (Merverdiavgift / MVA)",
      "vat_id_local_name": "Organisasjonsnummer + 'MVA' suffix",
      "prefix": "NO",
      "format_description": "NO + 9 digits + 'MVA'",
      "example_format": "NO123456789MVA",
      "regex": "^NO[0-9]{9}MVA$",
      "check_digit_algorithm": "Modulo 11 with weights 3,2,7,6,5,4,3,2 on the first 8 digits",
      "verification_service": "Brønnøysundregistrene (https://data.brreg.no/enhetsregisteret/)",
      "source_url": "https://www.skatteetaten.no/en/business-and-organisation/vat-and-duties/vat/registration/",
      "source_name": "Skatteetaten (Norwegian Tax Administration)",
      "last_verified": "2026-05-27",
      "notes": "VAT-registered orgnummer is the same 9-digit company number suffixed with 'MVA'."
    },
    {
      "country_code": "IS",
      "country_name": "Iceland",
      "tax_type": "VAT (Virðisaukaskattur / VSK)",
      "vat_id_local_name": "Virðisaukaskattsnúmer (VSK-númer)",
      "prefix": "IS",
      "format_description": "IS + 5 or 6 digits",
      "example_format": "IS123456",
      "regex": "^IS[0-9]{5,6}$",
      "check_digit_algorithm": "Sequential issuance with no published check-digit algorithm; validity confirmed by RSK lookup",
      "verification_service": "Skatturinn",
      "source_url": "https://www.skatturinn.is/english/companies/value-added-tax/",
      "source_name": "Skatturinn (Iceland Revenue and Customs)",
      "last_verified": "2026-05-27",
      "notes": "Older VSK numbers are 5 digits; newer issuance is 6 digits."
    },
    {
      "country_code": "AU",
      "country_name": "Australia",
      "tax_type": "GST",
      "vat_id_local_name": "Australian Business Number (ABN); GST registration is recorded against the ABN",
      "prefix": "",
      "format_description": "11 digits (often displayed as XX XXX XXX XXX)",
      "example_format": "51824753556",
      "regex": "^[0-9]{11}$",
      "check_digit_algorithm": "Modulo 89 with weights 10,1,3,5,7,9,11,13,15,17,19 after subtracting 1 from the first digit",
      "verification_service": "ABN Lookup (https://abr.business.gov.au/)",
      "source_url": "https://www.ato.gov.au/business/gst/registering-for-gst/",
      "source_name": "Australian Taxation Office (ATO)",
      "last_verified": "2026-05-27",
      "notes": "Australia issues no separate GST number; GST registration is a flag on the ABN. Check-digit algorithm uses modulo 89, not the more common modulo 11."
    },
    {
      "country_code": "NZ",
      "country_name": "New Zealand",
      "tax_type": "GST",
      "vat_id_local_name": "GST registration number (IRD number used)",
      "prefix": "",
      "format_description": "8 or 9 digits (often displayed XXX-XXX-XXX)",
      "example_format": "123456789",
      "regex": "^[0-9]{8,9}$",
      "check_digit_algorithm": "Two-step modulo 11 over the leading 7 or 8 digits",
      "verification_service": "Inland Revenue Department; no public lookup API for arbitrary GST numbers",
      "source_url": "https://www.ird.govt.nz/gst/registering-for-gst",
      "source_name": "Inland Revenue Department (IRD)",
      "last_verified": "2026-05-27",
      "notes": "GST number in NZ is the entity's IRD number. Older IRD numbers are 8 digits; numbers issued from 2008 onward are 9 digits."
    },
    {
      "country_code": "JP",
      "country_name": "Japan",
      "tax_type": "Consumption Tax (qualified invoice issuer)",
      "vat_id_local_name": "Qualified Invoice Issuer Registration Number",
      "prefix": "T",
      "format_description": "'T' + 13-digit Corporate Number (法人番号) for corporations, or 'T' + 13-digit individually issued number for sole proprietors",
      "example_format": "T1234567890123",
      "regex": "^T[0-9]{13}$",
      "check_digit_algorithm": "Corporate Number check digit (first digit) computed by the NTA's algorithm",
      "verification_service": "National Tax Agency Qualified Invoice Issuer Public Site (https://www.invoice-kohyo.nta.go.jp/)",
      "source_url": "https://www.nta.go.jp/taxes/shiraberu/zeimokubetsu/shohi/keigenzeiritsu/invoice.htm",
      "source_name": "National Tax Agency (NTA)",
      "last_verified": "2026-05-27",
      "notes": "Japan introduced the qualified invoice system on 1 October 2023. The 'T' is part of the printed registration number on invoices."
    },
    {
      "country_code": "SG",
      "country_name": "Singapore",
      "tax_type": "GST",
      "vat_id_local_name": "GST registration number",
      "prefix": "",
      "format_description": "Typically the entity's UEN (Unique Entity Number), 9-10 characters. Common forms: 'NNNNNNNNNX', 'TNNPQNNNNX' or 'SNNPQNNNNX', 'MNNNNNNNNX'",
      "example_format": "200012345M",
      "regex": "^(?:[0-9]{8}[A-Z]|[STR][0-9]{2}[A-Z]{2}[0-9]{4}[A-Z]|M[0-9]{8}[A-Z])$",
      "check_digit_algorithm": "Trailing letter is a check character; algorithm published by ACRA for UEN",
      "verification_service": "IRAS GST Registered Business Search",
      "source_url": "https://www.iras.gov.sg/taxes/goods-services-tax-(gst)/gst-registered-businesses",
      "source_name": "Inland Revenue Authority of Singapore (IRAS)",
      "last_verified": "2026-05-27",
      "notes": "Singapore has multiple UEN formats depending on entity type."
    },
    {
      "country_code": "IN",
      "country_name": "India",
      "tax_type": "GST",
      "vat_id_local_name": "Goods and Services Tax Identification Number (GSTIN)",
      "prefix": "",
      "format_description": "15 characters: 2-digit state code + 10-character PAN + 1-digit entity number + 'Z' (default) + 1 check character",
      "example_format": "22AAAAA0000A1Z5",
      "regex": "^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z][1-9A-Z]Z[0-9A-Z]$",
      "check_digit_algorithm": "Final character is a base-36 modulo 36 check over the preceding 14 characters",
      "verification_service": "GSTN portal 'Search Taxpayer' (https://services.gst.gov.in/services/searchtp)",
      "source_url": "https://www.gst.gov.in/",
      "source_name": "Goods and Services Tax Network (GSTN) / CBIC",
      "last_verified": "2026-05-27",
      "notes": "Position 13 (entity number) is normally 1-9 but can extend to A-Z for entities with more than 9 registrations in a state."
    },
    {
      "country_code": "AE",
      "country_name": "United Arab Emirates",
      "tax_type": "VAT",
      "vat_id_local_name": "Tax Registration Number (TRN)",
      "prefix": "",
      "format_description": "15 digits",
      "example_format": "100123456700003",
      "regex": "^[0-9]{15}$",
      "check_digit_algorithm": "Not publicly documented by the FTA",
      "verification_service": "Federal Tax Authority TRN Verification",
      "source_url": "https://tax.gov.ae/en/taxes/vat.aspx",
      "source_name": "Federal Tax Authority (FTA)",
      "last_verified": "2026-05-27",
      "notes": "TRN is 15 digits with no prefix. UAE introduced VAT on 1 January 2018."
    },
    {
      "country_code": "ZA",
      "country_name": "South Africa",
      "tax_type": "VAT",
      "vat_id_local_name": "VAT registration number",
      "prefix": "",
      "format_description": "10 digits, always starting with '4'",
      "example_format": "4123456789",
      "regex": "^4[0-9]{9}$",
      "check_digit_algorithm": "Modulo 10 (Luhn) on the first 9 digits",
      "verification_service": "SARS VAT Vendor Search (eFiling)",
      "source_url": "https://www.sars.gov.za/types-of-tax/value-added-tax/",
      "source_name": "South African Revenue Service (SARS)",
      "last_verified": "2026-05-27",
      "notes": "The leading '4' is mandatory and identifies the number as a VAT registration."
    },
    {
      "country_code": "CA",
      "country_name": "Canada",
      "tax_type": "GST/HST",
      "vat_id_local_name": "Business Number with GST/HST program account (RT suffix)",
      "prefix": "",
      "format_description": "9-digit Business Number + 'RT' + 4-digit reference (e.g. 123456789RT0001)",
      "example_format": "123456789RT0001",
      "regex": "^[0-9]{9}RT[0-9]{4}$",
      "check_digit_algorithm": "Luhn modulo 10 on the 9-digit Business Number",
      "verification_service": "CRA GST/HST Registry",
      "source_url": "https://www.canada.ca/en/revenue-agency/services/tax/businesses/topics/registering-your-business/you-need-a-business-number-a-program-account.html",
      "source_name": "Canada Revenue Agency (CRA)",
      "last_verified": "2026-05-27",
      "notes": "The 'RT' suffix denotes the GST/HST program account specifically. The same Business Number can carry multiple program accounts."
    },
    {
      "country_code": "MX",
      "country_name": "Mexico",
      "tax_type": "VAT (IVA)",
      "vat_id_local_name": "Registro Federal de Contribuyentes (RFC)",
      "prefix": "",
      "format_description": "12 alphanumerics for legal entities, 13 alphanumerics for natural persons",
      "example_format": "ABC123456T1A",
      "regex": "^(?:[A-ZÑ&]{3}[0-9]{6}[A-Z0-9]{3}|[A-ZÑ&]{4}[0-9]{6}[A-Z0-9]{3})$",
      "check_digit_algorithm": "Final character of the 3-character homoclave is a modulo 11 check digit computed by SAT",
      "verification_service": "SAT 'Validación de RFC'",
      "source_url": "https://www.sat.gob.mx/",
      "source_name": "Servicio de Administración Tributaria (SAT)",
      "last_verified": "2026-05-27",
      "notes": "RFC is Mexico's general taxpayer ID; IVA registration is a flag on the RFC, not a separate number. Legal entities use 12 chars; natural persons use 13."
    }
  ]
}