IBAN Rechner (PHP)
Berechnen Sie IBAN, BIC und prüfen Sie die Kontonummer mit diesem PHP-kompatiblen Tool.
IBAN Rechner PHP: Kompletter Leitfaden zur Implementierung
Die Internationale Bankkontonummer (IBAN) ist ein international standardisiertes Format zur Identifizierung von Bankkonten. Für Entwickler, die eine PHP-basierte Lösung benötigen, ist die korrekte Berechnung und Validierung von IBANs essenziell – besonders bei der Integration von Zahlungssystemen oder Finanzanwendungen.
Dieser Leitfaden erklärt:
- Die Struktur und Komponenten einer IBAN
- PHP-Algorithmen zur IBAN-Generierung und -Validierung
- Praktische Implementierungsbeispiele mit Code-Snippets
- Sicherheitsaspekte und Best Practices
- Integration mit Banken-APIs und Zahlungsgateways
1. IBAN-Struktur verstehen
Eine IBAN besteht aus:
- Ländercode (2 Buchstaben, ISO 3166-1 alpha-2)
- Prüfziffer (2 Ziffern, berechnet nach ISO 7064)
- BBAN (Basic Bank Account Number, länderspezifisch)
Beispiel (Deutschland):
DE89 3704 0044 0532 0130 00
DE Ländercode
89 Prüfziffer
370400440532013000 BBAN (BLZ + Kontonummer)
2. PHP-Algorithmus zur IBAN-Berechnung
Die Generierung einer IBAN erfordert folgende Schritte:
2.1 Prüfziffernberechnung (Modulo-97-Algorithmus)
Die Prüfziffer wird nach ISO 7064 berechnet:
- Ländercode + “00” + BBAN aneinanderhängen
- Buchstaben durch Zahlen ersetzen (A=10, B=11, …, Z=35)
- Die Zahl modulo 97 berechnen
- 98 minus das Ergebnis = Prüfziffer
function calculateChecksum($countryCode, $bban) { $moved = substr($bban, 0, 4) . substr($bban, 4); $rearranged = $moved . $countryCode . “00”; $converted = ”; for ($i = 0; $i < strlen($rearranged); $i++) { $char = $rearranged[$i]; if (ctype_alpha($char)) { $converted .= (ord(strtoupper($char)) - 55); } else { $converted .= $char; } } $checksum = 98 - bcmod($converted, 97); return str_pad($checksum, 2, '0', STR_PAD_LEFT); }
2.2 Komplette IBAN-Generierung in PHP
Hier ein vollständiges Beispiel zur IBAN-Generierung:
function generateIBAN($countryCode, $bankCode, $accountNumber) { // BBAN konstruieren (Deutschland: BLZ + Kontonummer) $bban = $bankCode . str_pad($accountNumber, 10, ‘0’, STR_PAD_LEFT); // Prüfziffer berechnen $checksum = calculateChecksum($countryCode, $bban); // IBAN zusammenbauen $iban = $countryCode . $checksum . $bban; // Formatierung in 4er-Blöcke return chunk_split(strtoupper($iban), 4, ‘ ‘); } // Beispielaufruf $iban = generateIBAN(‘DE’, ‘10010010’, ‘123456789’); echo $iban; // Ausgabe: DE89 1001 0010 1234 5678 90
3. IBAN-Validierung in PHP
Die Validierung einer IBAN erfolgt durch:
- Prüfung des Formats (Ländercode, Länge, Zeichen)
- Neuberechnung der Prüfziffer und Vergleich
- Bank-spezifische Validierung (optional)
function validateIBAN($iban) { // Leerzeichen entfernen und in Großbuchstaben umwandeln $iban = strtoupper(str_replace(‘ ‘, ”, $iban)); // Ländercode extrahieren und Länge prüfen $countryCode = substr($iban, 0, 2); $ibanLengths = [ ‘DE’ => 22, ‘AT’ => 20, ‘CH’ => 21, ‘FR’ => 27, ‘ES’ => 24, ‘IT’ => 27, ‘NL’ => 18, ‘BE’ => 16 ]; if (!array_key_exists($countryCode, $ibanLengths) || strlen($iban) != $ibanLengths[$countryCode]) { return false; } // Prüfziffer validieren $moved = substr($iban, 4) . substr($iban, 0, 4); $converted = ”; for ($i = 0; $i < strlen($moved); $i++) { $char = $moved[$i]; if (ctype_alpha($char)) { $converted .= (ord($char) - 55); } else { $converted .= $char; } } return bcmod($converted, 97) == 1; } // Beispielaufruf $isValid = validateIBAN('DE89 3704 0044 0532 0130 00');
4. BIC/SWIFT-Code Ermittlung
Der Business Identifier Code (BIC) identifiziert die Bank. In Deutschland kann der BIC oft aus der Bankleitzahl abgeleitet werden:
| Bankleitzahl (BLZ) | BIC-Format | Beispiel |
|---|---|---|
| 10010010 (Postbank) | PBNKDEFFXXX | PBNKDEFF100 |
| 37040044 (Commerzbank) | COBADEFFXXX | COBADEFF370 |
| 50010517 (Ing-Diba) | INGDDEFFXXX | INGDDEFF500 |
| 70020270 (HypoVereinsbank) | HYVEDEMMXXX | HYVEDEMM700 |
Für eine zuverlässige BIC-Ermittlung sollten Sie die Deutsche Bundesbank BLZ-Verzeichnis oder kommerzielle APIs wie SWIFTRef nutzen.
5. PHP-Bibliotheken für IBAN-Operationen
Für komplexere Anforderungen empfehlen sich diese Bibliotheken:
| Bibliothek | Funktionen | Installation |
|---|---|---|
| league/iban | Generierung, Validierung, Formatierung | composer require league/iban |
| moneyphp/iban | IBAN + BIC Operationen | composer require moneyphp/iban |
| php-iban/php-iban | Einfache Validierung | composer require php-iban/php-iban |
Beispiel mit league/iban:
use League\Iban\Iban; $iban = new Iban(‘DE89370400440532013000’); if ($iban->verify()) { echo “Gültige IBAN”; echo “Ländercode: ” . $iban->countryCode(); echo “Bankcode: ” . $iban->bankIdentifier(); echo “Kontonummer: ” . $iban->accountNumber(); } else { echo “Ungültige IBAN”; }
6. Sicherheitsaspekte bei IBAN-Verarbeitung
Bei der Verarbeitung von Bankdaten sind folgende Punkte zu beachten:
- Datenverschlüsselung: IBANs immer verschlüsselt speichern (AES-256)
- PCI-DSS Compliance: Bei Zahlungsabwicklung PCI-Standards einhalten
- Input-Validierung: Serverseitige Prüfung aller Eingaben
- Logging: Keine sensiblen Daten in Logfiles speichern
- Zwei-Faktor-Authentifizierung: Für administrative Zugriffe
Die Europäische Zentralbank bietet offizielle Richtlinien zur IBAN-Nutzung.
7. Integration mit Zahlungsgateways
IBAN-Rechner sind oft Teil von:
- SEPA-Lastschrift-Systemen
- Online-Shops (WooCommerce, Shopware)
- Buchhaltungssoftware
- Fintech-Anwendungen
Beispiel für WooCommerce-Integration:
add_filter(‘woocommerce_billing_fields’, ‘add_iban_field’); function add_iban_field($fields) { $fields[‘billing_iban’] = array( ‘label’ => __(‘IBAN’, ‘woocommerce’), ‘required’ => true, ‘class’ => array(‘form-row-wide’), ‘clear’ => true ); return $fields; } add_action(‘woocommerce_checkout_process’, ‘validate_iban_field’); function validate_iban_field() { if (!validateIBAN($_POST[‘billing_iban’])) { wc_add_notice(__(‘Ungültige IBAN. Bitte überprüfen Sie Ihre Eingabe.’), ‘error’); } }
8. Performance-Optimierung
Für hochfrequentierte Systeme:
- Caching: Häufig verwendete IBAN/BIC-Kombinationen cachen
- Batch-Verarbeitung: Bei Stapelverarbeitung asynchrone Jobs nutzen
- Datenbank-Indizes: Für IBAN-Suchen entsprechende Indizes anlegen
- Microservices: IBAN-Validierung als separaten Service auslagern
9. Rechtliche Anforderungen
Beachten Sie:
- DSGVO: IBANs gelten als personenbezogene Daten
- Geldwäschegesetz: Bei geschäftsmäßiger Abwicklung
- SEPA-Verordnung: EU-Verordnung Nr. 260/2012
Die offizielle SEPA-Verordnung der EU enthält alle rechtlichen Details.
10. Zukunft der IBAN: ISO 20022
Der neue Standard ISO 20022 wird die IBAN-Nutzung erweitern:
- Erweiterte Datenelemente für Zahlungen
- Bessere globale Interoperabilität
- Echtzeit-Zahlungsabwicklung
- Erweiterte Validierungsmöglichkeiten
Die ISO 20022 Organisation bietet detaillierte Informationen zur Migration.
Fazit
Die korrekte Implementierung eines IBAN-Rechners in PHP erfordert:
- Präzise Algorithmen für Prüfziffernberechnung
- Umfassende Validierungsroutinen
- Sichere Datenverarbeitung
- Integration mit Bankensystemen
- Compliance mit finanziellen Vorschriften
Mit den in diesem Leitfaden vorgestellten Techniken können Sie robuste Lösungen für Finanzanwendungen, E-Commerce-Plattformen oder Buchhaltungssysteme entwickeln.