neunzehn83.de

Ein Mann, ein Blog, kein Plan.

iOS PUSH-Nachricht bei Kontobewegung mit DKB Online-Banking

Da ich mich beruflich gerade mit dem Thema PUSH-Nachrichten auseinandergesetzt habe, war ich auf der Suche nach einer Testanwendung. Dann kam mir ein App in den Sinn, welches bei jeder Kontobewegung auf meinem DKB-Konto eine Push-Nachricht an mein iPhone sendet. Sehr praktisch, wie ich finde, gerade wenn man so wie ich eher unregelmäßig das Online-Banking überwacht.

DKB-Push          DKB-Push

DKB scrape

Nach kurzer Recherche war mir relativ schnell klar, dass kein Weg am Crawlen der DKB-Webseite vorbeiführt. Es existieren keine Schnittstellen, welche man offiziell nutzen könnte. Da gibt es zwar HBCI, aber spätestens beim Abfragen der Kreditkarten-Umsätze wäre auch hier Schluss. Die DKB unterstützt die Kreditkarten-Konten nicht über HBCI.

Dank Simple HTML DOM ist das Crawlen der Onlinebanking-Seite der DKB aber kein Problem. Das entsprechende Crawl-Script gibt es in meinem Github-Repo. Damit das auch so direkt von jedermann genutzt werden kann, wird statt meinem eigenen PUSH-Server und iOS-App für das Senden/Empfangen der Push-Nachricht das kostenlose "Boxcar 2" App für iOS genutzt. Hierzu muss man lediglich den Zugangstoken des Apps in der Konfiguration des Scriptes eintragen. Der Zugangstoken wird direkt in den Einstellungen des Apps angezeigt - man benötigt keinen Boxcar-Account.

Funktionsweise

Nach Login in das Onlinebanking werden alle Konten in der Kontenübersicht abgearbeitet. Zunächst wird für jedes Konto die Umsatzfrage ausgeführt und dann die angezeigten Daten als CSV heruntergeladen und gespeichert. Die CSV-Daten werden mit zuvor heruntergeladenen Dateien verglichen und bei neuen Einträgen eine PUSH-Nachricht versendet. Beim ersten Lauf - dann wenn noch gar keine CSV-Dateien exisieren - werden keine Nachrichten gesendet. Dies würde sonst sämtliche Einträge als neue erkennen und sehr viele Nachrichten senden. Generell werden je Lauf nur maximal 5 Nachrichten (also Umsätze) pro Account gesendet.

Aufruf

Da die Konfigurationsdatei des Scriptes die Logindaten zum DKB-Onlinebanking enthält, sollte das Script nur in sicheren Umgebungen ausgeführt werden. Das kann z.B. ein Homeserver sein. Besonders mutige können es natürlich auch auf einem Server im Internet ausführen. Generell hat das Script nichts in den htdocs zu suchen, sondern sollte nur über die Konsole bzw. cron aufgerufen werden. Die config-Datei muss entsprechend vor Lesezugriffen Dritter geschützt werden.

Folgender beispielhafter Cron-Eintrag würde das Script Montag bis Samstag alle 2 Stunden zu den Geschäftszeiten der Banken ausführen:

0 8,10,12,14,16,18 * * 1-6 /path/to/dkb-crawl.php 

Umsätze mit der EC-Karte sind in der Regel sofort im Online-Banking sichtbar und werden somit auch umgehend auf das Telefon gepusht. Kreditkartenumsätze erscheinen erst 1-2 Tage später im Online-Banking.

Download via Github

Ich habe das Script in einem Github-Repo bereitgestellt: https://github.com/lowb1rd/DKB-push. Direkter Download als Zip datei hier: Download.

Geschrieben am Samstag, 22. Februar 2014 und abgelegt unter Apps.