PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


SEPA-Vorbereitungen

with 11 comments

SEPAAb dem 1. Februar 2014 werden Banken nur noch SEPA-Lastschriften bearbeiten, die “alten” Lastschriften mit Kontonummer und Bankleitzahl müssen also ersetzt werden.

Es wird Pflicht sein ein sogenanntes Mandat des Kunden einzusammeln, also eine schriftliche Berechtigung, die SEPA-Lastschrift durchführen zu dürfen. Wie holt man diese im Internet ein, es muss ja eine “sichere elektronische oder schriftliche Unterschrift” sein.

Außerdem muss man dem Kunden vorher eine Information über die bevorstehende Zahlung senden. Wie passiert das genau, und wie viel vorher muss man das machen?

Habt ihr bereits eine SEPA-Gläubigeridentifikation beantragt bei der Bundesbank, wie lange hat das gedauert?

Habt ihr eure Formulare bereits ergänzt um die IBAN/BIC Abfrage bzw. die alten Formularfelder ersetzt?

Welche PHP-Klasse oder Funktion nutzt ihr um IBAN/BIC Angaben zu prüfen auf Korrektheit, also beispielsweise in der IBAN die Prüfzahl berechnen oder die BIC gegen eine Liste prüfen? Habt ihr Klassen/Funktionen um Kontonummer+BLZ in eine IBAN umzurechnen (also vor allem die Prüfziffer zu berechnen)?

Ich würde gern einen Überblick erhalten ob ihr bereits daran arbeitet, was ihr tut, und wie ihr die auftretenden Probleme (wie holt ihr das Mandat ein) löst? Oder habt ihr Glück und müsst euch nicht drum kümmern da ihr keine Zahlung via Lastschrift anbietet?

Written by Michael Kliewe

September 6th, 2013 at 2:47 pm

11 Responses to 'SEPA-Vorbereitungen'

Subscribe to comments with RSS or TrackBack to 'SEPA-Vorbereitungen'.

  1. Muss mich zum Glück nicht darum kümmern…

    David

    6 Sep 13 at 14:49

  2. Bei uns werden SEPA-Mandate generell in schriftlicher Form angefordert. Das heißt ich generiere PDF-Dateien, die der Kunde dann unterschrieben zum Vertragsabschluss vorlegen muss.

    Bei der Eingabeüberprüfung beschränke ich mich auf Überprüfung der Zeichen, Zeichenzahl und – da es sich ausschließlich um deutsche Konten handelt – auf die korrekte Position des ‘DE’ Kürzels in IBAN und BIC. Auf eine Validierung per Prüfsumme verzichte ich, weil es wohl auch zu viele Außnahmen gibt

    siehe auch: http://de.wikipedia.org/wiki/International_Bank_Account_Number#Validierung_der_Pr.C3.BCfsumme

    Matthias

    6 Sep 13 at 15:12

  3. Hallo.

    In meiner Firma sind wir grade dabei das ganze Umzustellen. In unserem Onlineshop werden wir das mit den Mandaten vermutlich so umsetzen, wie es hier gezeigt wurde: http://t3n.de/news/sepa-lastschriftmandat-sieht-492087

    Zur Umrechnung von KTO und BLZ bzw zur Validierung nutzen wir cKonto: http://www.ckonto.de und sind damit eigentlich recht zufrieden :-)

    Matthias

    6 Sep 13 at 15:13

  4. Ich hab meine IBAN/BIC schon immer auf meinen Rechnungen stehen, für die Ausländer.

    Das ZF2 hat nen funktionierenden IBAN validator mit dabei glaube ich nur auf prüfsummen Basis.

  5. Hallo zusammen,

    wir haben das Thema SEPA bereits für einige Kunden umgesetzt.

    Hierbei unterscheiden sich die implementierten Lösungen immer wieder deutlich von Branche zu Branche.

    Im Telekommunikations- oder Versicherungsbereich werden die SEPA-Mandate schriftlich mit Unterschrift eingeholt, da die Anforderungen an den Vertragsabschluß ohnehin eine physikalische Unterschrift voraussetzen, daher muss der Kunde hier nur 1 weitere Unterschrift leisten.

    Im E-Commerce Bereich zeichnen sich auch 3 Wege ab, nämlich der Weg, keine Lastschrift mehr anzubieten, das SEPA-Mandat auch per physikalischer Unterschrift einzuholen oder eben auf die Unterschrift zu verzichten und das 13-monatige Rückbuchungsrecht des Kunden in Kauf zu nehmen. Vor allem die letzte Variante, wie Sie zum Beispiel auf t3n vorgestellt wird wird von vielen Seiten durchaus kritisch gesehen.

    Hier geschehen mehrere Dinge, zum einen benötigt es eine Bank, die in Ihren Inkasso-Vereinbarungen keine physikalische Unterschrift unter dem Mandat voraussetzt, zum anderen ist es datenschutzrechtlich durchaus zweifelhaft zu bewerten, wenn das durch “Online-Unterschrift” (abklicken) gezeichnetene Mandat über eine unverschlüsselte SMTP Verbindung an die E-Mail Adresse des Kunden gesendet wird.

    Zusätzlich dazu bedeutet die auf t3n vorgestellte Variante des Mandates, dass dieses nur für SEPA-Basis-Lastschrift-Mandate verwendet werden kann. Wer also sowohl mit privat als auch mit Geschäftskunden arbeitet, und beide SEPA-Lastschrift-Verfahren, also SEPA-Basis und SEPA-B2B verwenden möchte, benötigt 2 Lösungen. Den ein durch “Online-Unterschrift” abgeklicktes SEPA-B2B Mandat wird von den Banken komplett abgelehnt.

    Die Vorabinformation, dass sogenannte Pre-Notification Verfahren stellt wiederrum für niemanden eine Herausforderung dar. Hier hat sowohl das SEPA-Begeleitgesetz als auch die die EU-Richtlinie alle Möglichkeiten offen gelassen, wie diese Pre-Notification erfolgen kann. Wir haben hier bereits mehrere Lösungen implemeniert.

    1. Lösung 1: Versand der Pre-Notification per E-Mail (unkritisch und kostenfrei – Datenschutz beachten)
    2. Lösung 2: Versand der PRE-Notification per SMS (kostengünstig)
    3. Aufdruck der Pre-Notification Information auf die Rechnung und Bereitstellung der Rechnung online (in vielen Unternehmen kostenfrei, da die Rechnung ohnehin online bereit gestellt wird)

    IBAN Converter gibt es relativ viele, für PHP gibt es mindestens diesen einen: https://www.google.de/#q=php%20iban%20konverter

    René Jacobi

    6 Sep 13 at 17:18

  6. Bin meinerseits ebenfalls gerade am Thema. Bei vielen Unternehmen ist mit dem Problem zu rechnen, daß sie eine große Menge kleiner Privatkunden bedienen – sei es über Aboverträge oder einmalige Spontan-Lastschriften.

    Es ist in diesen Situationen an sich komplett unrealistisch, vorher überall eine schriftliche Genehmigung anzufordern. Im Falle der Aboverträge könnte man damit rechnen, daß nach 18 Monaten vielleicht die Hälfte der Kunden überhaupt geantwortet hat. Bis dahin könnte man nicht abbbuchen und das Unternehmen wäre pleite.

    Und Online-Shopping mit Lastschrift als Bezahlverfahren würde komplett an Sinn verlieren, wenn man für jede Bestellung dann doch erstmal ein Formular ausdrucken und zur Post bringen müsste.

    Zum Glück scheinen inzwischen auch die SEPA-Macher dies eingesehen zu haben und es gibt einige Ausnahmeregelungen für Bestandskunden bei wiederkehrenden Lastschriften (hier kommt es jedoch auf die Vertragsformulierungen an) sowie insbesondere für eCommerce:

    * http://www.haerting.de/de/neuigkeit/das-schriftlichkeitserfordernis-der-sepa-lastschrift

    * http://blog.wiwo.de/die-consultanten/2013/06/22/sturmtief-sepa-kreist-uber-wirtschaft-und-wohlfahrt/

    * https://docs.google.com/viewer?url=https%3A%2F%2Fwww.sparkasse-lemgo.de%2Fpool%2Fsepa%2FLeitfaden_SEPA_Praxisbeispiel.pdf

    * http://www.sellerforum.de/zahlungssysteme-banken-paypal-co-f37/bafin-gibt-ok-fuer-sepa-lastschriften-ohne-untersc-t34284.html => darin auch Link zum im März verabschiedeten SEPA-Begleitgesetz (Seite 12 ff.)

    Zudem bleibt auch die Zahlung per ELV am POS (ec-Karte) zukünftig gültig, was damals noch nicht klar war.
    http://www.sepatest.eu/?id=30&news_date=08.03.2013

    Was die Toolchain betrifft, habe ich im Falle meines Kunden derzeit nur mit der Umstellung der Konten von Bestandskunden zu tun, eine aktive Validierung brauche ich nicht und das ist auch gut so, da die Ausnahmen in der Tat zahlreich sind, wie Matthias schon schrieb.

    Das oben erwähnte cKonto macht hier auf den ersten Blick schon mal einen sehr guten Eindruck und wie ich gerade feststellen durfte, antwortet der Support auf Anfragen auch rasend schnell :-)

    Zur Erzeugung von SEPA-XML-Dateien habe ich auf Github biehser diese Libraries gefunden:

    * https://github.com/digitick/php-sepa-xml

    * https://github.com/dovereem/php-sepa-xml

    Okay, ich habe durchaus noch mehr auf Github und auch anderswo gefunden, aber der Rest sah qualitativ nicht so aus, daß ich ihn überhaupt in Erwägung gezogen hätte :-)

    Insgesamt ist das Format kein Hexenwerk (man vergleiche das mal mit dem altehrwürdigen DTA, *grusel*), kann man also an sich auch gut selbst machen. Aber als Startpunkt und zur Zeitersparnis vielleicht ganz nützlich (Disclaimer: Habe beide Libs noch nicht getestet).

    Freue mich über weitere Anregungen und Tipps :-)

    CU
    Markus

    Markus Wolff

    6 Sep 13 at 17:42

  7. Ich durfte für meine Firma einen Assistenten programmieren und wir haben Abstand von einer eigenen Konvertierung genommen, denn es gibt wirklich viele Ausnahmen. Wenn man dann bedenkt, dass selbst die Banken keine “Garantie” für die Richtigkeit der Daten übernehmen, dann wäre es auch eine ABM für den Support. Dafür arbeiten wir mit der IBAN-HIN und -RUECK Spezifikation, d.h. wir generieren eine Datei, die bei der Hausbank in einen Konverter gesteckt wird und erhalten in einer neuen Datei die IBAN und den BIC.

    Sven

    16 Sep 13 at 12:07

  8. Also ich habe es auch in PDF-Form gemacht da der Kunde bei der Versicherung für die ich arbeite eine Bestätigungsmail bekommt in der seine Daten dann inklusive angehängtem SEPA-Mandat vorzufinden sind.

    Daniel

    19 Sep 13 at 16:50

  9. Hi,

    ich habe einen EBICS Client in PHP geschrieben der auch eine SEPA Klasse enthält um SEPA Überweisungen und SEPA Lastschriften durchzuführen.

    Hier gehts zum Projekt:

    http://www.startnext.de/ebics-client-php-klasse-gpl

    Ich bin für jeden Fan oder Supporter dankbar!

    Florian Wiessner

    12 Okt 13 at 23:29

  10. Guten morgen,

    die eigenliche Migration von DTA auf SEPA ist bei meinen Kunden und mir bereits seit einigen Wochen abgeschlossen. Aufgrund der inhomogenen Berechnung der Prüfziffern / Aufbau der IBAN in Deutschland habe ich mich hierbei um eine automatisierte Konvertierung gedrückt und dies meine Kunden durch Neueingabe der Bestandsdaten umgangen.

    Die generierung der Zahlungsaufträge (Sammelüberweisungen, Sammellastschriften / Basislastschriften) führe ich hierbei über meine leichtgewichtige und kleine PHP-Klasse durch welche ich gerade auf GitHub bereitgestellt habe:
    http://www.thomasschiffler.de/2013_11/code-schnipsel/sepa-sammellastschrift-basislastschrift-xml-mit-php/

    Gruß Thomas

    Thomas Schiffler

    26 Nov 13 at 08:57

  11. Wir haben mit libsepa (libsepa.com) eine eigene Lösung entwickelt.
    Die Spezifikationen sind ja alle frei verfügbar, aber in der Summe eine ziemliche Wucht (mit IBAN-Konvertierung, Kontoziffernprüfung und SEPA-XML ist ein dicker Aktenordner schnell gefüllt).
    Zudem fanden wir es ernüchternd bis schockierend, dass selbst “in letzter Minute” (November/Dezember) noch wichtige Änderungen in den IBAN-Konvertierungsregeln vorgenommen wurden (die Deutsche Bank informiert hierzu auf einer eigenen Mailingliste).
    Daran erkennt man, dass auch viele Banken trotz der langen Vorlaufzeit erst auf den letzten Drücker loslegen.

    Noch ein ganz anderer Tipp, da die Beiträge hier sehr “Lastschrift-lastig” sind: wer plant, Lastschriften von ausländischen Konten einzuziehen, sollte unbedingt prüfen, ob die jeweilige Bank überhaupt das Lastschriftverfahren unterstützt. Bei der EPC müssen sich alle SEPA-Teilnehmer (Banken) jeweils mit den unterstützten Zahlungsmethoden (CORE, B2B, COR1) registrieren – das nennt sich dann “SEPA Adherence Agreement”. Die von der EPC gepflegte Adherence Database ist leider nur sehr eingeschränkt brauchbar, da multinationale Banken dort häufig nur mit einer einzigen BIC registriert sind. Interessanter ist dagegen das SCL-Directory der Deutschen Bundesbank; hier kann man anhand einer BIC herausfinden, ob entsprechende Zahlungen zu dieser Bank geroutet werden können.
    Das ist zwar nicht so verlässlich wie die offiziellen Datenbanken der SWIFT, dafür sind letztere ziemlich teuer.

    Klaus Keppler

    18 Dez 13 at 12:04

Leave a Reply

You can add images to your comment by clicking here.