Rule · MAJOR

COMMON.LEI_CHECK_DIGITS

Legal Entity Identifier format and check digits (ISO 17442, ISO/IEC 7064 MOD 97-10)

Citation
Annex I, Part A, Annex II, Part A, Annex III, Part A MiCAR
Canonical form
Anhang I Teil A, Anhang II Teil A, Anhang III Teil A MiCAR
Runs for
Annex I · other crypto-assets; Annex II · asset-referenced tokens; Annex III · e-money tokens
Severity if open
MAJOR
Section key
all sections; anchored to issuer
Minimum words
0
Listed terms (English)
none
Listed terms (German)
none
Package version
1.2.1, built from source that may include unreleased changes
Source
rules/common.py

How the status is set

Legal basis

Annex I, Part A, Annex II, Part A, Annex III, Part A MiCAR

Not re-verified since these pages were introduced (2026-10-20): EUR-Lex was unreachable from the build environment. The citation is the rule's own, unchanged. The citation is the Part of each Annex that the party rules already cite. The point that names the LEI has not been verified against the Official Journal; treat the legal basis as pending owner review.

Synthetic examples

Each example is linted when this page is generated. The build fails if a result differs.

MissingNo LEI in the draft

Without an LEI there are no check digits to verify, so the rule fails closed.

{
  "title": "Synthetic rule example",
  "type": "other",
  "sections": {
    "issuer": "Synthetic Issuer AG."
  }
}
ReviewCheck digits do not match

The last two digits do not satisfy ISO/IEC 7064 MOD 97-10, which usually means a typo.

{
  "title": "Synthetic rule example",
  "type": "other",
  "sections": {
    "issuer": "Synthetic Issuer AG. LEI: 9999SYNTH0000ZZQ0167."
  }
}
PassCheck digits match

The code is well formed. The check does not ask a registry whether the LEI exists or belongs to the named entity.

{
  "title": "Synthetic rule example",
  "type": "other",
  "sections": {
    "issuer": "Synthetic Issuer AG, a fictional company. LEI: 9999SYNTH0000ZZQ0166."
  }
}

Limitations

Disagree with this rule, or missing one? Propose a rule change.