Bulgarian EGN Validator

This Bulgarian EGN validator checks a Unified Civil Number against its official weighted checksum, and decodes the birth date encoded in the first six digits. Everything runs in your browser — nothing is sent anywhere.

How to use it

Enter the 10-digit EGN and click "Check EGN". The tool decodes the birth date (accounting for the century-offset month encoding) and verifies the final digit against the checksum formula.

How the checksum works

Each of the first nine digits is multiplied by a fixed weight — 2, 4, 8, 5, 10, 9, 7, 3, 6 — and the products are summed. The check digit is that sum modulo 11, with one special case: if the remainder is 10, the check digit is 0 instead. This construction catches the vast majority of single-digit typos and transpositions.

Why the month can be greater than 12

Bulgaria needed a way to encode birth years across three centuries within a 2-digit year field, so the month digits carry an extra signal: unmodified for the 1900s, +20 for the 1800s, and +40 for the 2000s. A raw month value of "41", for example, decodes to January of a year in the 2000s.

Bulgarian EGN Validator Pro

Pro version coming soon — batch validation via CSV upload, exportable results, API access, and an offline version. The free tool stays free.

Pro version coming soon

Batch validation via CSV upload, exportable results, API access, and an offline version are on the way. The free tool stays free.

Frequently asked questions

What is an EGN?

EGN (Единен граждански номер, "Unified Civil Number") is Bulgaria's 10-digit personal identification number, assigned to every citizen and encoding their birth date plus a checksum.

How is the birth date encoded?

The first 6 digits are YYMMDD, but the month is offset by century: 01–12 for people born 1900–1999, 21–32 for 1800–1899 (month + 20), and 41–52 for 2000–2099 (month + 40). This tool decodes whichever century the month digits imply.

How does the checksum work?

Each of the first 9 digits is multiplied by a fixed weight (2, 4, 8, 5, 10, 9, 7, 3, 6), the results are summed, and the sum modulo 11 gives the check digit — except a remainder of 10, which maps to 0 instead of being rejected.

Does a valid checksum mean the EGN is real?

No. It confirms the number is structurally well-formed — the right length, a plausible encoded date, and a matching checksum — not that it was actually issued to a real person. There is no public Bulgarian government API to confirm that.

Is my EGN sent anywhere when I use this tool?

No. Validation happens entirely in your browser via JavaScript. Nothing is transmitted, logged, or stored.