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. It always has 11 digits, identifies just one person and cannot be changed to another one (except some 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 the 1st March 2015, applicants for Polish passport without a PESEL number will need to apply for PESEL prior to passport application. Otherwise, without a PESEL number, passport application and fingerprints cannot be taken.[1][2]
The PESEL was the system designed by the communist government (during PRL) to trace personal information about every citizen. It is a direct offshoot from the previous system, MAGISTER (an acronym spelling out the word 'Master', like a master's degree), which was designed to trace and record data about everyone with a university degree.[3]
Format
PESEL number has the form of YYMMDDZZZXQ, where YYMMDD is the date of birth (with century encoded in month field), ZZZX is the personal identification number, where X codes sex (even number for females, odd number for males) and Q is a check digit, which is used to verify whether a given PESEL is correct or not.
Check sum calculation
Having a PESEL in the form of ABCDEF GHIJK, 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
Then the last digit of the result should be subtracted from 10. If the result of the last operation is not equal to the last digit of a given PESEL, the PESEL is incorrect. This system works reliably well for catching one-digit mistakes and digit swaps.
Checking validity of PESEL: 44051401358 (number 8, the last digit, is the check digit for this PESEL):
1 * 4 + 3 * 4 + 7 * 0 + 9 * 5 + 1 * 1 + 3 * 4 + 7 * 0 + 9 * 1 + 1 * 3 + 3 * 5 = 101
Getting the last digit of the result (101 modulo 10):
101/10 = 10 remainder 1
In order to get the check digit one needs to take the 10s complement of the number. It is 0 if the modulo result is 0, and it is 5 when the modulo is equal to 5, otherwise it means the modulo result has to be subtracted from 10.
10 - 1 = 9
9 is not equal to the last digit of PESEL, which is 8, so the PESEL contains errors.
How to code this in TypeScript
1 export function validatePesel(pesel: string): boolean {
2 if (pesel === null || pesel.length !== 11)
3 return false;
4
5 const arr = pesel.split("");
6 let sum: number = 0;
7
8 for (let i: number = 0; i < arr.length - 1; i++) {
9 sum += +arr[i] * getMultiplier(i + 1);
10 }
11
12 const modulo = sum % 10;
13 const lastD = Number(pesel.substr(pesel.length - 1));
14
15 return (modulo === 0 || modulo === 5) && lastD === modulo ||
16 lastD === 10 - modulo;
17 }
18
19 function getMultiplier(index: number): number {
20 if (index > 4)
21 return getMultiplier(index - 4);
22
23 switch (index) {
24 case 1: return 1;
25 case 2: return 3;
26 case 3: return 7;
27 case 4: return 9;
28 }
29
30 throw "Something went wrong with the index calculation";
31 }
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:
- 1800-1899 - month field number is increased by 80
- 2000-2099 - month + 20
- 2100-2199 - month + 40
- 2200-2299 - month + 60
For example, a person born on December 24, 2002 would have a PESEL number starting with 023224 and 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 a sex, so the number is changed if the person changes his/her sex or corrects his/her date of birth (for example, the previous date of birth was wrong). The other situation when the number is changed is "if the previous number was produced in the violation of Law". When the PESEL number is changed, the person is not allowed to use the previous number anymore. The previous number of a person cannot be given to anyone else.
Other identifiers
A similar system of identification numbers exists for businesses, called REGON (from Rejestr Gospodarki Narodowej – Register of the National Economy). Also 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 Polish identity card (dowód osobisty) as identification (foreign citizens give 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.
References
- ↑ "Passport information". Telawiw.msz.gov.pl. Retrieved 2017-03-20.
- ↑ "Archived copy". Archived from the original on 2015-04-14. Retrieved 2015-04-14.
- ↑ "Tłumacz Google". Translate.googleusercontent.com (in Polish). Retrieved 2017-03-20.
External links
- GUS - Główny Urząd Statystyczny (Central Statistical Office (Poland)) - NIP and REGON validator, and database search.
- PESEL Application Form (PDF) (Ministry of Interior and Administration of the Republic of Poland) (MSWiA) - PESEL Application Form