The Kazakhstan IIN (ИИН — Индивидуальный идентификационный номер; ЖСН — Жеке сәйкестендіру нөмірі) is the 12-digit national identification number assigned to every person registered in Kazakhstan — citizens, permanent residents and foreign nationals alike. Introduced under the “On National Registers” regulation and made mandatory in 2007, the IIN is used across government services, banking, healthcare, taxation and employment. Unlike a bare sequential code, it encodes the holder’s full date of birth, the century of birth and their gender directly within the digits, and a two-pass checksum guards the number against most transcription errors.
This validator performs all five structural checks entirely in your browser, explains each step in plain language and extracts every piece of embedded information when the number is fully valid. No data ever leaves your device.
Structure of the 12-digit IIN
YY MM DD G NNNN C
↑ ↑ ↑ ↑ ↑ ↑
Yr Mo Day CGd Seq Checksum
YY — two-digit birth year (digits 1-2): the last two digits of the year of birth. The full four-digit year is resolved by combining these two digits with the century derived from the G field.
MM — birth month (digits 3-4): 01 through 12, exactly as on a birth certificate. No century encoding here — that responsibility falls entirely to the G digit.
DD — birth day (digits 5-6): 01 through the last valid day of the birth month.
G — century and gender indicator (digit 7): this single digit carries two pieces of information simultaneously:
| G | Gender | Birth century |
|---|---|---|
| 1 | Male | 1800–1899 |
| 2 | Female | 1800–1899 |
| 3 | Male | 1900–1999 |
| 4 | Female | 1900–1999 |
| 5 | Male | 2000–2099 |
| 6 | Female | 2000–2099 |
Odd G values encode male; even values encode female. The century step determines whether
YY maps to the 1800s, 1900s or 2000s. A G digit of 0 or 7-9 is structurally invalid.
NNNN — four-digit sequential serial (digits 8-11): allocated by the registration authority within each birth-date group. No geographic encoding is defined in the public specification for the IIN (unlike, for example, the Russian INN or Bulgarian EGN).
C — checksum digit (digit 12): computed by the two-pass algorithm described below.
The two-pass checksum algorithm
The IIN checksum uses a two-pass weighted-sum scheme. Both passes operate on the first 11 digits:
Pass 1 weights:
Position: 1 2 3 4 5 6 7 8 9 10 11
Weight: 1 2 3 4 5 6 7 8 9 10 11
- Multiply each of digits 1-11 by its pass-1 weight.
- Sum all eleven products.
- Compute
remainder = sum mod 11. - If
remainderis 0–9 → the checksum digit equalsremainder(done). Ifremainderis exactly 10 → proceed to pass 2.
Pass 2 weights:
Position: 1 2 3 4 5 6 7 8 9 10 11
Weight: 3 4 5 6 7 8 9 10 11 1 2
- Multiply each of digits 1-11 by its pass-2 weight.
- Sum all eleven products.
- Compute
remainder2 = sum2 mod 11. - If
remainder2is 0–9 → the checksum digit equalsremainder2. Ifremainder2is 10 → the digit combination is intrinsically invalid.
The two-pass design means that for the rare combinations where pass-1 yields a remainder of exactly 10, a second chance is given before the number is rejected. The validator reports which pass produced the final verdict.
Example walkthrough
Consider an obviously-fictional IIN for a male born on 1 January 1990:
- YY = 90, MM = 01, DD = 01
- G = 3 → Male, born 1900s → full year = 1990
- Serial = 0001
Computing the checksum (pass 1):
Digits: 9 0 0 1 0 1 3 0 0 0 1
Weights: 1 2 3 4 5 6 7 8 9 10 11
Products: 9 + 0 + 0 + 4 + 0 + 6 + 21 + 0 + 0 + 0 + 11 = 51
51 mod 11 = 7 → checksum digit = 7
Full IIN: 900101300017
| Field | Value |
|---|---|
| Date of birth | 1 January 1990 |
| Birth century | 1900s |
| Gender | Male |
| G digit | 3 |
| Serial | 0001 |
| Checksum digit | 7 (pass 1) |
Changing any single digit in positions 1-11 will almost certainly alter the weighted sum and invalidate the checksum, producing a clear explanation of which digit the algorithm expected instead.
Why a two-pass checksum?
A single linear checksum modulo 11 has a small but non-zero probability of producing a remainder of exactly 10, which cannot be represented as a single decimal digit. Rather than reserving those combinations as permanently invalid (which would reduce the IIN number space), Kazakhstan’s specification applies a second pass with a different weight vector before declaring failure. This maximises the usable number space while keeping the checksum robust against common transcription errors such as single-digit substitutions and adjacent-digit transpositions.
Privacy
Every calculation runs entirely in your browser using plain JavaScript arithmetic. No network request is ever made. The IIN you enter never leaves your device. The demo sample is generated client-side from a fully fictional date and has never been assigned to any real person.