{"id":1215,"date":"2026-06-23T11:22:43","date_gmt":"2026-06-23T09:22:43","guid":{"rendered":"https:\/\/blog.mindkick.de\/?p=1215"},"modified":"2026-06-23T11:59:30","modified_gmt":"2026-06-23T09:59:30","slug":"orderbird-bambora-worldline-und-datev-pdf-belege-halbautomatisch-herunterladen-und-per-upload-mail-senden","status":"publish","type":"post","link":"https:\/\/blog.mindkick.de\/?p=1215","title":{"rendered":"orderbird, Bambora\/Worldline und DATEV: PDF-Belege halbautomatisch herunterladen und per Upload-Mail senden"},"content":{"rendered":"\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Wer mit <strong>orderbird Mini<\/strong>, dem <strong>Bambora \/ Worldline Merchant Portal<\/strong> und <strong>DATEV Unternehmen online<\/strong> arbeitet, kennt vielleicht genau diesen kleinen, aber nervigen Medienbruch: Die Belege liegen in den Portalen, die Buchf\u00fchrung wartet aber in DATEV. Also hei\u00dft es im Alltag oft: Einloggen, Datum filtern, PDFs herunterladen, danach DATEV \u00f6ffnen und die Dateien wieder hochladen.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Bei ein paar Belegen geht das noch. Wenn das aber regelm\u00e4\u00dfig passiert, wird es schnell zur Klick-Orgie. Bei uns kam noch dazu, dass orderbird durch Cloudflare gesch\u00fctzt ist. Ein klassisches Login-Script, das Benutzername und Passwort automatisch eintr\u00e4gt, ist deshalb nicht die saubere L\u00f6sung. Es ist st\u00f6ranf\u00e4llig, kann an Schutzmechanismen scheitern und ist aus Sicherheitsgr\u00fcnden eher unsch\u00f6n.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Die bessere L\u00f6sung war deshalb: <strong>Der Mensch loggt sich selbst im Browser ein. Die Automatisierung beginnt erst danach.<\/strong><\/p>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Die Idee<\/h5>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>In orderbird und Bambora\/Worldline ganz normal im Browser einloggen.<\/li>\r\n<li>Den gew\u00fcnschten Zeitraum filtern.<\/li>\r\n<li>Mit einem Tampermonkey-Script die sichtbaren PDF-Buttons anklicken.<\/li>\r\n<li>Die PDFs landen im normalen Download-Ordner.<\/li>\r\n<li>Ein lokales Script verschiebt die heutigen PDFs in den passenden Kassenbuch-Monatsordner.<\/li>\r\n<li>Anschlie\u00dfend sendet das Script die PDFs gesammelt per E-Mail an DATEV Upload Mail.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Damit wird Cloudflare nicht umgangen. Der Login bleibt manuell und findet ganz normal im Browser statt. Die Automatisierung \u00fcbernimmt nur die l\u00e4stige Klick- und Versandarbeit danach.<\/p>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Eingesetzte Komponenten<\/h5>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>orderbird Mini<\/li>\r\n<li>Bambora \/ Worldline Merchant Portal<\/li>\r\n<li>Firefox oder Chrome<\/li>\r\n<li>Tampermonkey Browser-Erweiterung<\/li>\r\n<li>Python 3 auf dem lokalen Rechner<\/li>\r\n<li>DATEV Unternehmen online mit Upload per E-Mail<\/li>\r\n<li>Eine f\u00fcr DATEV Upload Mail freigegebene Absenderadresse<\/li>\r\n<li>SMTP-Zugangsdaten dieser Absenderadresse<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Warum Tampermonkey?<\/h5>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Tampermonkey l\u00e4uft direkt im eingeloggten Browser. Das Script muss also nicht selbst einloggen. Es sieht einfach die Seite, die der Benutzer ohnehin ge\u00f6ffnet hat, und kann dort Buttons anklicken.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Bei orderbird ist der entscheidende Button der PDF-Download-Button in der Rechnungs\u00fcbersicht. Beim Bambora \/ Worldline Merchant Portal ist es etwas kniffliger: Die Auszahlungszeilen m\u00fcssen zuerst aufgeklappt werden. Erst danach erscheint der kompakte PDF-Bericht.<\/p>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Der Download-Ablauf<\/h5>\r\n\r\n\r\n\r\n<h6 class=\"wp-block-heading\">orderbird<\/h6>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Im Browser bei orderbird einloggen.<\/li>\r\n<li>Die Rechnungsseite \u00f6ffnen.<\/li>\r\n<li>Zeitraum filtern.<\/li>\r\n<li>Im Tampermonkey-Fenster auf <strong>\u201eAktuelle Seite herunterladen\u201c<\/strong> klicken.<\/li>\r\n<li>Die PDFs landen im Download-Ordner.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<h6 class=\"wp-block-heading\">Bambora \/ Worldline<\/h6>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Im Merchant Portal einloggen.<\/li>\r\n<li>Den Bereich <strong>\u201eAuszahlungen\u201c<\/strong> \u00f6ffnen.<\/li>\r\n<li>Zeitraum filtern.<\/li>\r\n<li>Im Tampermonkey-Fenster auf <strong>\u201eAlle sichtbaren PDFs herunterladen\u201c<\/strong> klicken.<\/li>\r\n<li>Das Script klappt die Zeilen auf und l\u00e4dt die kompakten PDF-Berichte.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Danach: Verschieben und an DATEV senden<\/h5>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Nach dem Download liegen alle PDFs zun\u00e4chst im normalen Download-Ordner, zum Beispiel:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\/home\/yvonne\/Downloads<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Das lokale Python-Script verschiebt alle heutigen PDFs in einen Monatsordner:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\/home\/yvonne\/Netzlaufwerk\/Gewerbe\/Kassenbuch\/&lt;Jahr&gt;\/&lt;Monat&gt;<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>\/home\/yvonne\/Netzlaufwerk\/Gewerbe\/Kassenbuch\/2026\/06<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Danach werden die PDFs gesammelt als E-Mail-Anh\u00e4nge an die DATEV Upload-Mail-Adresse gesendet. Der Versand erfolgt \u00fcber eine eigene, in DATEV freigegebene Absenderadresse.<\/p>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\"><strong>Wichtig:<\/strong> Die pers\u00f6nliche DATEV Upload-Mail-Adresse sollte nicht \u00f6ffentlich ver\u00f6ffentlicht werden.<\/p>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Installation der Browser-Scripts<\/h5>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Tampermonkey im Browser installieren.<\/li>\r\n<li>Neues Script f\u00fcr orderbird erstellen.<\/li>\r\n<li>Inhalt von <code>orderbird-pdf-downloader.user.js<\/code> einf\u00fcgen und speichern.<\/li>\r\n<li>Neues Script f\u00fcr Bambora\/Worldline erstellen.<\/li>\r\n<li>Inhalt von <code>bambora-worldline-pdf-downloader.user.js<\/code> einf\u00fcgen und speichern.<\/li>\r\n<li>Die jeweilige Seite neu laden.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Installation des DATEV-Upload-Scripts<\/h5>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>mkdir -p ~\/datev-upload\r\ncp datev-upload\/* ~\/datev-upload\/\r\ncd ~\/datev-upload\r\ncp config.env.example config.env\r\nnano config.env<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">In der Datei <code>config.env<\/code> werden DATEV-Adresse, Absenderadresse, SMTP-Zugang und lokale Ordner eingetragen.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>chmod 600 config.env\r\nchmod +x datev_upload.py start-datev-upload.sh install_desktop_launcher.sh\r\n.\/install_desktop_launcher.sh<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Danach erscheint auf dem Desktop ein Starter <strong>\u201eBelege an DATEV senden\u201c<\/strong>.<\/p>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Testlauf<\/h5>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>python3 datev_upload.py --dry-run<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Dabei wird nichts verschoben und nichts gesendet. Das Script zeigt nur, welche heutigen PDFs im Download-Ordner gefunden w\u00fcrden.<\/p>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Produktiver Tagesablauf<\/h5>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>orderbird \u00f6ffnen und Tagesfilter setzen.<\/li>\r\n<li>orderbird-PDFs mit Tampermonkey herunterladen.<\/li>\r\n<li>Bambora\/Worldline \u00f6ffnen und Tagesfilter setzen.<\/li>\r\n<li>Bambora\/Worldline-PDFs mit Tampermonkey herunterladen.<\/li>\r\n<li>Desktop-Starter <strong>\u201eBelege an DATEV senden\u201c<\/strong> anklicken.<\/li>\r\n<li>Die Liste der Dateien pr\u00fcfen.<\/li>\r\n<li>Versand mit <code>j<\/code> best\u00e4tigen.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Das Script verschiebt die Dateien, legt den Monatsordner bei Bedarf an und merkt sich bereits gesendete Dateien. Dadurch wird das Risiko reduziert, dass Belege versehentlich mehrfach an DATEV geschickt werden.<\/p>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Grenzen und Hinweise<\/h5>\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">Dieser Workflow ist bewusst pragmatisch. Er ersetzt keine offizielle Schnittstelle und keine steuerliche Pr\u00fcfung. Au\u00dferdem sollte der Download-Ordner m\u00f6glichst sauber gehalten werden, weil das Script alle heutigen PDF-Dateien verarbeitet. Wer dort regelm\u00e4\u00dfig andere PDFs speichert, sollte den Ablauf entsprechend anpassen.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p class=\"wp-block-paragraph\">F\u00fcr kleine Setups ohne direkte API oder fertige Schnittstelle kann dieser Weg trotzdem viel Zeit sparen: Der Login bleibt manuell, die sensiblen Portale werden nicht per Passwort-Script automatisiert, und der eigentliche Routineaufwand wird deutlich reduziert.<\/p>\r\n<p><a class=\"more-link\" href=\"https:\/\/blog.mindkick.de\/wp-content\/uploads\/2026\/06\/orderbird-bambora-datev-workflow.zip\">&gt;&gt; ZIP-Paket mit Scripts herunterladen <\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Wer mit orderbird Mini, dem Bambora \/ Worldline Merchant Portal und DATEV Unternehmen online arbeitet, kennt vielleicht genau diesen kleinen, aber nervigen Medienbruch: Die Belege liegen in den Portalen, die Buchf\u00fchrung wartet aber in DATEV.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[134],"tags":[251,241,252,244,243,249,250,156,246,239,240,248,247,245,242],"class_list":["post-1215","post","type-post","status-publish","format-standard","hentry","category-computer-co","tag-automatisierung","tag-bambora","tag-buchhaltung","tag-datev","tag-datev-unternehmen-online","tag-download","tag-kassenbelege","tag-linux","tag-mail","tag-orderbird","tag-orderbird-mini","tag-pdf","tag-tampermonkey","tag-upload","tag-worldline"],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=\/wp\/v2\/posts\/1215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1215"}],"version-history":[{"count":10,"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=\/wp\/v2\/posts\/1215\/revisions"}],"predecessor-version":[{"id":1226,"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=\/wp\/v2\/posts\/1215\/revisions\/1226"}],"wp:attachment":[{"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mindkick.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}