Skip to content

Belgian ID Card MRZ Scanning Fails Validation #1336

@ArmanKolozyan

Description

@ArmanKolozyan

Belgian ID cards use a non-standard TD1 MRZ format that deviates from the ICAO 9303 specification when the document number exceeds 9 digits. This causes the QKMRZParser library, which Self uses, to incorrectly parse (and incorrectly validate) Belgian ID documents.

According to ICAO 9303, TD1 documents should have:

  • Positions 6-14: Document number (9 characters max)
  • Position 15: Check digit for document number

Belgian ID cards use an overflow mechanism when document numbers exceed 9 digits:

  • Positions 6-14: Principal part (9 characters)
  • Position 15: < (overflow indicator instead of check digit)
  • Positions 16+: Overflow digits followed by check digit

QKMRZParser expects the check digit at position 15 per the TD1 standard. When it encounters < at position 15, it fails validation. The library also doesn't extract overflow digits from positions 16+, resulting in an incomplete document number.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions