Skip to content

Latest commit

 

History

History
189 lines (140 loc) · 7.75 KB

spec.md

File metadata and controls

189 lines (140 loc) · 7.75 KB

Personal Identification Number Specification

Version 0.1 (draft)

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

The Personal Identification Number Specification is licensed under CC-BY-SA 4.0 license.

Overview

This document contains a technical specification for Personal Identification Number (C.N.P.).

In Romania, a C.N.P. is a unique 13 (thirteen) characters number, which is assigned to each person born in Romania and Romanian residents.

It was introduced in 1978 and it is used as an identifier in systems that needs to manage personal data and differentiate individuals.

Terminology

When referring to Personal Identification Number, "C.N.P." abbreviation MUST be used. When the context doesn't allow the dots usage, like inside a code base where the syntax impose such limitation, "CNP" alternative abbreviation MAY be used.

"Cod Numeric Personal" and/or English translation "Personal Identification Number" SHOULD be used to explain "C.N.P." and "CNP" abbreviations.

Sample:

<!-- For Romanian speakers -->
<abbr title="Cod Numeric Personal">C.N.P.</abbr>

<!-- For English speakers -->
<abbr title="Personal Identification Number">C.N.P.</abbr>
/**
 * Validates Personal Identification Number for 
 * Romanian citizens and residents.
 */
int validateCNP(char cnp[13]) { /* the code */ }

Legislation

The conditions, necessary documents for the issuance of identity documents and C.N.P. structure are regulated by:

  • OUG no. 97/2005 regarding the evidence, domicile, residence and identity documents of the Romanian citizens, republished, with the subsequent modifications and completions.
  • Methodological Norms for unitary application of the legal provisions regarding the evidence, domicile, residence and identity documents of Romanian citizens.
  • Law no. 122/2006 regarding asylum in Romania, with the subsequent modifications and completions.
  • Methodological Norms for the application of Law no. 122/2006 regarding asylum in Romania.

Issuance

Each C.N.P. for Romanian citizens is issued by Directorate for Personal Records and Database Management (D.E.P.A.B.D.), which is written on birth certificate, ID card and passport.
Romanian residents receive their C.N.P. from General Inspectorate for Immigration (I.G.I.) which is written on their resident permit.

Structure

C.N.P is a 13 (thirteen) digit number, unique to each individual and consists of 7 (seven) components:

[S][AA][LL][ZZ][JJ][NNN][C]

S component

Component S represents the gender (sex) and the century in which the person was born and MUST have one of the following values:

  • 1 = Male, born between 1900 - 1999
  • 2 = Female, born between 1900 - 1999
  • 3 = Male, born between 1800 - 1899
  • 4 = Female, born between 1800 - 1899
  • 5 = Male, born between 2000 - 2099
  • 6 = Female, born between 2000 - 2099
  • 7 = Male resident (century does not apply)
  • 8 = Female resident (century does not apply)

AA component

Component AA represents the last 2 (two) digits from the year of birth.

LL component

Component LL represents the month of birth in 2 (two) digits format.

ZZ component

Component ZZ represents the day of birth in 2 (two) digits format.

JJ component

Component JJ is formed by 2 (two) digits and represents the County code (and District number for Bucharest) in which the person was born or where (s)he was domiciled at the time when papers were issued.

County code (JJ) MUST have one of the following values:

  • 01 = Alba
  • 02 = Arad
  • 03 = Argeș
  • 04 = Bacău
  • 05 = Bihor
  • 06 = Bistrița-Năsăud
  • 07 = Botoșani
  • 08 = Brașov
  • 09 = Brăila
  • 10 = Buzău
  • 11 = Caraș-Severin
  • 12 = Cluj
  • 13 = Constanța
  • 14 = Covasna
  • 15 = Dâmbovița
  • 16 = Dolj
  • 17 = Galați
  • 18 = Gorj
  • 19 = Harghita
  • 20 = Hunedoara
  • 21 = Ialomița
  • 22 = Iași
  • 23 = Ilfov
  • 24 = Maramureș
  • 25 = Mehedinți
  • 26 = Mureș
  • 27 = Neamț
  • 28 = Olt
  • 29 = Prahova
  • 30 = Satu Mare
  • 31 = Sălaj
  • 32 = Sibiu
  • 33 = Suceava
  • 34 = Teleorman
  • 35 = Timiș
  • 36 = Tulcea
  • 37 = Vaslui
  • 38 = Vâlcea
  • 39 = Vrancea
  • 40 = București
  • 41 = București District 1
  • 42 = București District 2
  • 43 = București District 3
  • 44 = București District 4
  • 45 = București District 5
  • 46 = București District 6
  • 47 = București District 7 (now defunct)
  • 48 = București District 8 (now defunct)
  • 51 = Călărași
  • 52 = Giurgiu

Regarding Bucharest's Districts, there have been some changes since Personal Identification Number was introduced in 1978, as follows:

  • Bucharest District 3 was merged with District 2 in 1979 and resulted current District 2
  • Bucharest District 4 is known as District 3 since 1979
  • Bucharest District 5 is known as District 4 since 1979
  • Bucharest District 6 is known as District 5 since 1979
  • Bucharest District 7 is known as District 6 since 1979
  • Bucharest District 8 was merged with District 1 in 1979 and resulted current District 1

Implementing (now defunct) Districts 7 and 8 is OPTIONAL.
If Districts 7 and 8 are implemented, their usage SHALL be limited to dates prior to December 19, 19791. Any C.N.P. with one of these two districts and a date which succeeds December 19, 19791 MUST NOT validate successfully.

NNN component

Component NNN represents a sequential number in range of 001 - 999, which differentiates individuals of same gender, born in the same place and at the same date (i.e: AALLZZ).

C component

Component C represents the control number (checksum), used to detect potential errors which may have been introduced during typing, transmission and/or storage.

Validation

Validation of a C.N.P. consists of calculating the control number (C component) and comparing it with the one provided. If they are not equal, validation SHALL NOT be successful.

This control number SHALL be calculated using the constant 279146358279 as follows:

  • Each digit from the first 12 (twelve) digits of the C.N.P. SHALL be multiplied with its correspondent from the constant.
  • Resulting sums MUST be added together and the grand total MUST be divided by 11
  • If the division remainder is less than 10 (ten), that MUST be used as control number (C)
  • If the division remainder is 10 (ten), the control number (C) MUST be 1 (one)

Changing the C.N.P. of an individual

A new C.N.P. is assigned to the same individual only in one of the following situations:

  • Birth certificate was rectified and one of the information that is part of the C.N.P. was changed.
  • The birth certificate entry for C.N.P. has been erroneously written.
  • C.N.P. was wrongly assigned.
  • The applicant had a sex change.
  • There are inconsistencies regarding C.N.P.

Footnotes

  1. Great National Assembly. Law no. 31/1979 for the approval of the Decree of the Council of State no. 284/1979 on the establishment of Bucharest's districts. Romania: Official Bulletin no. 103/1979, 1979. 2