PESEL

PESEL (Polish: Powszechny Elektroniczny System Ewidencji Ludności; Universal Electronic System for Registration of the Population) is the national identification number used in Poland since 1979. The number is 11 digits long, identifies exactly one person, and cannot be changed once assigned, except in specific situations (such as gender reassignment).

The PESEL number is mandatory for all permanent residents of Poland and for temporary residents living in Poland for over 2 months. After 1 March 2015, applicants for a Polish passport without a PESEL number need to apply for PESEL prior to passport application. Otherwise, without a PESEL number, passport applications and fingerprints cannot be taken.

The PESEL system was originally designed by the communist government of the Polish People's Republic to trace personal information about its citizens. It is a direct offshoot from the previous system, Magister, which was designed to trace and record data about all individuals with a university degree.

Format
PESEL numbers have the form of YYMMDDZZZXQ, where YYMMDD is the date of birth (with century information encoded in the month field), ZZZ is a unique identification number, X denotes sex (even numbers for females, odd numbers for males) and Q is a check digit, which is used to verify whether a given PESEL is valid.

Checksum calculation
Having a PESEL in the form of ABCDEFGHIJK, one can check the validity of the number by computing the following expression:

A×1 + B×3 + C×7 + D×9 + E×1 + F×3 + G×7 + H×9 + I×1 + J×3

The checksum is the last digit of result of the above expression subtracted from 10. If this last digit is 0, then the checksum is 0.

If the result of the last operation is not equal to the last digit (K) of a given PESEL, then the PESEL is incorrect. This system works reliably well for catching one-digit mistakes and digit swaps.

Example: Checking validity of PESEL 12345678901
1×1 + 2×3 + 3×7 + 4×9 + 5×1 + 6×3 + 7×7 + 8×9 + 9×1 + 0×3 = 217

The last digit of the result (217 modulo 10): 7

The last digit is not 0; the checksum is 10 − 7 = 3

3 is not equal to the last digit of the PESEL, which is 1; the PESEL number is not valid. A valid PESEL would be 12345678903.

Validation implementation
The following is an implementation of a PESEL validation algorithm in TypeScript.

Birthdates
The PESEL system has been designed to cover five centuries. To distinguish people born in different centuries, numbers are added to the MM field:


 * for birthdates between 1900 and 1999 – no change to MM field is made (see below)
 * for other birthdates:
 * 2000–2099 – month field number is increased by 20
 * 2100–2199 – month + 40
 * 2200–2299 – month + 60
 * 1800–1899 – month + 80

For example, a person born on December 24, 2002 would have a PESEL number starting with 023224, and a person born on December 24, 1902 would have a PESEL number starting with 021224.

Changing the PESEL number
PESEL contains the date of birth and sex of a given individual, and thus the number is changed if the person changes their sex or corrects their date of birth (for example, if the previously recorded date of birth was wrong). The PESEL number belonging to an individual may also be changed "if the previous number was produced in the violation of the Law" or when the birth certificate of a person changes for any reason (e.g. adoption). When a PESEL number is changed, its owner is prohibited from further use of the previous number, and it may not be assigned to a different person.

Other identifiers
A similar system of identification numbers exists for businesses, called REGON (from Rejestr Gospodarki Narodowej – Register of the National Economy). Additionally, all business taxpayers (prior to September 2011 – all taxpayers) have a tax identification number called NIP (Numer Identyfikacji Podatkowej).

Individuals in Poland are often asked to provide the number of their identity card (dowód osobisty) as identification (foreign citizens are required to provide their passport number instead). Similarly, businesses and corporations are often required to state the number at which they appear in the register of businesses, KRS - National Judicial Register (Krajowy Rejestr Sądowy), or the Taxpayer Identification Number - NIP.