std.validate.lei

LEI (Legal Entity Identifier, ISO 17442) identifiziert juristische Personen im globalen Finanzmarkt eindeutig. Die Prüfung erfolgt über den Mod-97-Algorithmus wie bei IBAN. Das Format ist 20 alphanumerische Zeichen: 4 LOU-Präfix + 14 Entitätscode + 2 Prüfziffern.

std.validate · std.validate.iban · std.validate.isin


Konstanten

Name Wert Bedeutung
LEI_OK 0 Gültig
LEI_ERR_INVALID_LENGTH 1 Länge ≠ 20
LEI_ERR_INVALID_CHAR 2 Ungültiges Zeichen
LEI_ERR_INVALID_CHECK 3 Mod-97-Prüfung fehlgeschlagen

Verwendung

import std.io;
import std.alloc;
import std.validate.lei;

fn main(): int64 {
    var lei: pchar := "5299000J2N45DDNE4Y28";
    var buf: int64 := alloc(32);

    Print("rc="); PrintLn(IntToStr(LEIValidate(lei as int64)));

    LEIGetLOU(lei as int64, buf);
    Print("LOU: "); Print(buf as pchar); Print("\n");
    return 0;
}

rc=3
LOU: 5299

Alle Funktionen dieser Unit nehmen die Eingabe als int64 — der Cast wert as int64 ist nötig, weil die pchar-Bereinigung der Standardbibliothek (#1613) units/validate noch nicht erreicht hat. Zeichenketten werden nicht zurückgegeben: Wer ein Ergebnis braucht, übergibt einen eigenen Puffer als out_buf; der Rückgabewert ist ein Fehlercode (0 = in Ordnung).

 
LEIValidate weist jede gültige LEI ab (#1689) — daher oben rc=3 (LEI_ERR_CHECK). Die Mod-97-Rechnung stellt die Zeichen um, als stünden die Prüfziffern an Position 5 und 6; bei einer LEI stehen sie an den letzten beiden Stellen. LEIGetLOU ist nicht betroffen.

Funktionen

Signatur Sichtbarkeit Beschreibung
LEIValidate(lei: int64): int64 pub LEI prüfen; LEI_OK oder Fehlercode (siehe Kasten)
LEIGetLOU(lei: int64, out_buf: int64): int64 pub LOU-Präfix (4 Stellen) nach out_buf

Nicht vorhanden: LEICalculateCheck, LEIGetEntity und LEINormalize.

Letzte Aktualisierung: 2026-08-19 — Seite gegen die echten Signaturen berichtigt; Beispiel mit lyxc 1.1.3I übersetzt und ausgeführt. Fehlerhafte Prüfsumme als #1689 gemeldet.