International · Validation
Danish CPR number validator.
Check the 10-digit Danish CPR number (CPR-nummer): format, encoded birth date and century, sex digit, and the historic modulus-11 test. Format only.
How it works: a CPR number is DDMMYY-SSSS. The seventh digit and the two-digit year decide the century; the last digit is odd for men and even for women. Older numbers (before about 2007) also satisfy a modulus-11 test (weights 4, 3, 2, 7, 6, 5, 4, 3, 2, 1, sum divisible by 11). Newer numbers need not, so this tool reports that test but does not fail a number for missing it.
Inputs
Result
Enter a number and press Check.
How the CPR number is built
A Danish CPR number (CPR-nummer, from Det Centrale Personregister) has ten digits written DDMMYY-SSSS: a date of birth, then a four-digit serial whose final digit is odd for men and even for women.
| Digit 7 | Year digits | Century |
|---|---|---|
| 0–3 | any | 1900s |
| 4 or 9 | 00–36 | 2000s |
| 4 or 9 | 37–99 | 1900s |
| 5–8 | 00–57 | 2000s |
| 5–8 | 58–99 | 1800s |
The modulus-11 test and why it is only reported
Older CPR numbers satisfy a modulus-11 rule: multiply the ten digits by 4, 3, 2, 7, 6, 5, 4, 3, 2, 1 and the sum is divisible by 11. python-stdnum records that this rule stopped being applied once the sequence numbers ran out, around 2007, and that its own validator therefore does not enforce it. This tool follows that approach: a number with a real date passes as well-formed whether or not the old test passes, and the test result is shown separately. Example from python-stdnum: 211062-5629 has weighted sum 110 = 10 × 11, so the old test passes (under the century table above its digit 7 of 5 and year 62 decode to 1862); 211062-5630 would not pass it.
Format only — not a registry lookup
This page checks structure only. It cannot show that a CPR number was issued or who holds it. A date that would fall in the future is rejected.
Danish CPR Number FAQ
How many digits does a Danish CPR number have?
Ten: six for the date of birth (DDMMYY) and four for the serial number, usually written DDMMYY-SSSS.
Does every valid CPR number pass the modulus-11 check?
No. Older numbers do, but the rule stopped applying to newly issued numbers around 2007, so a failed modulus-11 test does not make a CPR number invalid. This tool shows the result without rejecting on it.
Can this tool tell me whose CPR number it is?
No. It only checks the structure in your browser. Nothing is sent anywhere and there is no public CPR lookup.
Official register
To confirm a number is real, use the official source: Danish Civil Registration System (CPR). Only the CPR office can confirm a number belongs to a person, and it does not offer a public lookup.
Sources
- python-stdnum, stdnum/dk/cpr.py (century rules, weights, note that the checksum is no longer enforced, doctest 211062-5629); retrieved October 2026
- CPR-kontoret (Danish Civil Registration System) (the issuing authority; this page does not rely on it for the arithmetic); retrieved October 2026
Privacy and scope
This tool runs entirely in your browser: nothing you type is transmitted, stored, or logged, and it queries no government or commercial register. It checks format and checksum only and does not imply any official verification. Do not enter identity numbers belonging to other people that you have no reason to hold.