North Europe ID Generator
Generate valid test national ID numbers for Estonia, Latvia, Lithuania, Finland, Sweden, Norway, Denmark, and Iceland with correct checksums.
About
National identification numbers in Northern Europe follow strict algorithmic structures. Each country uses a unique combination of birth date encoding, sequence numbering, and checksum validation. A malformed test ID will be rejected by any system that implements proper validation, causing false negatives in QA pipelines and wasted debugging hours. This generator produces structurally valid IDs for 8 countries: Estonia, Latvia, Lithuania, Finland, Sweden, Norway, Denmark, and Iceland. All checksums are computed using the actual government-specified algorithms (weighted modular arithmetic, Luhn, or lookup tables). These IDs are intended exclusively for software testing and development purposes.
Note: generated IDs are algorithmically valid but do not correspond to real persons. The tool approximates real-world ID pools but does not guarantee uniqueness across generations. Edge cases such as leap year dates (Feb 29) are handled correctly. Some countries have transitioned formats over time (Latvia post-2017, Finland post-2023), and both legacy and current formats are supported where applicable.
Formulas
Each country uses a weighted checksum to validate the ID. The general pattern is a dot product of digits with a weight vector, followed by a modular reduction.
Where di is the i-th digit of the ID, wi is the corresponding weight, and m is the modulus (11 for most countries, 31 for Finland, 10 for Sweden Luhn).
Estonia and Lithuania stage 1 weights: [1,2,3,4,5,6,7,8,9,1]. If remainder = 10, apply stage 2 weights: [3,4,5,6,7,8,9,1,2,3]. If still 10, checksum = 0.
Sweden uses the Luhn algorithm: double every other digit from the right, sum the resulting digits, and the check digit satisfies (S + d) mod 10 = 0.
Finland maps the 9-digit numeric portion modulo 31 to the character set: 0123456789ABCDEFHJKLMNPRSTUVWXY.
Norway uses two check digits with weights [3,7,6,1,8,9,4,5,2] and [5,4,3,2,7,6,5,4,3,2] respectively, both mod 11. If either remainder is 1, the combination is invalid and a new sequence is tried.
Iceland uses weights [3,2,7,6,5,4,3,2] on the first 8 digits. The check digit = 11 โ (sum mod 11). If result is 11, check digit = 0. If 10, the combination is invalid.
Reference Data
| Country | ID Name | Format | Length | Checksum | Gender Encoded | Example Structure |
|---|---|---|---|---|---|---|
| ๐ช๐ช Estonia | Isikukood | GYYMMDDSSSC | 11 | Mod 11 (2-stage weights) | Yes (digit 1) | 39901011234 |
| ๐ฑ๐ป Latvia (old) | Personas kods | DDMMYY-CNNND | 11 + dash | Mod 11 weighted (deprecated) | No | 010190-12345 |
| ๐ฑ๐ป Latvia (new) | Personas kods | 32XXXXXXXXD | 11 | Mod 11 | No | 32XXXXXXXX |
| ๐ฑ๐น Lithuania | Asmens kodas | GYYMMDDSSSC | 11 | Mod 11 (2-stage weights) | Yes (digit 1) | 38501011234 |
| ๐ซ๐ฎ Finland | Henkilรถtunnus | DDMMYYCSSSD | 11 | Mod 31 โ char lookup | Yes (odd=M, even=F) | 010190-123A |
| ๐ธ๐ช Sweden | Personnummer | YYMMDD-SSSD | 10 + dash | Luhn algorithm | Yes (digit 9 odd=M) | 900101-1234 |
| ๐ณ๐ด Norway | Fรธdselsnummer | DDMMYYIIIKK | 11 | 2 check digits (mod 11) | Yes (digit 9 odd=M) | 01019012345 |
| ๐ฉ๐ฐ Denmark | CPR-nummer | DDMMYY-SSSS | 10 + dash | None (post-2007) | Yes (last digit odd=M) | 010190-1234 |
| ๐ฎ๐ธ Iceland | Kennitala | DDMMYYRRCX | 10 | Mod 11 (weights 3,2,7,6,5,4,3,2) | No | 0101901239 |
| G = gender/century digit, S = sequence, C = checksum, D = check digit, I = individual, K = kontroll, R = random, X = century | ||||||