IBAN-Format, Länderlänge und Prüfsumme prüfen
Eine internationale Bankkontonummer kann überzeugend aussehen und dennoch die falsche Zeichenzahl oder eine fehlerhaft übertragene Prüfziffer enthalten.
Im Browser ausführen – kostenlos
Dieser Validator vereinheitlicht übliche Leerzeichen und Bindestriche, erkennt den Ländercode, prüft die für dieses Land festgelegte Länge und wendet die mod-97-Prüfsummenregel nach ISO 7064 an. Jedes Prüfergebnis wird einzeln ausgegeben. So können Sie ein Konto manuell kontrollieren oder softwaregestützt entscheiden, ob ein Zahlungsdatensatz für den nächsten Schritt bereit ist.
Beginnen Sie mit einer vollständigen, erkennbaren IBAN
Fügen Sie die vollständige IBAN einschließlich des zweistelligen Ländercodes und der beiden Prüfziffern ein oder übermitteln Sie sie. Leerzeichen zur besseren Lesbarkeit und Bindestriche werden akzeptiert und vor der Prüfung entfernt. Kleinbuchstaben erscheinen im normalisierten Ergebnis als Großbuchstaben. Andere Satzzeichen werden nicht unbemerkt verworfen, da dies einen Fehler beim Kopieren und Einfügen verbergen könnte. Ein strukturell verwendbarer Wert muss mit zwei Buchstaben und zwei Ziffern beginnen; alle weiteren Zeichen müssen Buchstaben oder Ziffern sein. Die Antwort enthält die normalisierte IBAN, damit eine Integration eine einheitliche Darstellung speichern oder vergleichen kann. Außerdem werden Ländercode, tatsächliche Länge und erwartete Länge getrennt ausgegeben, statt nur eine unklare Ja-Nein-Antwort zu liefern. Ist das Länderpräfix nicht im unterstützten IBAN-Register enthalten, führt die Anfrage zu einem Eingabefehler. Diese Unterscheidung ist wichtig: Ein unbekanntes Schema lässt sich nicht zuverlässig bewerten und darf nicht lediglich als fehlgeschlagene Prüfsumme behandelt werden. Diese erste Stufe erkennt Formatprobleme, bevor die Berechnung beginnt.
Verstehen Sie die Länder- und mod-97-Prüfung
IBANs besitzen keine weltweit einheitliche Zeichenzahl. Jedes teilnehmende Land legt eine feste Länge fest, weshalb eine deutsche IBAN eine andere erwartete Größe als eine norwegische oder maltesische hat. Der Validator schlägt die zum führenden Ländercode gehörende Länge nach und vergleicht sie mit dem normalisierten Wert. Anschließend führt er das in ISO 7064 für IBAN definierte Verfahren aus: Die ersten vier Zeichen werden ans Ende verschoben, Buchstaben werden von A gleich 10 bis Z gleich 35 in Zahlenwerte umgewandelt und die entstehende Dezimalfolge wird modulo 97 ausgewertet. Eine gültige Prüfsumme ergibt den Rest eins. Die Implementierung berechnet den Rest schrittweise Ziffer für Ziffer, statt eine riesige Ganzzahl zu bilden, die den sicheren Zahlenbereich einer Programmiersprache überschreiten könnte. Die Antwort weist `length_valid` und `checksum_valid` getrennt aus und setzt `valid` nur, wenn beide Prüfungen erfolgreich sind. Eine falsche Länge verhindert eine positive Prüfsummenentscheidung. Dadurch bleibt das Gesamtergebnis vorsichtig und für automatisierte Abläufe eindeutig interpretierbar.
Setzen Sie die Prüfung an der richtigen Stelle ein
Führen Sie diese Kontrolle durch, sobald eine IBAN in Ihr System gelangt: beim Absenden eines Formulars, beim Import einer CSV-Datei, bei der Aufnahme eines Zahlungsempfängers oder bei der letzten Prüfung vor Erstellung eines Zahlungsauftrags. Ein negatives Ergebnis weist auf ein Format-, Längen- oder Prüfsummenproblem hin und hilft, typische Übertragungsfehler früh zu erkennen. Es beweist nicht, dass das Bankkonto existiert, geöffnet ist, dem genannten Empfänger gehört oder eine bestimmte Überweisung empfangen kann. Dafür sind Bank- oder Zahlungsdienstleister erforderlich; möglicherweise gelten zudem regulierte Identitätsprüfungen. Halten Sie die Aufgabe des Validators eng begrenzt: Weisen Sie offensichtlich fehlerhafte Kennungen zurück, zeigen Sie die fehlgeschlagenen Prüfungen an und bitten Sie den Benutzer, die Nummer anhand einer verlässlichen Quelle zu bestätigen. Der Algorithmus arbeitet deterministisch und verwendet während der Ausführung weder Netzwerk noch Zufallswert, Uhrzeit oder externe Abfrage. Wiederholte Aufrufe sind daher reproduzierbar. Eine API-Anfrage kostet $0.002; auf der Seite läuft dieselbe reine Prüflogik im Browser.
Anwendungsfälle
Empfängerformular validieren
Erkennen Sie eine falsche Länderlänge oder Prüfziffer, bevor der Empfängerdatensatz abgesendet wird.
Importierte Zahlungsdaten prüfen
Normalisieren und validieren Sie IBAN-Felder stapelweise und bewahren Sie den genauen Ablehnungsgrund auf.
Kontonummer kontrollieren
Prüfen Sie eine manuell kopierte IBAN, bevor sie in den Freigabeablauf für Zahlungen gelangt.
Häufige Fragen
Was kostet eine Validierung per API?
Jede Anfrage kostet $0.002. Das Browserwerkzeug kann dieselbe deterministische Prüfung lokal ausführen.
Beweist ein gültiges Ergebnis die Existenz des Kontos?
Nein. Es bestätigt nur die registrierte Länderlänge und Prüfsumme; eine Bank oder der Kontoinhaber werden nicht überprüft.
Sind Leerzeichen und Bindestriche erlaubt?
Ja. Sie werden vor der Prüfung entfernt, und Kleinbuchstaben werden in Großbuchstaben umgewandelt.
Warum führt ein unbekannter Ländercode zu einem Fehler?
Ohne anerkannte Länderdefinition lässt sich die vorgeschriebene IBAN-Länge nicht zuverlässig bestimmen.
Wie wird die Prüfsumme sicher berechnet?
Der neu angeordnete alphanumerische Wert wird schrittweise erweitert und modulo 97 reduziert, ohne übergroße Ganzzahlen zu bilden.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/data/iban-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"iban":"DE89 3704 0044 0532 0130 00"}'const res = await fetch("https://api.kit.forhosting.com/data/iban-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"iban": "DE89 3704 0044 0532 0130 00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/iban-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"iban": "DE89 3704 0044 0532 0130 00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/iban-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"iban":"DE89 3704 0044 0532 0130 00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"iban":"DE89 3704 0044 0532 0130 00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/iban-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"iban": "DE89 3704 0044 0532 0130 00"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.iban_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 25 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |