Skip to main content
Skip to main content

Polish PESEL National ID Validator

Validate structural compliance, date of birth and check digits of Polish PESEL numbers.

About Polish PESEL Validation

Validation sanitizes input, decodes birth date and gender, and computes the Modulo 10 check digit.

Supports all official century offsets (19th, 20th, 21st, 22nd, and 23rd centuries).

Anatomy & Structure of Polish PESEL

PESEL consists of 11 decimal digits regulated by the Ministry of Digital Affairs:

PositionFieldLengthMeaning & RuleExample
1 to 2Birth Year2 digitsLast two digits of the birth year85
3 to 4Month & Century2 digitsMonth encoded with century offset (+0 for 1900s, +20 for 2000s)07
5 to 6Birth Day2 digitsDay of birth (01 to 31)30
7 to 9Sequential Counter3 digitsSequential registration number123
10Gender1 digitOdd for Male, Even for Female4
11Check Digit1 digitWeighted Modulo 10 security digit8

PESEL Calculation & Validation Algorithm (Modulo 10)

PESEL validation computes the security digit using weighted Modulo 10:

DV = (10 - ((∑ di × Weights[i]) mod 10)) mod 10 (Weights: 1, 3, 7, 9, 1, 3, 7, 9, 1, 3)
  1. 1. Remove spaces and hyphens from the string.
  2. 2. Validate that the sequence has exactly 11 numeric digits.
  3. 3. Decode month and century and verify valid calendar day.
  4. 4. Multiply the first 10 digits by weights [1, 3, 7, 9, 1, 3, 7, 9, 1, 3].
  5. 5. Compute the 10's complement of the weighted sum modulo 10.
  6. 6. Compare the obtained value against the 11th digit.

Frequently Asked Questions (FAQ)