IBAN-Rechner
API & Einbindung

Den Rechner in eigene Systeme einbinden

Kein Server, kein API-Key, keine Rate-Limits: Der Rechner ist ein reines JavaScript-Snippet, das im Browser der Besucher läuft. Drei clientseitige Varianten — Funktions-API, Mini-Widget, iframe-Widget — dazu eine kleine, serverseitige Read-only-JSON-API gegen die Bundesbank-Datenbank.

Kein Server nötig
Alles läuft clientseitig — auch bei dir eingebunden.
Kein API-Key
Einfach einbinden, sofort nutzbar.
Eine Datei
embed.js, ca. 4 KB, keine Abhängigkeiten.
Frei nutzbar
Auch kommerziell einsetzbar, siehe Garantie.

Variante 1 — Funktions-API

Für volle Kontrolle über das Aussehen: embed.js einbinden und die drei Funktionen direkt aufrufen.

<script src="embed.js"></script> <script> const r = IbanRechner.validate("DE89370400440532013000"); // { valid: true, country: "DE", formatted: "DE89 3704 0044 0532 0130 00", ... } const build = IbanRechner.buildIban("37040044", "532013000"); // { iban: "DE89370400440532013000", bank: { name: "Commerzbank", bic: "COBADEFFXXX" } } const bank = IbanRechner.lookupBic("37040044"); // { name: "Commerzbank", city: "Köln", bic: "COBADEFFXXX" } </script>
FunktionParameterRückgabe
IbanRechner.validate(iban)IBAN-String, Leerzeichen egal{ valid, country, formatted, reasons[] }
IbanRechner.buildIban(blz, kontonummer)8-stellige BLZ, bis zu 10-stellige Kontonummer (DE){ iban, formatted, bank } oder { error }
IbanRechner.lookupBic(blzOderIban)8-stellige BLZ oder deutsche IBAN{ name, city, bic } oder { notFound: true }

Variante 2 — Fertiges Mini-Widget

Ohne eigenes UI: Ein <div> mit data-iban-rechner markieren, embed.js laden — fertig. Der Modus wird per data-mode gesteuert (validate, build oder lookup).

<div data-iban-rechner data-mode="validate"></div> <script src="embed.js"></script>

Live-Vorschau (dieses Widget läuft tatsächlich, probier es aus):

Variante 3 — iframe-Widget

Falls kein eigenes JavaScript eingebunden werden soll: widget.html per iframe einbetten. Modus über den Query-Parameter ?mode=.

<iframe src="widget.html?mode=validate" width="420" height="140" style="border:0;"></iframe>

REST-API (serverseitig)

Neben den drei clientseitigen Varianten betreibt CheckIBAN.de eine kleine, read-only JSON-API, mit der die eigene Bankdatenbank (Bundesbank-Sync) sowie FAQ- und Glossar-Inhalte serverseitig abgefragt werden können. Diese Endpunkte sind unabhängig von embed.js/IbanCore — sie liefern Daten aus der Server-Datenbank statt aus einer im Browser mitgelieferten, festen Bankliste.

Wichtig für den Einsatz: Diese API sendet aktuell keine Access-Control-Allow-Origin-Header. Ein direkter fetch()-Aufruf aus dem Browser einer fremden Domain heraus wird daher vom Browser blockiert (Same-Origin-Policy) — nutzbar ist sie heute serverseitig (z. B. aus einem Backend, per curl, oder aus dem eigenen Origin). Es gibt derzeit keinen API-Key, kein Rate-Limit und keine Versionierung; die Endpunkte sind öffentlich und unauthentifiziert erreichbar.

Wann lokal, wann serverseitig? Für reine IBAN-Prüfung/-Berechnung sowie den kuratierten Kurz-Banklookup genügt embed.js/IbanCore vollständig lokal (Varianten 1–3 oben). Für einen Abgleich gegen die vollständige, laufend aktualisierte Bundesbank-Datenbank — etwa aus einem eigenen Backend heraus — ist GET /api/bank/:blz die passende Quelle.

GET /api/bank/:blz

Liefert die Bankdaten zu einer 8-stelligen Bankleitzahl aus der serverseitigen Datenbank.

ParameterOrtPflichtFormat
blzPfadjagenau 8 Ziffern (Trennzeichen wie Leerzeichen/Bindestrich werden entfernt)
curl https://checkiban.de/api/bank/37040044
fetch("/api/bank/37040044") .then(r => r.json()) .then(console.log);

Erfolgreiche Antwort (200):

{ "blz": "37040044", "name": "Commerzbank", "city": "Köln", "bic": "COBADEFFXXX", "source": "bundesbank" }
StatusBedeutungBeispiel-Antwort
200Bank gefunden{ blz, name, city, bic, source }
400BLZ ist nicht genau 8 Ziffern lang{ "error": "BLZ muss 8-stellig sein." }
404Keine Bank mit dieser BLZ in der Datenbank{ "error": "Keine Bank mit dieser BLZ gefunden." }

GET /api/faq

Liefert alle FAQ-Einträge als Array, sortiert wie auf der FAQ-Seite. Keine Parameter.

curl https://checkiban.de/api/faq
[ { "id": 1, "question": "…", "answer": "…" } ]

GET /api/glossary

Liefert alle Glossar-Einträge als Array, sortiert wie auf der Glossar-Seite. Keine Parameter.

curl https://checkiban.de/api/glossary
[ { "id": 1, "term": "…", "definition": "…" } ]

GET /api/status

Liefert Betriebskennzahlen zur Bankdatenbank: Anzahl gespeicherter Banken sowie Zeitpunkt/Umfang des letzten Bundesbank-Syncs. Keine Parameter.

curl https://checkiban.de/api/status
{ "bankCount": 1234, "lastSyncAt": "2026-07-01 03:00:00", "lastSyncCount": 1234 }

Datenschutz und Datenverarbeitung

Bei GET /api/bank/:blz wird ausschließlich die übergebene Bankleitzahl verarbeitet, um den passenden Datensatz zu lesen — es werden keine weiteren Anfragedaten in der Anwendungslogik gespeichert. Es existiert keine Request-Logging-Middleware; lediglich unerwartete Fehlerfälle werden serverseitig mit Methode und URL protokolliert. Verfügbarkeits- oder Reaktionszeit-Zusagen (SLA) bestehen für diese Endpunkte nicht.

Welche Variante passen wählen?

SituationEmpfehlung
Eigenes Design, volle KontrolleFunktions-API
Schnell, ohne eigenes CSSMini-Widget per data-iban-rechner
Kein JavaScript auf der Zielseite gewünscht (z. B. CMS mit strikter CSP)iframe-Widget
Abgleich gegen die vollständige, servergepflegte Bundesbank-Datenbank aus eigenem BackendREST-API (GET /api/bank/:blz)

Zur Erinnerung: Da alles im Browser läuft, sendet die Einbindung keine Kontodaten deiner Besucher an einen Server. Details zur fachlichen Zuverlässigkeit: Datenqualität · Garantie.