Home🇷🇴 RomaniaCod Numeric Personal

CNP generator (Romania)

A Romanian CNP is thirteen digits — a sex/century digit, date of birth, a county code, a serial, and a MOD-11 check digit. These test values are synthetic but checksum-valid.

Synthetic · not collision-guaranteed Validate a number →
6000728512679

Synthetic CNP with a valid check digit. Not a real issued number.

Format specification

IdentifierCod Numeric Personal (CNP)
Country🇷🇴 Romania
Format0000000000000
Length13 characters
ChecksumMOD 11
Example6281203206331
Safe strategy Synthetic
Data qualityVerified against sources

Cod Numeric Personal: what each part means

0 Sex and century in one digit: 1/2 = born 1900s (male/female), 3/4 = 1800s, 5/6 = 2000s, 7/8 = foreign residents.
00 Last two digits of the year of birth.
00 Month of birth.
00 Day of birth.
00 County where the birth was registered (01–46 for the counties and Bucharest, with special codes up to 52).
000 Serial number within that county and day.
0 MOD-11 check digit with weights 2,7,9,1,4,6,3,5,8,2,7,9; a remainder of 10 becomes 1.

Validation regex

Matches the canonical value — strip separators and uppercase first: value.replace(/[^A-Za-z0-9]/g, '').toUpperCase()

^[1-8]\d{12}$

References

  1. en.wikipedia.org/wiki/National_identification_number#Romania

Common questions

Will these pass my validation?

Yes — they are well-formed Cod Numeric Personal values (0000000000000) and pass standard format checks, including the MOD 11 checksum.

Could one belong to a real person?

These are synthetic values. They are format-valid but not drawn from a guaranteed reserved range, so use them only for testing.

Can I generate many at once?

Increase the count, or use the free API and CSV/JSON export for large datasets.

Validate an existing number →

For software testing only. These numbers are synthetic and must never be used for real-world identification, applications, or to impersonate anyone.