Check a passport MRZ

Paste the two or three lines from the bottom of a passport, ID card or visa. Every field is decoded and every check digit is verified against ICAO Doc 9303.

Checked on this device. The MRZ is never sent to a server.

What the MRZ is

The machine readable zone is the block of characters printed at the bottom of a passport data page, on the back of an ID card or on a visa sticker. Border control and KYC software read it with OCR. Check digits catch reading errors: if a single character is misread, the matching check digit almost always fails.

Supported formats

FormatUsed onLines × characters
TD3Passports2 × 44
TD1ID cards, residence permits3 × 30
TD2Older ID cards and travel documents2 × 36
MRV-AVisas (full page)2 × 44
MRV-BVisas (smaller format)2 × 36

Need test data? Use the MRZ generator.

Questions

Is it safe to paste my passport MRZ here?
The check runs in JavaScript inside your browser. What you type is not sent to any server and is not stored. For testing, specimen or generated data is still the better choice.
Why does a check digit fail?
Most often because of OCR misreads: the letter O instead of zero, I instead of 1, S instead of 5, B instead of 8. The checker points to the most likely character. If only the composite check digit fails, the error is usually in the optional data.
What does the < character mean?
It is the filler character. Two in a row (<<) separate the surname from the given names, a single one replaces a space or hyphen, and a run of them pads unused positions.
How are two-digit years read?
For the date of birth, a year later than the current one is read as 19xx. Expiry dates are read as 20xx.
Can a document number be longer than nine characters?
On TD1 ID cards it can. Position 15 then holds < and the rest of the number continues in the optional data, followed by its own check digit. The checker handles this automatically.