The Personal Numeric Code (CNP) is one of the most important identification elements used in Romania. It appears on identity documents and is required in numerous interactions with public institutions, employers, banks, service providers, and insurance companies.
Although it is frequently used, its structure is not always fully understood. In this guide, we explain what the 13 digits of the CNP represent, how its validity can be verified, and what measures should be taken to protect personal data.
What is the CNP?
The CNP is a unique numerical identifier assigned to a natural person registered in the population record system of Romania. It allows for distinguishing individuals who may share the same name and is used to correlate information across various administrative registers.
A CNP consists of 13 digits. These are not chosen randomly; rather, they are grouped into a structure containing information about gender, century of birth, date of birth, and the administrative code associated with the person's registration.
For a quick technical check, you can use the online CNP validator. The tool checks the number's structure and control digit without storing data or confirming an individual's identity.
Structure of the 13 Digits in a CNP
The general layout of the 13 digits is represented by the following scheme:
| S | YY | MM | DD | JJ | NNN | C |
|---|---|---|---|---|---|---|
| Gender / Century | Birth Year | Month | Day | County / Sector | Serial No. | Control Digit |
1. The First Digit (S): Gender and Century of Birth
The first digit is associated with the person's gender and the period in which they were born. Depending on its value, the system can differentiate between individuals born in different centuries (e.g., 1900–1999 vs. 2000–2099), as well as certain categories of resident foreign nationals.
2. Date of Birth (YY MM DD)
The following six digits represent the date of birth in the format
Year (YY), Month (MM), and Day (DD). For instance, the sequence 900415 indicates a birth year ending in 90,
the month of April (04), and the 15th day. The full century is determined based on the first digit (S).
A validator checks whether the date is calendarically possible. Numbers representing February 31st, month 15, or non-existent calendar days render the CNP automatically invalid.
3. County or Sector Code (JJ)
The next two digits form the administrative code of the county or Bucharest sector. This code does not serve as proof of current residence, as the CNP remains unchanged when moving to a new address.
To view the full list and the meaning of each code, consult our guide on county codes in the CNP.
4. Serial Order Number (NNN)
The following three digits form a sequential serial number (ranging from 001 to 999). Their role is to distinguish between individuals of the same gender born on the same day in the same administrative unit.
5. Control Digit (C)
The final digit is calculated mathematically based on the first 12 digits using an algorithmic mathematical constant. Its primary purpose is to detect human typing errors.
How is a CNP Validated?
Technical validation requires completing the following mandatory steps:
- Format verification (ensuring it contains numeric characters only).
- Verification of the exact length of 13 digits.
- Determination of the century and validation of the first digit.
- Validation of the date of birth (checking if the day and month exist on the calendar).
- Verification of the validity of the administrative/county code.
- Recalculation of the control digit and comparison with the final digit.
All these steps are executed instantly using our online CNP validation tool.
What Does a "Valid CNP" Actually Mean?
There is a fundamental difference between a mathematically valid CNP and a CNP officially assigned to a real person.
- Mathematically valid: The number conforms to the algorithm, the date exists, and the control digit matches.
- Officially assigned: The number belongs to a person registered in the official national population database.
No public algorithm can confirm the real identity of the holder without legal access to the National Register for Persons Record.
Generating CNPs for Software Testing
Developers and QA teams often need valid CNPs to test forms, HR systems, or banking applications. Using real personal data in test environments is prohibited under GDPR legislation.
For these scenarios, you can use a synthetic CNP generator for testing. These numbers are valid algorithmically only and must be used exclusively in software development environments.
Bulk CNP Verification
For HR departments, insurance companies, or data processors handling thousands of records, manual verification is inefficient.
In such cases, you can utilize the bulk CNP validation solution, which allows for rapid cleanup of database typographical errors.
Data Protection: Is the CNP Personally Identifiable Information?
Yes. Under GDPR, the CNP is personal data subject to a special protection regime. Find out more details in our dedicated article on data protection and CNP processing.
Does the CNP Change with the New Electronic ID Card?
No. Changing the physical medium of the ID card does not affect the CNP. The CNP remains unique for life. Read our complete analysis on the new electronic identity card in Romania.
Frequently Asked Questions (FAQ)
Does a valid CNP always belong to a real person?No. A CNP can be mathematically (algorithmically) valid without ever having been assigned to a real person by the authorities.
Can I find someone's name or address using only their CNP?No. The CNP structure contains only birth date, gender, and registration county. It does not contain names, addresses, or other confidential details.
Can I check a CNP for free?Yes, you can use the free online CNP validator.
Conclusion
The CNP is a central element of the identification system in Romania. For instant verification and safe technical testing, use the online CNP verification tool and the CNP generator for testing.