Polish Personal Identification Number

PESEL Validator

Enter an 11-digit PESEL to verify its checksum and decode the date of birth and gender. The validator checks the modulo 10 control digit using official weights.

Try an example:

About Polish PESEL numbers

Structure and encoding

PESEL (Powszechny Elektroniczny System Ewidencji LudnoĊ›ci) is an 11-digit personal identification number assigned to every person registered in Poland. It encodes the date of birth (digits 1-6), a serial number (digits 7-10, where digit 10 encodes gender), and a check digit (digit 11).

Date of birth and gender encoding

The date of birth uses century codes added to the month: months 01-12 for the 1900s, 21-32 for the 2000s, 41-52 for the 2100s, 61-72 for the 2200s, and 81-92 for the 1800s. For example, a month value of 23 means March in the 2000s. The gender is determined by digit 10: odd numbers indicate male, even numbers indicate female.

Checksum and usage

The check digit is calculated using the modulo 10 algorithm with weights [1, 3, 7, 9, 1, 3, 7, 9, 1, 3]. Each of the first 10 digits is multiplied by its weight, only the last digit of each product is kept, these are summed, and the check digit is (10 − (sum mod 10)) mod 10. PESEL is used for tax identification of private individuals, healthcare, social security, and official identification.

Use the validation API

All validators on this page are powered by our free REST API. Send a GET request with the number to validate and receive a structured JSON response with the validation result.

GET /api/v1/validate/pesel/44051401458

Host: polishdata.eu

// Response 200 OK

{

"valid": true,

"data": {

"pesel": "44051401458",

"date_of_birth": "1944-05-14",

"gender": "male"

},

"errors": []

}

Explore API docs