Romanian CNP Validator
Enter a 13-digit Romanian CNP to check its structure and control digit. If it is valid, the tool reads back the date of birth, sex, and county of registration that the number encodes.
Processed entirely in your browser. This validator runs on your device using JavaScript. The number you enter is never sent to a server, stored, or logged, and nothing leaves your device.
How It Works
A CNP is not a random string. It follows the fixed pattern S YY MM DD JJ NNN C, and each segment carries specific information. Reading it left to right:
| Segment | Digits | What it represents |
|---|---|---|
| S | 1 | Sex and century of birth |
| YY MM DD | 6 | Date of birth: year within the century, month, then day |
| JJ | 2 | County (judet) where the CNP was registered |
| NNN | 3 | Sequential number for people registered the same day in the same county |
| C | 1 | Control digit that checks the other twelve |
The first digit: sex and century
The opening digit does two jobs at once. It records the person's sex and which century they were born in, which is how a two-digit year such as 63 is pinned to a full year like 1963. The value 1 is a man and 2 a woman born from 1900 to 1999; 3 and 4 cover 1800 to 1899; and 5 and 6 cover the year 2000 onward. The values 7 and 8 are used for foreign residents, and 9 for other cases, and for those the century is not fixed by this digit.
The county code
The two digits after the date are the county of registration. Codes 01 to 40 run roughly alphabetically through the counties and end with Bucharest, 41 to 46 are the six sectors of Bucharest, and 51 and 52 are Calarasi and Giurgiu, which were added when those counties were created. If these two digits do not match a real county code, the number cannot be genuine.
The control digit
The final digit is what makes a CNP self-checking. Each of the first twelve digits is multiplied by a fixed weight from the sequence 2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9. The twelve products are added up, and the total is divided by 11. The remainder is the control digit, except that a remainder of 10 becomes 1. If the digit at the end does not match this result, the number is not a valid CNP.
Worked Example
Take the sample CNP 1630615123457, which is an example and does not belong to anyone. The first digit 1 means a man born between 1900 and 1999. The next six digits, 630615, give 15 June 1963. The county code 12 is Cluj. To check the last digit, multiply 1, 6, 3, 0, 6, 1, 5, 1, 2, 3, 4, 5 by the weights above and add the results, which comes to 216. Dividing 216 by 11 leaves a remainder of 7, and the final digit is 7, so the control digit matches and the number is valid.
When You Would Use This
This helps whenever a CNP has to be entered correctly on a form. A payroll or HR clerk keying in a new employee's details, a notary preparing a contract, or someone filling in an online application can paste the number here first and catch a mistyped digit before it causes a rejected form or a mismatch later. It is also a quick way to understand what a CNP on a document is telling you, since it spells out the birth date, sex, and county in plain terms.
Frequently Asked Questions
What is a CNP?
The CNP, or Cod Numeric Personal, is the 13-digit personal identification number issued to every Romanian citizen and to registered foreign residents. It appears on the national ID card, the passport, and most official paperwork.
What does the validator confirm?
It confirms that the 13 digits form a structurally correct CNP: the encoded date is a real calendar date, the county code exists, and the final control digit matches the other twelve. It cannot tell you whether a real person holds that number.
How is the sex and birth date read from the number?
The first digit encodes both sex and the century of birth. For example 1 is a man born between 1900 and 1999, 2 is a woman in the same period, and 5 and 6 cover men and women born from 2000 onward. The next six digits are the year, month, and day.
What do the two digits after the birth date mean?
They are the county code, showing where the CNP was registered. Codes 01 to 40 cover the counties and Bucharest, 41 to 46 are the six sectors of Bucharest, and 51 and 52 are Calarasi and Giurgiu.
Can I use this to generate a CNP?
No, and that is deliberate. This is a validator, not a generator. It checks a number you already have; it will not fabricate one for you.
Is my CNP stored or sent anywhere?
No. The check runs entirely in your browser. Nothing you type is uploaded or saved, so you can check a real CNP without it leaving your device.