<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Banking Archive - Das ist die Welt von Thomas</title>
	<atom:link href="https://www.schiffler.eu/thema/banking/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.schiffler.eu/thema/banking/</link>
	<description>meine Gedanken, mal strukturiert, mal nicht ...</description>
	<lastBuildDate>Mon, 12 Oct 2020 04:41:29 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.schiffler.eu/wp-content/uploads/2025/07/cropped-Profilfoto_2024-32x32.png</url>
	<title>Banking Archive - Das ist die Welt von Thomas</title>
	<link>https://www.schiffler.eu/thema/banking/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Zahlungseingänge automatisiert prüfen – auch ohne HBCI</title>
		<link>https://www.schiffler.eu/zahlungseingaenge-automatisiert-pruefen-auch-ohne-hbci/</link>
					<comments>https://www.schiffler.eu/zahlungseingaenge-automatisiert-pruefen-auch-ohne-hbci/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Mon, 27 Jan 2014 18:37:20 +0000</pubDate>
				<category><![CDATA[IT-Know How]]></category>
		<category><![CDATA[Banking]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[HBCI]]></category>
		<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://thomas.schiffler.eu/?p=14</guid>

					<description><![CDATA[<p>Jeder der Rechnungen an seine Kunden schreibt hat die Herausforderung den Zahlungseingang der selbigen zu überwachen und im schlimmsten Fall &#8230; <a href="https://www.schiffler.eu/zahlungseingaenge-automatisiert-pruefen-auch-ohne-hbci/" class="more-link">More <span class="screen-reader-text">Zahlungseingänge automatisiert prüfen – auch ohne HBCI</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/zahlungseingaenge-automatisiert-pruefen-auch-ohne-hbci/">Zahlungseingänge automatisiert prüfen – auch ohne HBCI</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Jeder der Rechnungen an seine Kunden schreibt hat die Herausforderung den Zahlungseingang der selbigen zu überwachen und im schlimmsten Fall Zahlungserinnerungen, Mahnungen oder sonstige nächste Schritte einleiten zu müssen. Damit dies möglich ist muss im Idealfall mehrmals täglich das Konto auf neue Zahlungseingänge geprüft werden. Betreiber von reinen Onlinesystemen / Onlineshops stehen vor der selben Herausforderung nur mit der Ausnahme, dass die Anzahl der auf Zahlungseingang wartenden Bestellungen deutlich höher ist. Der manuelle Aufwand zur Prüfung auf offene Zahlungen verschlingt eine Menge Zeit – also muss eine möglichst einfache Softwarelösung her.</p>



<p class="wp-block-paragraph">Auch ich stand nach dem Wechsel meiner Hausbank erneut vor der Herausforderung mein&nbsp;eigenes Rechungs- / Buchhaltungssystem&nbsp;an die neuen Gegebenheiten anzubinden. Also los gehts …</p>



<h2 class="wp-block-heading">Der Standardweg: Umsätze per HBCI abrufen</h2>



<p class="wp-block-paragraph">In der Theorie ist das automatisierte Prüfen auf Zahlungseingänge ein Kinderspiel – immerhin unterstützen die meisten Banken das HBCI-Protokoll welches mit Hilfe der freien Library&nbsp;<a href="http://hbci4java.kapott.org/" target="_blank" rel="noreferrer noopener">HBCI4Java</a>&nbsp;angebunden und z.B. zum Abrufen der Umsatzliste genutzt werden kann. Wir schreiben also eine kleine Java-Klasse, loggen uns automatisiert in der Bank ein, rufen die Umsatzliste ab und schon haben wir was wir brauchen um Weiterzuarbeiten. Ein Beispiel hierfür werde ich mir an dieser Stelle sparen – das Internet ist voll davon. Ein guter Einstieg in die Thematik bringt Ihnen aber die Informationsseite zur&nbsp;<a href="http://hbci4java.kapott.org/" target="_blank" rel="noreferrer noopener">Open-Source-Bibliothek HBCI4Java</a>.</p>



<h2 class="wp-block-heading">Kein HBCI – Was nun?</h2>



<p class="wp-block-paragraph">Was tun wir nun aber wenn unsere Bank kein HBCI unterstützt? Wir vergessen die Idee die Umsätze automatisiert zu lesen und machen das ganze manuell. Kein Problem, dauert pro Tag ja nur eine halbe Stunde – die Zeit habe ich. Nun gut, pro Tag 30 Minuten – in der Woche also „nur“ 4 1/2 Stunden. Haben wir so viel Zeit? Nein, das muss anders gehen.</p>



<p class="wp-block-paragraph">Und ja, es geht anders – warum bringen wir unserer Software nicht einfach bei genau das zu tun, was wir selbst händisch tun? Wir loggen uns über den Browser ein, klicken ein wenig herum und lesen die Umsätze manuell – wenn wir das können dann kann das auch der Computer. Die Idee für einen kleinen&nbsp;<a rel="noreferrer noopener" href="http://de.wikipedia.org/wiki/Webcrawler" target="_blank">Webcrawler</a>&nbsp;ist geboren.</p>



<h2 class="wp-block-heading">Welches Framework und warum?</h2>



<p class="wp-block-paragraph">Die ersten Versuche zum Abruf der Umsätze wurde auf Basis mit dem&nbsp;<a href="http://www.seleniumhq.org/" target="_blank" rel="noreferrer noopener">Selenium Testframework</a>&nbsp;durchgeführt. Dies hat den Vorteil dass die Benutzeraktionen direkt im Browser (über Firefox) aufgezeichnet und anschliessend in eine Java-Klasse exportiert werden können. Somit haben wir schnell eine erste Testklasse mit welcher wir das Konzept des Webcrawlers testen können. Der Nachteil ist, dass während der Ausführung des Codes ein eigener Browser gestartet wird. Zwar kann der Start des Browsers über die zusätzliche Installation eines Testservers (siehe Webseite von Selenium) umgangen werden, dennoch erscheint mir diese Lösung als etwas zu übertrieben für eine solch kleine Lösung.</p>



<p class="wp-block-paragraph">Also erinnerte ich mich an ein Gespräch mit einem Kollegen welcher mir von einer&nbsp;<a href="http://jsoup.org/" target="_blank" rel="noreferrer noopener">Java-Library namens „Jsoup“</a>&nbsp;erzählte. Diese Library ermöglicht es dem Benutzers Webseiten direkt aus dem Code zu lesen und unterstützt neben dem einfachen HTML auch Features wie CSS oder JQuery. Nachdem die ersten Tests mit Jsoup erfolgreich und die Laufzeit deutlich besser als die vorherige war, wurde die Entscheidung zum Einsatz von JSoup getroffen.</p>



<h2 class="wp-block-heading">Los geht´s</h2>



<p class="wp-block-paragraph">Bitte haben Sie Verständnis dafür, dass ich in meinem Beispiel keinen Code veröffentliche welcher direkt ausführbar und funktional zum Zugriff auf eine Bank ist. Vielmehr soll diese Seite einen technischen groben Überblick darüber geben, wie einfach es ist eine Webseite zu lesen und deren Inhalte auszuwerten. Wer diese Punkte nachvollziehen kann ist mit Sicherheit in der Lage die notwendigen Schritte selbst zu implementieren und in die eigene Softwarelösung einzubinden.</p>



<p class="wp-block-paragraph">Die hier gewählte Implementierung setzt den Focus auf Lesbarkeit. Jsoup ermöglicht auch den verschachtelten Aufruf mit der direkten Angabe aller Page- / Form-Parameter in nur einer einzigen Zeile. Mir persönlich ist das zu unlesbar und für spätere Wartungen / Fehlersuchen zu kompliziert. Aus diesem Grund besteht mein Code aus einigen Codezeilen mehr als in anderen Beispielen zu finden.</p>



<p class="wp-block-paragraph">Bitte beachten Sie dass der Beispielcode in keinem Fall so eingesetzt werden sollte sondern nur das Vorgehen demonstrieren soll. Speziell das Thema des Exception-Handlings und eventuelle Null-Checks sollten zwingend auf die eigenen Bedürfnisse angepasst und überdacht werden.</p>



<h2 class="wp-block-heading">erster Aufruf und Login</h2>



<p class="wp-block-paragraph">Der erste Request in meinem Beispiel dient dazu, eine Webseite vom Code aus aufzurufen und diese mittels GET (also dem Befehl welcher der Browser beim Besuch verwendet) zu lesen. Hierbei gehe ich davon aus, dass die Zielseite eine Form mit dem Namen „login-form“ beinhaltet. Innerhalb dieser Form werden 2 Elemente mit dem Namen „username“ und „password“ erwartet:</p>



<pre class="wp-block-preformatted">	
	public Response getLoggedInSession(String url, String username,
			String password) {
		try {
			Document doc = Jsoup.connect(url).get();

			FormElement loginForm = (FormElement) doc.select(
					"[name=login-form]").first();
			loginForm.getElementById("username").attr("value", username);
			loginForm.getElementById("password").attr("value", password);

			Response response = loginForm.submit().execute();

			return response;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}</pre>



<p class="wp-block-paragraph">Diese Funktion führt die folgenden Schritte durch:</p>



<ul class="wp-block-list"><li>HTTP-GET auf die übergebene URL</li><li>Befüllung des Feldes „username“ mit dem übergebenen Username</li><li>Befüllung des Feldes „password“ mit dem übergebenen Passwort</li><li>Submit der Form über Submit</li><li>Rückgabe der Page welche nach dem Loginversuch vom Server zurückgegeben wurde</li></ul>



<h2 class="wp-block-heading">Anklicken eines Links innerhalb der eingeloggten Session</h2>



<p class="wp-block-paragraph">Im ersten Schritt wurde bereits eine Internetseite aufgerufen und ein auf der Seite befindliches Formular mit 2 Felder ausgefüllt. Dieses Formular wurde mittels dem HTTP-POST an den Server übertragen und das Ergebnis dieses Posts zurück gegeben.</p>



<p class="wp-block-paragraph">Gehen wir nun also davon aus dass der Login erfolgreich war und wir uns nun auf der gleichen Seite befinden, wie wenn wir uns selbst über den Browser auf der gewünschten Seite einloggen. Als nächstes klicken wir im Menübaum einen bestimmten Link an um z.B. in die Umsatzliste unseres Kontos zu gelangen. Wichtig hierbei ist, dass wir dem System irgendwie mitteilen, dass wir uns bereits in einer authentifizierten Session befinden. Hierzu übergeben wir einfach die aktuelle Session-ID beim Aufruf des gewünschten Links und rufen die Page über den HTTP-GET auf:</p>



<pre class="wp-block-preformatted">	public Document getUmsatzDocument(Response loggedInResponse,
			String umsatzDocumentUrl) {
		try {

			String sessionId = loggedInResponse.cookies().get("JSESSIONID");

			Document umsatzDoc = Jsoup.connect(umsatzDocumentUrl)
					.cookie("JSESSIONID", sessionId).get();

			return umsatzDoc;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
</pre>



<h2 class="wp-block-heading">Interpretation der Ergebnisse</h2>



<p class="wp-block-paragraph">Wenn alles gut gelaufen ist haben wir nun das Dokument in der Hand, welches die uns bekannte Seite mit den Kontoumsätzen beinhaltet. Diese Seite muss nun interpretiert werden, ich gehe im Beispiel davon aus, dass die Seite folgende Inhalte enthält:</p>



<ul class="wp-block-list"><li>ein DIV-Element mit der ID transactionList</li><li>Dieses DIV enthält eine Liste von weiteres DIV mit der ID transaction
<ul><li>jedes DIV mit der ID transaction enthält einen einzelnen Umsatz</li><li>in jedem DIV existieren DIVs mit den eigentlichen Inhalten
<ul><li>ID date = Datum</li><li>ID amount = Betrag</li><li>ID topic = Verwendungszweck</li></ul>
</li></ul>
</li></ul>



<p class="wp-block-paragraph">Eine solche Beispielseite könnte wie folgt gelesen und interpretiert werden:</p>



<pre class="wp-block-preformatted">	private void readUmsaetze(Document umsatzDoc) {
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;try {
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Element umsatzDiv = umsatzDoc.select("[id=transactionList]")
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;.first();
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Elements umsaetze = umsatzDiv.select("[id=transaction]");

&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for (Element umsatz : umsaetze) {
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String datum = umsatz.getElementById("date").text();
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String betrag = umsatz.getElementById("amount").text();
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;String verwendungszweck = umsatz.getElementById("topic").text();

&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// behandle Umsatz wie gewünscht
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}

&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} catch (Exception e) {
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;e.printStackTrace();
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}
&nbsp;&nbsp; &nbsp;}</pre>



<h2 class="wp-block-heading">Was nun? Wie sieht der Praxiseinsatz aus?</h2>



<p class="wp-block-paragraph">Wie am obigen Beispiel zu sehen ist es mit nur wenigen Codezeilen möglich einen Login auf einer Seite durchzuführen, interne Seiten anzusurfen und deren Inhalte zu lesen und zu interpretieren. Im Grunde ist dieses Vorgehen für sämtliche Browserbasierten Anwendungen adaptierbar und kann in beliebiger Art und Weise eingesetzt werden.</p>



<p class="wp-block-paragraph">Problematisch bei dem Ansatz eines Webcrawlers ist allerdings die Tatsache, dass wir in unserem Code auf eine gewisse Beständigkeit des Layouts der zu lesenden Internetpräsenz angewiesen sind. Ständige Veränderungen der Internetseite auf der anderen Seite führen dazu, dass unsere eigene Software mehr oder weniger stabil ist und ständigen Anpassungen unterliegt.</p>



<p class="wp-block-paragraph">Bei mir persönlich hat sich dieses Vorgehen im Praxiseinsatz sowohl bei mir als auch bei einigen meiner Kunden inzwischen bewährt. Allerdings ist mein Praxiscode hierbei natürlich deutlich stabiler als der hier beispielhaft veröffentlichte und geht auf Themen wie die Fehlerbehandlung, Vermeidung von Doppelmeldungen oder Erkennung von Änderungen in der zugrunde liegenden Seitenstruktur ein.</p>



<p class="wp-block-paragraph">Jeder sollte für sich selbst herausfinden ob der Einsatz eines eigenen Webcrawlers eine Lösung für die vorliegende Problematik sein kann oder ob eine andere Alternativ gesucht werden muss. Allerdings ist dieses Vorgehen ein gutes Beispiel dafür, dass nicht immer der Aussage „geht nicht“ zu vertrauen ist – mit ein wenig nachdenken geht, sofern man bereit ist andere Wege zu bestreiten, so einiges …</p>
<p>Der Beitrag <a href="https://www.schiffler.eu/zahlungseingaenge-automatisiert-pruefen-auch-ohne-hbci/">Zahlungseingänge automatisiert prüfen – auch ohne HBCI</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/zahlungseingaenge-automatisiert-pruefen-auch-ohne-hbci/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SEPA Sammellastschrift / Basislastschrift XML mit PHP</title>
		<link>https://www.schiffler.eu/sepa-sammellastschrift-basislastschrift-xml-mit-php/</link>
					<comments>https://www.schiffler.eu/sepa-sammellastschrift-basislastschrift-xml-mit-php/#comments</comments>
		
		<dc:creator><![CDATA[Thomas Schiffler]]></dc:creator>
		<pubDate>Tue, 26 Nov 2013 18:36:14 +0000</pubDate>
				<category><![CDATA[IT-Know How]]></category>
		<category><![CDATA[Banking]]></category>
		<category><![CDATA[Codeschnipsel]]></category>
		<category><![CDATA[Github]]></category>
		<category><![CDATA[HBCI]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEPA]]></category>
		<guid isPermaLink="false">https://thomas.schiffler.eu/?p=12</guid>

					<description><![CDATA[<p>Bereits im&#160;September veröffentlichte ich die erste Version&#160;des „SEPA XML Creators“ in Form einer PHP-Klasse. Mit Hilfe dieser Klasse war es &#8230; <a href="https://www.schiffler.eu/sepa-sammellastschrift-basislastschrift-xml-mit-php/" class="more-link">More <span class="screen-reader-text">SEPA Sammellastschrift / Basislastschrift XML mit PHP</span> <span class="meta-nav">&#8594;</span></a></p>
<p>Der Beitrag <a href="https://www.schiffler.eu/sepa-sammellastschrift-basislastschrift-xml-mit-php/">SEPA Sammellastschrift / Basislastschrift XML mit PHP</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Bereits im&nbsp;September veröffentlichte ich die erste Version&nbsp;des „<a href="https://github.com/tschiffler/sepa-xml-creator-php" target="_blank" rel="noreferrer noopener">SEPA XML Creators</a>“ 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.</p>



<h2 class="wp-block-heading">Wie erstelle ich nun eine SEPA Lastschrift?</h2>



<pre class="wp-block-preformatted">       // 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-&gt;setAccountValues('mein Name', 'meine IBAN', 'meine BIC');

        /*
         * Setzen Sie von der Bundesbank übermittelte Gläubiger-ID
         */
        $creator-&gt;setGlaeubigerId("DE98ZZZ09999999999");

        // Erzeugung einer neuen Buchungssatz
        $buchung = new SepaBuchung();
        $buchung-&gt;setBetrag(10);
        $buchung-&gt;setEnd2End('ID-00002');
        $buchung-&gt;setBic('EMPFAENGERBIC');
        $buchung-&gt;setName('Mustermann, Max');
        $buchung-&gt;setIban('DE1234566..');
        $buchung-&gt;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-&gt;setMandat("MANDAT0001", "2013-05-20", false);

        // Buchung zur Liste hinzufügen
        $creator-&gt;addBuchung($buchung);

        // Dies kann beliebig oft wiederholt werden ...
        $buchung = new SepaBuchung();
        $buchung-&gt;setBetrag(7);
        $buchung-&gt;setBic('EMPFAENGERBIC');
        $buchung-&gt;setName('Mustermann, Max');
        $buchung-&gt;setIban('DE1234566..');
        $buchung-&gt;setMandat("MANDAT0002");
        $creator-&gt;addBuchung($buchung);

        // Nun kann die XML-Datei über den Aufruf der entsprechenden Methode generiert werden
        echo $creator-&gt;generateBasislastschriftXml();</pre>



<p class="wp-block-paragraph">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.<ins></ins></p>



<h2 class="wp-block-heading">Was mache ich nun mit der generierten XML-Datei?</h2>



<p class="wp-block-paragraph">Die generierte XML-Datei ist das Pendant zur&nbsp;<a href="http://de.wikipedia.org/wiki/Datentr%C3%A4geraustauschverfahren#Aufbau_von_DTAUS-Dateien" target="_blank" rel="noreferrer noopener">DTAUS-Datei</a>&nbsp;(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.</p>



<h2 class="wp-block-heading">Woher bekomme ich meine Gläubiger-ID?</h2>



<p class="wp-block-paragraph">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&nbsp;<a href="http://www.bundesbank.de/Navigation/DE/Kerngeschaeftsfelder/Unbarer_Zahlungsverkehr/SEPA/Glaeubiger_Identifikationsnummer/glaeubiger_identifikationsnummer.html" target="_blank" rel="noreferrer noopener">Informationsseite der Deutschen Bundesbank</a>).<br>
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:&nbsp;<a href="http://www.bundesbank.de/Redaktion/DE/Dossier/Kerngeschaeftsfelder/glaeubiger_identifikationsnummer.html?notFirst=true&amp;docId=148952#chap" target="_blank" rel="noreferrer noopener">Gläubiger-ID beantragen</a></p>



<h2 class="wp-block-heading">Wo finde ich nun die PHP-Klasse?</h2>



<p class="wp-block-paragraph">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:</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://github.com/tschiffler/sepa-xml-creator-php
</div></figure>
<p>Der Beitrag <a href="https://www.schiffler.eu/sepa-sammellastschrift-basislastschrift-xml-mit-php/">SEPA Sammellastschrift / Basislastschrift XML mit PHP</a> erschien zuerst auf <a href="https://www.schiffler.eu">Das ist die Welt von Thomas</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.schiffler.eu/sepa-sammellastschrift-basislastschrift-xml-mit-php/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 41/52 objects using APC
Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using APC
Database Caching 12/26 queries in 0.002 seconds using APC

Served from: www.schiffler.eu @ 2026-05-25 04:12:13 by W3 Total Cache
-->