Tools
Amazon-Business-Rechnungen automatisch herunterladen
Ein kleines Playwright-Skript holt die monatlichen Amazon-Business-Rechnungen selbständig ab. Eine Lösung für eine Aufgabe, die sonst niemand gerne macht. Mit Claude Code in einem Nachmittag entstanden.
Die stille monatliche Aufgabe
Jede Firma mit einem Amazon-Business-Konto kennt das Ritual. Am Monatsanfang loggt sich jemand ein, klickt sich entweder einzeln durch die Bestellungen und lädt die Rechnungspdfs herunter oder geht über die Bestellliste und „Bestelldokumente herunterladen”, wartet, bis Amazon das ZIP fertiggestellt hat, lädt es herunter, entpackt die PDFs und legt sie im Buchhaltungsordner für den Steuerberater ab. Zehn Minuten, wenn es gut läuft. Wenn man es vergisst, zwanzig gesammelte Bestellungen später eine halbe Stunde.
Niemand im Team macht diese Aufgabe gerne. Sie ist nicht schwer, sie ist nicht interessant, und sie ist nicht delegierbar. Die Zugangsdaten liegen bei der Geschäftsführung. Genau die Sorte Aufgabe, die Automatisierung verdient.
Warum nicht einfach eine API?
Der erste Reflex bei „Rechnungen automatisiert abholen” ist die Suche nach einer REST-API. Amazon bietet solche APIs auch an, allerdings nicht für den Rechnungs-Download im Business-Bereich. Wer Rechnungen haben will, landet auf dem Web-Interface unter amazon.de/b2b/aba/reports. Ein klassisches JavaScript-getriebenes Frontend mit dynamisch gerenderten Dropdowns, CSRF-Schutz und asynchroner ZIP-Erzeugung im Hintergrund.
Ein einfaches curl-Skript reicht hier nicht. Wer die Seite ohne Browser ansteuert, bekommt leeres HTML. Man braucht einen echten Browser, der JavaScript ausführt und Klicks wie ein Mensch interpretiert.
Playwright mit persistentem Login
Unser Skript heißt intern amazonbillfetcher und nutzt Playwright, die Browser-Automatisierungs-Bibliothek von Microsoft. Playwright startet einen echten Chromium, klickt die Elemente auf der Reports-Seite an und nimmt die Downloads entgegen.
Der erste Login ist manuell. Einmalig Benutzername, Passwort und 2FA im automatisch geöffneten Browserfenster. Danach speichert Playwright den Session-State in einem lokalen Verzeichnis (.auth/). Jeder weitere Lauf nutzt diese Session, ohne dass sich jemand erneut einloggen muss. Für die 2FA-Wiederholung alle paar Wochen reicht ein kurzes manuelles Zwischenspiel.
Wer das nicht will, muss sich bei jedem Start des Skripts anmelden. Das spricht dann für ein lokales Ausführen der Aufgabe.
Zweistufiger Workflow
Ein Detail, das man erst beim Programmieren merkt: Amazon generiert das ZIP nicht sofort. Der Klick auf „Alle herunterladen” stößt eine asynchrone Aufgabe im Backend an. Je nach Größe kann das fertige ZIP Sekunden bis Minuten später bereitliegen. Ein einziges Skript, das beides in einem Rutsch macht, müsste entweder lange pollen oder zufällig mal scheitern, wenn Amazon länger braucht.
Deshalb läuft der Workflow zweistufig:
python fetch_invoices.py request # Download-Auftrag anstoßen
# ... später, wenn Amazon fertig ist ...
python fetch_invoices.py fetch # Fertige ZIPs abholen und PDFs extrahieren
Der erste Befehl klickt das Dropdown an, wählt „Alle herunterladen”, hakt im Dialog die Option für Rechnungen an und bestätigt. Amazon stellt den Auftrag in die Warteschlange. Der zweite Befehl navigiert in den Download-Verlauf, klickt jeden fertigen „Dokumente herunterladen”-Button, speichert die ZIPs in invoices/YYYY-MM/ und extrahiert die enthaltenen Rechnungs-PDFs in denselben Ordner.
Beide Schritte lassen sich per Cron oder systemd-Timer einplanen: request am Monatsersten um 08:00, fetch eine Stunde später. Bereits heruntergeladene ZIPs werden anhand des Dateinamens erkannt und übersprungen, idempotente Läufe sind also unkritisch.
Wie Claude Code dabei geholfen hat
Die eigentliche Programmierarbeit bestand aus zwei Dingen: die richtigen Selektoren für Amazons UI-Elemente finden und das Playwright-Flow-Handling robust machen. Für ersteres hilft nur der Browser-Inspektor. data-testid="download-order-documents-dropdown_label" muss man einmal aus den DevTools extrahieren.
Die Selektoren haben wir an Claude Code weitergegeben. Claude Code hat daraus die Playwright-Aufrufe, die Fehlerbehandlung (Debug-Screenshots bei Timeouts), die ZIP-Extraktion und die idempotente Dateibenennung zusammengesetzt. Inklusive Unit-Tests für die reinen Helper-Funktionen (month_dir, extract_pdfs). Der Browser-Flow wird manuell verifiziert. Selbsttests gegen ein Live-Amazon sind weder stabil noch sinnvoll.
Etwa 200 Zeilen Python, einsatzbereit an einem Nachmittag. Ohne Claude Code wäre es vielleicht ein Tag geworden. Das Handwerk ist dasselbe, nur das Tempo unterscheidet sich.
Wann lohnt sich so eine Automatisierung?
Ehrliche Einordnung: nicht immer.
Der Aufwand rentiert sich, wenn die Aufgabe regelmäßig anfällt (monatlich oder öfter), wenn sie eine unbeliebte Pflicht ist, die sonst aufgeschoben wird, wenn der Web-Flow stabil genug ist, dass das Skript nicht alle zwei Wochen kaputtgeht, und wenn das Thema Datenschutz überschaubar ist. Bei uns bleiben die Login-Daten auf dem eigenen Rechner.
Finger weg dagegen, wenn es einen offiziellen API-Weg gibt — den nehmen. Ebenso, wenn der Web-Flow sich laufend ändert: dann frisst die Wartung den Zeitgewinn. Und Aufgaben, die einmal im Jahr anfallen, erledigt man manuell und ist fertig.
Web-Automatisierung ist fragil. Amazon kann sein Frontend jederzeit umbauen, und dann müssen Selektoren nachjustiert werden. Bei uns rechnen wir mit ein bis zwei Stunden Pflegeaufwand pro Jahr. Die sparen sich deutlich durch die monatlichen zehn Minuten, die niemand mehr klicken muss.
Zusammenfassung
Ein kleines Playwright-Skript, eine zweistufige Logik wegen Amazons asynchroner ZIP-Erzeugung, ein persistenter Login. Damit erledigt sich eine monatliche Aufgabe von selbst. Die eingesparte Zeit ist gering, die mentale Last aber deutlich kleiner, weil niemand mehr an den Termin denken muss. Amazon ermöglicht seit einiger Zeit auch die Erstellung von E-Rechnungen. Der Empfang dieser Daten scheint aber bisher auf wenige Integrationen beschränkt zu sein. Wir schreiben einen neuen Artikel, wenn wir mehr wissen.
Wenn Sie solche Routineaufgaben in Ihrem Betrieb haben, Rechnungsabrufe, Report-Downloads, regelmäßige Exporte aus Portalen ohne API, sprechen Sie uns an. Nicht jede davon ist eine Automatisierung wert. Aber die, die es sind, erledigen wir gerne.
Teilen
LinkedInPassende Werkzeuge
Verwandte Artikel
- Fable 5 über Nacht abgeschaltet: eine Lektion in digitaler Abhängigkeit 13. Juni 2026
- Claude Fable 5: Was das neue Spitzenmodell anders kann als Opus 11. Juni 2026
- KI-Würmer: Morris II, EchoLeak und wie man sich schützt 5. Juni 2026
- DSGVO-konforme KI im Mittelstand: Was bis August 2026 zu klären ist 3. Juni 2026