Zum Inhalt springen
IBANforge
REST-API · JSON · MCP

IBAN prüfen per API

Ein einziger POST prüft eine IBAN so, wie ein Zahlungslauf es braucht: Prüfziffer und Länderstruktur, dann die Bank dahinter, gelesen im nationalen Register, mit Quelle und Stand.

  • 89 IBAN-Länder
  • Bank und BIC mit Quelle
  • Erste Aufrufe ohne Schlüssel
In der Sandbox testen
Zur Dokumentation

Was ein Aufruf prüft

POST /v1/iban/validate antwortet mit einem einzigen JSON-Objekt. Jede Prüfung hat ihr eigenes Feld: Ihr Code liest genau, was geprüft wurde und was nicht.

Prüfziffer

checks.iban_checksum

Die Modulo-97-Prüfung nach ISO 13616 über die zwei Ziffern nach dem Ländercode. Ein einziges falsch getipptes Zeichen lässt sie scheitern.

Länderstruktur

checks.iban_structure

Länge und Aufbau des Kontoteils für jedes der 89 Länder des IBAN-Registers. Eine ungültige IBAN ist kein HTTP-Fehler: Die Antwort ist ein 200 mit valid: false und dem Grund.

Nationale Prüfziffern

checks.national_check_digits

Wo ein Land seinen eigenen Schlüssel in der Kontonummer versteckt: Frankreich und Monaco (RIB-Schlüssel), Belgien, Italien und San Marino (CIN), Spanien (DC) und das Vereinigte Königreich (Modulus-Prüfung). Ein falscher Schlüssel steht in diesem Feld und macht valid nie falsch. In Polen kommt die Prüfziffer der Abrechnungsnummer mit der Bankleitzahl, in bank_code_check.check_digit.

Die Bank und ihr BIC

bank_code_check · bic.source · as_of

Die Bankleitzahl wird im nationalen Register nachgeschlagen, wo wir es vollständig lesen: Deutschland, Österreich, Belgien, Slowakei, Tschechien, Bulgarien, Schweiz und Liechtenstein. Dort kommt ein Code, den das Register nicht führt, als not_allocated zurück. Anderswo nennt ein Teilregister oder eine zusammengesetzte Tabelle die Bank, und die Antwort sagt, dass sie einen Code nicht ausschließen kann. Register und Stand der Ausgabe stehen in der Antwort.

SEPA und Empfängerüberprüfung

sepa · risk_indicators.vop_coverage

Die SEPA-Verfahren, die die Bank erreichen (Überweisung, Echtzeitüberweisung, Lastschrift), aus den Registern des EPC, wenn sie die Bank führen, sonst aus dem Land, mit genannter Grundlage. Und ob das EPC-Register der Empfängerüberprüfung (VoP) die Bank als bereit führt.

Prüfung der Bank, auf Wunsch

POST /v1/iban/compliance

Ein eigener Aufruf gleicht die Bank des Empfängers (BIC8) mit den Listen von OFAC, EU und UN ab, prüft das Land gegen die FATF und eine feste Liste sanktionierter Länder und liefert einen Risikowert von 0 bis 100. Er dient der Information und prüft nie den Namen des Empfängers.

Was sie Ihnen nicht sagt

  • Ob das Konto existiert oder offen ist. Kein Register veröffentlicht das: Nur die Bank des Empfängers weiß es.
  • Auf wessen Namen das Konto läuft. Das ist die Empfängerüberprüfung, durchgeführt von der Bank des Empfängers; die API sagt nur, ob diese Bank dafür als bereit geführt wird.
  • Ob der Empfänger sanktioniert ist. Die optionale Prüfung betrifft die Bank und das Land, nicht die Person oder das Unternehmen, das Sie bezahlen.
  • Die deutschen Prüfziffermethoden der Kontonummer und die nationalen Schlüssel der oben nicht genannten Länder: Sie werden noch nicht geprüft.
Jedes Register, seine Lizenz und der Stand der Ausgabe, die wir lesen

Ihr erster Aufruf

Kopieren Sie einen dieser Blöcke unverändert. Die IBAN ist das Beispiel der Sandbox: eine gültige Schweizer IBAN, die zu einer echten Bank führt.

Die Kostprobe ohne Schlüssel beantwortet 25 Prüfungen pro Woche auf POST /v1/iban/validate, gezählt für die Adresse, von der der Aufruf kommt, ISO-Woche in UTC, Neustart am Montag um 00:00 UTC.

curl
curl -X POST https://api.ibanforge.com/v1/iban/validate \
  -H "Content-Type: application/json" \
  -d '{"iban":"CH1000230000000012345"}'

Die Antwort, wie die API sie gegeben hat

Auszug aus der Antwort der API auf diese IBAN vom 25. September 2026: die Felder, die sagen, was geprüft wurde und in welchem Register. Die vollständige Antwort enthält außerdem den Herausgeber, die Schweizer Clearing-Daten, Risikoindikatoren und den empfohlenen nächsten Schritt. Ohne Schlüssel aufgerufen, enthält sie zusätzlich einen trial-Block, der sagt, wie viele Aufrufe in dieser Woche bleiben und wann der Zähler neu beginnt.

json
{
  "iban": "CH1000230000000012345",
  "valid": true,
  "checks": {
    "iban_structure": "pass",
    "iban_checksum": "pass",
    "bank_code": "pass",
    "bic": "pass",
    "national_check_digits": "not_checked",
    "account_exists": "not_checked",
    "payee_name": "not_checked",
    "institution_sanctions": "not_checked",
    "country_sanctions": "not_checked",
    "payee_sanctions": "not_checked"
  },
  "country": {
    "code": "CH",
    "name": "Switzerland"
  },
  "bic": {
    "code": "UBSWCHZH80A",
    "bank_name": "UBS Switzerland AG",
    "city": "Zürich",
    "source": "SIX BankMaster (Swiss IID / BC-Nummer register)",
    "as_of": "2026-09",
    "basis": "national_register",
    "authoritative": true
  },
  "bank_code_check": {
    "value": "00230",
    "status": "verified",
    "register": "SIX BankMaster (Swiss IID / BC-Nummer register)",
    "authoritative": true,
    "as_of": "2026-09"
  },
  "sepa": {
    "member": true,
    "schemes": [
      "SCT",
      "SDD"
    ],
    "vop_required": false
  }
}

Nach der Kostprobe ohne Schlüssel senden Sie dieselbe Anfrage mit dem Header Authorization: Bearer ifk_… und Ihrem Schlüssel.

Warum eine Modulo-97-Prüfung nicht reicht

Das offizielle Schweizer Beispiel des IBAN-Registers, CH93 0076 2011 6238 5295 7, hat eine korrekte Prüfziffer. Seine Bankleitzahl ist im SIX BankMaster niemandem zugeteilt, und die API sagt es:

json
{
  "iban": "CH9300762011623852957",
  "valid": true,
  "bank_code_check": {
    "value": "00762",
    "status": "not_in_register",
    "reason": "not_allocated",
    "match": null,
    "register": "SIX BankMaster (Swiss IID / BC-Nummer register)",
    "authoritative": true,
    "as_of": "2026-09"
  }
}

Antwort der API auf diese IBAN, exportiert am 29. September 2026.

Kostenlos starten, dann nach Nutzung zahlen

Drei kostenlose Zugänge, jeder mit eigenem Kontingent. Keiner verlangt eine Karte.

Ohne Schlüssel

Die Kostprobe

25 Prüfungen pro Woche auf POST /v1/iban/validate, als Kostprobe ohne Schlüssel für die Adresse, von der der Aufruf kommt. Neustart am Montag um 00:00 UTC.

Schlüssel, ohne E-Mail

Ein Schlüssel mit einem Klick

25 Anfragen pro Monat, auf allen Endpunkten. Ein leerer POST an /v1/keys/generate oder der Knopf unten: ohne E-Mail, ohne Karte.

Schlüssel, mit Adresse

200 Anfragen pro Monat

Beanspruchen Sie denselben Schlüssel mit einem sechsstelligen Code, der an eine Adresse geht, die Sie lesen, oder geben Sie die Adresse beim Erstellen an. Derselbe Schlüssel, dasselbe Präfix, ohne Karte.

Wenn Sie mehr brauchen

  • Pro: 29 $ im Monat für 10.000 Anfragen, Zurücksetzung am 1., jederzeit kündbar.
  • Guthabenpakete, die nie verfallen, per Karte oder in USDC: 1.000 Credits für 4 $, 5.000 für 20 $, 25.000 für 80 $.
  • x402: Bezahlung pro Aufruf in USDC auf Base, ganz ohne Konto, 0,005 $ pro Prüfung und 0,002 $ pro IBAN in einem Stapel.
Alle Preise und der Kostenrechner

Alles rund um die API

Testen Sie sie mit Ihren eigenen IBANs

Die Sandbox ruft die echte API auf. Wenn Sie so weit sind, holen Sie sich einen Schlüssel: ohne E-Mail, ohne Karte.

In der Sandbox testen