Home🇵🇱 PolandPESEL

PESEL generator (Poland)

A Polish PESEL is eleven digits — encoded date of birth, a serial, and a weighted checksum digit. These test values are synthetic but checksum-valid.

Synthetic · not collision-guaranteed Validate a number →
62011599269

Synthetic PESEL with a valid checksum. Not a real issued number.

Format specification

IdentifierPESEL
Country🇵🇱 Poland
Format00000000000
Length11 characters
ChecksumWeighted MOD 10
Example71042713632
Safe strategy Synthetic
Data qualityVerified against sources

PESEL: what each part means

00 Last two digits of the year of birth.
00 Month of birth, offset by century: +0 for 1900s births, +20 for 2000s, +80 for 1800s (so 03 = March 19xx, 23 = March 20xx). These test values use the 1900s form.
00 Day of birth.
0000 Serial number; on real PESELs the last of these four digits encodes sex (even = female, odd = male). Test values use random digits.
0 Check digit: weighted sum (1,3,7,9,…) of the first ten digits, modulo 10.

Validation regex

Matches the canonical value — strip separators and uppercase first: value.replace(/[^A-Za-z0-9]/g, '').toUpperCase()

^\d{11}$

References

  1. en.wikipedia.org/wiki/PESEL

Common questions

Will these pass my validation?

Yes — they are well-formed PESEL values (00000000000) and pass standard format checks, including the Weighted MOD 10 checksum.

Could one belong to a real person?

These are synthetic values. They are format-valid but not drawn from a guaranteed reserved range, so use them only for testing.

Can I generate many at once?

Increase the count, or use the free API and CSV/JSON export for large datasets.

Validate an existing number →

For software testing only. These numbers are synthetic and must never be used for real-world identification, applications, or to impersonate anyone.