Identity Number (NID) generator (Albania)
An Albanian NID (personal number) is ten characters — a letter-coded birth decade, the birth year and date (with 50 added to the month for women), a serial, and a check letter defined by decree but not reliably documented in public. These test values are synthetic and format-valid.
Synthetic NID (format-valid). The check letter’s algorithm (VKM 827/2003 annex) is not reliably public, so test values use a random letter.
Format specification
| Identifier | Identity Number (NID) (Numri i Identitetit) |
|---|---|
| Country | 🇦🇱 Albania |
| Format | A00000000A |
| Length | 10 characters |
| Checksum | None |
| Example | G95211654H |
| Safe strategy | Synthetic |
| Data quality | Verified against sources |
Identity Number (NID): what each part means
| A0 | Birth decade as a letter plus the final year digit: A = 1900s, B = 1910s … I = 1980s, J = 1990s, K = 2000s, L = 2010s (so I5 = 1985, K3 = 2003). |
|---|---|
| 00 | Month of birth, with 50 added for women (51–62 = a woman born in month 1–12). |
| 00 | Day of birth. |
| 000 | Serial number for people born on the same date. |
| A | Check letter (A–W). The algorithm is defined in a decree annex but not reliably published, so validators should treat it leniently; test values use a random letter. |
Validation regex
Matches the canonical value — strip separators and uppercase first: value.replace(/[^A-Za-z0-9]/g, '').toUpperCase()
^[A-T]\d{8}[A-W]$ References
Common questions
Will these pass my validation?
Yes — they are well-formed Identity Number (NID) values (A00000000A) and pass standard format checks.
Could one belong to a real person?
These are synthetic values. They are format-valid but not drawn from a guaranteed reserved range, so use them only for testing.
Can I generate many at once?
Increase the count, or use the free API and CSV/JSON export for large datasets.