Canadian · Validation
Passport MRZ validator.
Paste the two machine-readable lines from the photo page of a passport (TD3 format) and check every ICAO 9303 check digit: document number, date of birth, date of expiry, and the composite. Everything runs in your browser.
Inputs
Result
Paste both MRZ lines and press Validate.
How the MRZ check digits work
Each MRZ check digit is computed over a field's characters using weights 7, 3, 1 repeating from the first character, where digits count as themselves, letters A–Z count as 10–35, and the filler character < counts as 0. The weighted values are summed and taken modulo 10. A TD3 (passport-size) machine-readable zone carries five such check digits on line 2: one each for the document number, date of birth, and date of expiry, one for the optional personal-number field, and a composite check digit computed over document number + its check digit, date of birth + its check digit, date of expiry + its check digit, and personal number + its check digit concatenated together (39 characters) — nationality and sex are not part of any check digit.
This is defined in ICAO Document 9303, Part 4, the international standard every machine-readable passport follows, including Canadian passports. The worked example above is ICAO's own published specimen from that standard.
What a passing checksum does and doesn’t tell you
A valid check digit only proves the printed characters are internally consistent — it does not confirm the document is genuine, unexpired, or unrevoked. Passport authenticity can only be confirmed by the issuing government or a border authority reading the document's embedded chip and security features. This tool runs entirely in your browser: nothing you type is transmitted, stored, or logged.