Hallo,
Ich bin aktuell dabei eine Bibliothek für das vtigerCRM zu schreiben, welche alle Aufgaben rund um SEPA abdeckt. Unter anderem die Konvertierung von deutschen Kontodaten (Kontonummer und Bankleitzahl) in die neue IBAN/BIC Einträge.
Jeder Leser, der sich schon einmal kurz damit beschäftigt hat, wird die allgemeine Regel für deutsche Kunden kennen. „DExx<BLZ><10-stellige Kontonummer>“
Die Prüfsumme an 3. und 4. Stelle ist auch schnell, z.B. mittels einer kurzen PHP Funktion, berechnet. Dafür gibt es schon bereits hunderte Anleitungen im Netz.
Nachdem mich ein vtiger Anwender darauf aufmerksam gemacht hat, dass es nicht ganz so einfach ist, habe ich mich etwas tiefgründiger mit dem Thema beschäftigt.
(Die Page der Bundesbank ist leider nicht sonderlich Google optimiert, sodass man Informationen nur schwer findet.)
Und wirklich gibt es aktuell 59 verschiedene Regelungen, wie die IBAN aufgebaut werden kann. Praktisch jede große Bank/Sparkasse hat spezielle Ausnahmen, Spendenkonten, welche nicht einfach übernommen werden können.
Knapp 80% dieser Regelungen sind nur kleine Einschränkungen, wenn eine BLZ geändert wurde, bzw. welche Kontonummern von Spendenkonten anders bezeichnet werden müssen.
Die restlichen 20% aber, und darunter Commerzbank und Deutsche Bank, haben aber spezielle Bedingungen, wie Kontonummer eingefügt werden müssen, bzw. wie 7-stellige, 8-stellige oder 9-stellige KtoNr. ergänzt werden müssen. (Bestes Beispiel ist die Santander Consumer Bank, welche 8 -stellige KtoNr. rechtsbündig auffüllt, alle anderen aber linksbündig)
Begründung dafür ist jeweils die Einteilung in Unterkonten innerhalb eines Hauptkontos.
Da evtl. auch andere Entwickler auf dieses Problem stoßen, möchte ich hier kurz eine PHP Bibliothek verlinken, welche ich nach einiger Suche gefunden habe und welche die Arbeit für deutsche Kunden relativ gut übernimmt:
https://github.com/jschaedl/Iban (Vielen Dank an Jan Schädlich für diese super Bibliothek)
Da ich die fehlenden Bildungsregeln selber noch hinzugefügt habe, auch einen Link auf meinen Fork, welcher nur weitere Regeln beinhaltet: https://github.com/swarnat/Iban
Evtl. wurde dieser aber zum aktuellen Zeitpunkt auch bereits übernommen.
Stefan

