CheckIDs Try the redaction API

🇵🇱 PESEL validator

Also in: Polski

The PESEL is Poland's 11-digit national identification number. It encodes the date of birth and sex, and ends with a check digit.

Runs entirely in your browser; nothing you type is sent anywhere.

Generate test PESEL numbers

Fictional numbers with correct check digits, for testing software. They may by chance match a real person's number, so never use them to identify or impersonate anyone.

Click a number to copy it.

How a PESEL is structured

How the check works

Using the published example 44051401359:

Multiply the first 10 digits by the weights 1-3-7-9-1-3-7-9-1-3: 4×1 + 4×3 + 0×7 + 5×9 + 1×1 + 4×3 + 0×7 + 1×9 + 3×1 + 5×3 = 101. The check digit is (10 − 101 mod 10) mod 10 = (10 − 1) mod 10 = 9.

A passing check only means the number is well-formed; it doesn't prove the number was issued to anyone.

Finding PESEL numbers in text? The EU PII Redaction API finds and replaces national ID numbers from 21 EU/EEA countries, plus names, IBANs, emails and phones, in free text: for example before sending customer messages to an LLM. Free plan available; Python package and MCP server on GitHub.

Frequently asked questions

Why does a PESEL for someone born in 2005 have a month like 25?

From 2000 onwards, 20 is added to the month, so May 2005 is written as 05 25. That's how the century is encoded.

Does a valid check digit mean the PESEL exists?

No. It only means the number is well-formed. Whether it was actually issued can only be checked in the PESEL register.

Other validators