4 min read

Das "S" in "SEPA" steht für Schmerzen

Das “S” in “SEPA” steht für Schmerzen

Aktuell läuft unsere allererste SEPA Massenlastschrift. Hier ein etwas zynischer Blick hinter die Kulissen:

Wie ihr vielleicht wisst, ist unsere Verwaltungssoftware und auch der Teil, der Mitgliedsbeiträge und Banking macht komplett selbst geschriebene Software. Bisher kam da einmal im Monat eine sogenannte DTA-Datei raus. Ein besonderes Konstrukt der Deutschen Kreditwirtschaft von 1976, der digitalen Steinzeit. Das Format, der Ablauf und die rechtlichen Rahmenbedingungen waren aber bekannt, erprobt und haben über Jahrzehnte gut funktioniert.

Die EU hat eines Tages aber beschlossen, dass Transaktionen zwischen Banken im Euro-Zahlungsraum vereinheitlicht werden sollen. Wir haben uns gefreut, dass Banksachen mal neu spezifiziert und vereinheitlicht wurden. Wir haben uns gefreut, dass wir in Zukunft auch bei Studenten aus Spanien, Italien, oder Polen abbuchen können, anstatt die erstmal zur nächsten Bank schicken zu müssen. Wir haben uns sogar gefreut, dass die nötigen Dateien jetzt im XML-Format vorliegen und damit einfach handhabbar sind.

Aber. Wir müssen 2 Wochen vor einer Abbuchung alle informieren, wann wir wie viel abbuchen. Die meisten von euch interessiert das genaue Abbuchungsdatum nicht und wir wollen auch nicht zu viele E-Mails verschicken. Irgendwann werden die nämlich einfach alle als SPAM aussortiert. Aber wer weiß, vielleicht freut sich ja jemand über diese E-Mails.

Also weiter: Unser System erstellt die Abbuchungsdatei, verrechnet die Beträge in der Datenbank, und schickt alle nötigen Infos per E-Mail. Und da fangen die Probleme auch schon an: wenige Stunden später kommen z.B. die ersten Antworten mit dem Text “ich ziehe zum Ende des Monats aus und mein Bankkonto ist bereits geschlossen”. Die Abbuchungsdatei liegt zu diesem Zeitpunkt bereits bei der Bank und wurde signiert und wir können einzelne Abbuchungen nicht mehr stoppen.

Gestern abend war es dann so weit. Nach ausgiebigen Tests waren wir uns sicher, dass alles funktioniert. Wir haben sicherheitshalber den Versand von E-Mails mal angehalten, eine Backup der Datenbank gemacht und dann auf den großen roten Knopf gedrückt. Das System hat eine Abbuchungsdatei erstellt, alles sah gut aus.

Die Datei haben wir direkt an die Bank hochgeladen, die sehr aussagekräftig meinte: “Fehler in Zeile 1”. Nach viel Rätselraten haben wir dann herausgefunden: die XML-Datei ist natürlich UTF-8 codiert, darf also alle möglichen Zeichen aus allen möglichen Sprachen enthalten. Wenn die Datei mit einem Bitmuster beginnt, das “hier kommt UTF-8” bedeutet, nimmt die Bank die Datei jedoch nicht mehr an. Okay, geschenkt, nehmen wir das halt raus, das ist sozusagen optional.

Nächste Datei hochgeladen, Daumen gedrückt, Fehler in Zeile 40.000. Da steht ein Name mit einem türkischen i ohne Punkt. Das ist ein ganz normales Zeichen des UTF-8 Zeichensatzes, aber die Bank kann es eben nicht. Nagut, weiter. Es hing dann noch ein einigen falschen BICs. Man könnte erwarten, dass die Bank zumindest solche Dinge wie ein übriges Leerzeichen am Ende verarbeiten kann, aber okay, ist auch geschenkt. Nachdem wir dann noch einige BICs korrigiert hatten (größtenteils waren nur Leerzeichen zuviel), sind wir aber auf noch mehr UTF-8 Zeichen gestoßen, die der Bank nicht schmecken, z.B. š. Andere UTF-8 Zeichen, wie z.B. das ë funktionieren jedoch. Sehr komisch alles.

Krönender Abschluss des Abends war dann ein “Interner Serverfehler” der Bank. Irgendwann hat die Bank die Datei schließlich akzeptiert und wir haben angefangen, die E-Mails rauszuschicken. Das ist der aktuelle Stand. Jetzt können wir nur noch abwarten. Und dann sehen wir schon, was uns noch so um die Ohren fliegt.

Oh, übrigens: das Format der neuen Dateien heißt “Payments Initiation”, oder kurz: PAIN.

Update 2016-09-12: Heutzutage sind das verschicken der SEPA Informations E-Mails und die Erstellung der .pain Datei voneinander getrennte Abläufe. Dies hat den Vorteil, dass die Mitglieder nun 2 Tage nach der E-Mail Zeit haben uns über geänderte Kontodaten zu Informieren oder das zum Zeitpunkt der Abbuchung der Mitgliedsbeiträge zu wenig Geld auf dem Konto sein wird.