Generator · Luxembourg data
Luxembourg TVA
Endpoint GET /v1/lu/tva
What it covers
Returns a valid Luxembourg TVA (VAT identifier) with a correct two-digit check pair. Use `format=vat` for the LU-prefixed VAT number. Set `invalid=true` for a TVA with a deliberately wrong check pair.
A Luxembourg VAT number (numéro de TVA) is the letters LU followed by eight digits: a six-digit body and a two-digit check pair. It is the simplest checksum in the fleet — the check pair is just the body taken modulo 89.
How it’s calculated
The two-digit check pair is simply the six-digit body taken modulo 89, zero-padded to two digits.
Algorithm
- Take the six-digit body (the part after the LU prefix, before the check pair).
- Interpret it as an integer and compute body mod 89. The result is in the range 0–88.
- Zero-pad that value to two digits — that is the check pair.
- The full VAT number is LU + the six-digit body + the two-digit check pair.
Worked example
LU + body 123456 + check pair ??
Body = 123456.
123456 mod 89: 89 × 1387 = 123443, and 123456 − 123443 = 13, so the remainder is 13.
13 zero-padded to two digits = "13".The check pair is 13, so the VAT number is LU12345613.
Edge cases
- The body’s first digit is drawn 1–9, so the six-digit body never has a leading zero.
- Because the check pair is body mod 89, it always lands in 00–88 — the pair 89–99 can never occur in a valid LU VAT number.
- A body that is an exact multiple of 89 gives check pair 00 (e.g. body 000089 → 00), which is valid, not a placeholder.
Gotchas
- The modulus is 89, not 97 (the IBAN/mod-97 family) nor 11 — using the wrong modulus is the classic mistake here.
- The check is over the six-digit body only; the LU country prefix is not part of the arithmetic.
Parameters
| Parameter | Type | Description |
|---|---|---|
| count | integer1–1000 | Number of records to return, 1–1000 (your plan may lower this). Omitted returns a single record; set it for a batch. |
| edge | boolean | Restrict output to valid edge-case TVAs from the rare corners. |
| extreme | boolean | Return a correct value wrapped in a hostile encoding (untrimmed whitespace, invisible/zero-width characters, BOM, or bidi/combining marks). Homoglyphs are excluded so the value stays machine-parseable; it still validates after normalisation. |
| format | "national" | "vat" | Rendering: bare 8-digit TVA (default) or the LU-prefixed VAT number. |
| invalid | boolean | Return a TVA with a deliberately wrong two-digit check pair. |
| seed | integer | Integer seed for reproducible output: the same seed always yields the same record. |
Response fields
| Field | Type | Description |
|---|---|---|
| value | string | The identifier in the requested format (national or VAT). |
| digits | string | The canonical, unprefixed 8-digit TVA. |
Other generators for Luxembourg
Luxembourg companyLuxembourg company nameLuxembourg email addressLuxembourg IBANLuxembourg matriculeLuxembourg personLuxembourg person nameLuxembourg product or service offeringLuxembourg vehicle registration plate
See all generators for Luxembourg →The same kind of identifier elsewhere
Austrian data · Austrian FirmenbuchnummerAustrian data · Austrian SteuernummerAustrian data · Austrian UIDBelgian data · Belgian OndernemingsnummerBulgarian data · Bulgarian EIKCzech data · Czech IČODanish data · Danish CVRDutch data · Dutch btw-idDutch data · Dutch KvK numberDutch data · Dutch RSINEstonian data · Estonian KMKREstonian data · Estonian registrikoodFrench data · French SIRENGerman data · German HandelsregisternummerGerman data · German Personalausweis numberGerman data · German USt-IdNrGerman data · German Wirtschafts-IdNrHungarian data · Hungarian adószámHungarian data · Hungarian cégjegyzékszámIrish data · Irish CRO numberIrish data · Irish VAT numberItalian data · Italian Partita IVALatvian data · Latvian registracijas numursLithuanian data · Lithuanian įmonės kodasLithuanian data · Lithuanian PVM (VAT) numberMaltese data · Maltese identity card numberMaltese data · Maltese VAT numberPolish data · Polish driving licence numberPolish data · Polish ID card numberPolish data · Polish KRS numberPolish data · Polish land and mortgage register numberPolish data · Polish NIPPolish data · Polish passport numberPolish data · Polish REGONPortuguese data · Portuguese Cartão de Cidadão numberRomanian data · Romanian CUI/CIFSlovak data · Slovak IČ DPHSlovak data · Slovak IČOSpanish data · Spanish CIFSwedish data · Swedish organisationsnummer
Try it