Bereits im September veröffentlichte ich die erste Version des „SEPA XML Creators“ in Form einer PHP-Klasse. Mit Hilfe dieser Klasse war es möglich auf einfache Art und Weise eine SEPA Einzel- oder Sammelüberweisung zu erstellen und die XML-Struktur (pain.001.002.03) zu generieren. Am heutigen morgen wurde die Erweiterung der existierenden PHP-Klasse auf Github veröffentlicht so dass nun auch die versprochene Erstellung von SEPA Lastschriften (Basislastschriften – pain.008.002.02) über die Klasse möglich ist.
Wie erstelle ich nun eine SEPA Lastschrift?
// Einbindung der SepaXmlCreator-Klasse require_once 'SepaXmlCreator.php'; // Erzeugen einer neuen Instanz $creator = new SepaXmlCreator(); /* * Mit den Account-Werten wird das eigene Konto beschrieben * erster Parameter = Name * zweiter Parameter = IBAN * dritter Paramenter = BIC */ $creator->setAccountValues('mein Name', 'meine IBAN', 'meine BIC'); /* * Setzen Sie von der Bundesbank übermittelte Gläubiger-ID */ $creator->setGlaeubigerId("DE98ZZZ09999999999"); // Erzeugung einer neuen Buchungssatz $buchung = new SepaBuchung(); $buchung->setBetrag(10); $buchung->setEnd2End('ID-00002'); $buchung->setBic('EMPFAENGERBIC'); $buchung->setName('Mustermann, Max'); $buchung->setIban('DE1234566..'); $buchung->setVerwendungszweck('Test Buchung'); // Referenz auf das vom Kunden erteilte Lastschriftmandat // ID = MANDAT0001 // Erteilung durch Kunden am 20. Mai 2013 // False = seit letzter Lastschrift wurde am Mandat nichts geändert $buchung->setMandat("MANDAT0001", "2013-05-20", false); // Buchung zur Liste hinzufügen $creator->addBuchung($buchung); // Dies kann beliebig oft wiederholt werden ... $buchung = new SepaBuchung(); $buchung->setBetrag(7); $buchung->setBic('EMPFAENGERBIC'); $buchung->setName('Mustermann, Max'); $buchung->setIban('DE1234566..'); $buchung->setMandat("MANDAT0002"); $creator->addBuchung($buchung); // Nun kann die XML-Datei über den Aufruf der entsprechenden Methode generiert werden echo $creator->generateBasislastschriftXml();
Mit diesen Codezeilen erstellen Sie nun eine SEPA-konforme XML-Datei (pain.008.002.02) zu Beauftragung einer Sammellastschrift / Basislastschrift. Sie können beliebig viele Buchungen (abhängig von Ihrem Kontoführenden Institut) zur XML-Datei hinzufügen und somit z.B. den Einzug Ihrer Mitgliederzahlungen Ihres Vereines oder wiederkehrender Rechnungen einfach automatisiert erstellen und an Ihre Bank übergeben.
Was mache ich nun mit der generierten XML-Datei?
Die generierte XML-Datei ist das Pendant zur DTAUS-Datei (aus den gutan alten DTA Zeiten) für das neue SEPA-Format. Die Datei muss an Ihr kontoführendes Institut übertragen werden und wird hier genutzt um die gewünschten Zahlungsaufträge durchzuführen. In der Regel bietet Ihnen Ihre Geschäftsbank eine Online-Schnittstelle über welche Sie die XML-Datei übertragen können, alternativ helfen auch Homebanking-Programme wie z.B. Hibiscus oder StarMoney bei der Übertragung der gewünschten Datensätze an Ihr Institut.
Woher bekomme ich meine Gläubiger-ID?
Die SEPA Regularien zur Nutzung des Lastschriftverfahrens sehen vor, dass jeder Gläubiger (also derjenige der die Lastschrift vom Kunden einzieht und das Geld somit gutgeschrieben bekommt) über eine eindeutige Identifikations-ID verfügt. Diese Identifikations-ID nennt sich „Gläubiger-Identifikationsnummer“ und wird von der Bundesbank verwaltet und erteilt (weitere Details entnehmen Sie bitte der Informationsseite der Deutschen Bundesbank).
Ihre persönliche Gläuberiger-ID können Sie online bei der Deutschen Bundesbank beantragen. Die Zuteilung der Identifikationsnummer geht erfahrungsgemäß relativ schnell und wird Ihnen per Mail übermittelt: Gläubiger-ID beantragen
Wo finde ich nun die PHP-Klasse?
Ich habe mich dazu entschieden die PHP-Klasse zum kostenlosen Download bereitzustellen. Hierzu habe ich ein GitHub Repository angelegt in welchem der Sourcecode sowie einige kleine Beispiele abgelegt sind. Updates werden direkt dort vorgenommen. Sie finden das Repository unter folgende URL:
Hi,
wie kann ich denn die Klasse an das aktuelle pain.008.001.02 anpassen?
Danke im Voraus
Andi