PESEL Poland Validator
Validates Polish PESEL (11 digits) with checksum and extracts birth date and sex from the number.
โ
What is the PESEL?
The PESEL is Poland's national personal identification number, assigned to residents by the Ministry of Digital Affairs. It is an 11-digit code that encodes the holder's date of birth, a serial number, their sex and a check digit.
Because it embeds the birth date and sex, the PESEL is far more than a random key โ much of its structure can be validated and even read directly from the digits.
Structure of the 11 digits
- Digits 1-6 โ date of birth as
YYMMDD, with a century offset added to the month. - Digits 7-10 โ serial number; the 10th digit encodes sex (even = female, odd = male).
- Digit 11 โ the check digit.
Century offset and check digit
The month carries the century. Add to the month: +0 for 1900-1999, +20 for 2000-2099, +40 for 2100-2199 and +80 for 1800-1899. So a March 2005 birth is stored with month 23.
The check digit uses the weights [1, 3, 7, 9, 1, 3, 7, 9, 1, 3] over the first 10 digits. Sum the weighted products, take sum mod 10, and the check digit is (10 - (sum mod 10)) mod 10.
Common pitfalls
- Reading the month as a plain
MMโ values above 12 are normal because of the century offset. - Forgetting the final
mod 10when the weighted sum ends in 0, which makes the check digit 0, not 10. - Assuming digits 7-9 alone give the sex โ only the 10th digit's parity does.
- Validating only the checksum and ignoring whether the encoded date is a real calendar date.
FAQ
Can I read the birth date from a PESEL? Yes โ decode digits 1-6 and subtract the century offset from the month to recover the real date.
How is sex encoded? The 10th digit: an even value means female, an odd value means male.
Is the PESEL sensitive data? Yes. It reveals birth date and sex, so it should be handled as personal data and not shared unnecessarily.
Related Tools
CPF Validator
Validate Brazilian CPF numbers instantly using the official algorithm. Useful for testing document validation in applications. No data sent to servers.
Batch CPF Validator
Validate a list of CPFs (one per line) and see which are valid and which are not. No data sent to servers.
Batch CNPJ Validator
Validate a list of CNPJs (one per line) with a summary of valid, invalid and total. No data sent to servers.