Iceland Kennitala Validator

Verify an Icelandic kennitala with the official Lund weighted mod-11 check digit.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

Iceland’s kennitala (plural: kennitalur) is the national identifier issued to every person born in or moving to Iceland, and to every legally registered company or organisation. Unlike many national IDs, it encodes meaningful information directly into its digits — the holder’s date of birth (or a company’s registration date), a century marker, and a mathematically verified check digit. This validator implements the full official specification so you can catch typos in forms, onboarding pipelines, and data imports before they reach a live system.

The tool works entirely in your browser. Nothing you enter is sent over the network.

How it works

A kennitala is always 10 digits (a hyphen after the sixth digit is cosmetic and ignored). The positions carry the following meaning:

PositionsFieldNotes
1–2Day (DD)01–31 for persons; 41–71 for legal entities (real day + 40)
3–4Month (MM)01–12
5–6Year (YY)Last two digits of the year
7–8Serial (NN)Random, ensures uniqueness for the same date
9Century indicator (K)8 = 1800s, 9 = 1900s, 0 = 2000s
10Check digit (C)Lund weighted mod-11 checksum over positions 1–8

The Lund check-digit algorithm

The check digit is calculated over the first eight digits only (the century indicator at position 9 is excluded). Weights 3, 2, 7, 6, 5, 4, 3, 2 are applied in order:

sum = d₁×3 + d₂×2 + d₃×7 + d₄×6 + d₅×5 + d₆×4 + d₇×3 + d₈×2

Then:

  • If sum mod 11 = 0 → check digit = 0
  • If sum mod 11 = 10no valid kennitala exists for those eight digits
  • Otherwise → check digit = 11 − (sum mod 11)

The first two digits reveal the holder type. For an individual, the day field is 01–31. For a company or other legal entity, 40 is added to the real registration day, so the field reads 41–71. The validator detects this automatically and labels the result accordingly.

Worked example

Take the obviously-fake kennitala 150385-0098 (do not use as real data):

StepCalculation
Digits 1–81, 5, 0, 3, 8, 5, 0, 0
Weighted sum1×3 + 5×2 + 0×7 + 3×6 + 8×5 + 5×4 + 0×3 + 0×2 = 3+10+0+18+40+20+0+0 = 91
Remainder91 mod 11 = 3
Check digit11 − 3 = 8 ✓ (matches position 10)
Century indicatorK = 9 → 1900s
Full decoded dateDay 15, Month 03, Year 85 → 15 March 1985
Holder typeDay field 15 (≤ 31) → Person

For a company example, 470605-0006 represents an entity registered on day 7 (= 47 − 40) of June 2005. The K digit is 0, indicating the 2000s.

Formula note

The Lund mod-11 scheme intentionally excludes the century indicator from the weighted sum. This means the same eight-digit prefix with different K values (8, 9, 0) always produces the same check digit — the century is independently verified by range checks, not by the checksum. The consequence is that any input where sum mod 11 = 10 has no valid check digit at all, making that 8-digit combination structurally impossible regardless of what is appended.

Every calculation happens client-side — your kennitala is never transmitted anywhere.

Ad placeholder (rectangle)