Lädt alle Dokumente aus dem DKB-Online-Banking (Postfach, Archiv und Legacy-Archiv) automatisch herunter. Verfügbar als Tampermonkey-Script (empfohlen) und als DevTools-Snippet.
Tampermonkey muss bereits installiert sein. Anschließend genügt ein Klick auf den folgenden Link – Tampermonkey öffnet automatisch den Installationsdialog:
Direktlink: https://raw.githubusercontent.com/norschel/DKB-Postbox-Downloader/main/dkb_postbox_downloader.user.js
Automatische Updates: Das Script enthält
@updateURL/@downloadURL, die auf dieses GitHub-Repository zeigen. Tampermonkey prüft daher in regelmäßigen Abständen selbständig, ob aufmaineine neuere Version (höhere@version) liegt und bietet das Update an. Manuelles Prüfen ist im Tampermonkey-Dashboard über „Auf Updates prüfen" möglich.
- Browser mit Tampermonkey (Chrome, Firefox, Edge, …)
- Aktiver DKB-Online-Banking-Zugang unter banking.dkb.de
- Installiere die Tampermonkey-Erweiterung für deinen Browser.
- Wichtig (Chrome/Edge/Brave und andere Chromium-basierte Browser ab Manifest V3): Damit Tampermonkey Userscripts überhaupt ausführen darf, müssen zwei Einstellungen aktiv sein. Ohne sie wird das Script auf der DKB-Seite stillschweigend nicht geladen (es erscheinen weder Button noch Konsolen-Logs). Details siehe offizielle Tampermonkey-FAQ Q209.
- Entwicklermodus aktivieren unter
chrome://extensionsbzw.edge://extensions(Schalter „Entwicklermodus" / „Developer mode" oben rechts). - „Allow User Scripts" / „Benutzerskripte zulassen" für die Tampermonkey-Erweiterung aktivieren: auf der Seite
chrome://extensionsbzw.edge://extensionsbei Tampermonkey auf „Details" klicken und die Option „Allow User Scripts" einschalten. - Anschließend Browser-Tab neu laden.
- Entwicklermodus aktivieren unter
- Hinweis für Firefox: In Firefox sind die obigen Manifest-V3-Schalter nicht erforderlich. Tampermonkey funktioniert dort out-of-the-box, sobald die Erweiterung installiert ist. Einzige Empfehlung: in den Tampermonkey-Einstellungen unter „Sicherheit" den Modus auf „Fragen" oder „Erlauben" für externe
@require-Skripte (JSZip) lassen – sonst kann der ZIP-Export nicht geladen werden. - Öffne das Tampermonkey-Dashboard und lege ein neues Script an.
- Kopiere den Inhalt von
dkb_postbox_downloader.user.jsin den Editor und speichere. - Auf banking.dkb.de prüfen: Klick auf das Tampermonkey-Symbol in der Toolbar muss das Script unter „Auf dieser Seite ausgeführt" anzeigen. Falls nicht, fehlt meist eine der Einstellungen aus Schritt 2.
- Melde dich unter banking.dkb.de an.
- Klicke auf den Button 📥 DKB Download oben rechts im Browser.
- Konfiguriere die gewünschten Optionen im Panel:
- Quellen – wähle einzelne Quellen oder alle auf einmal.
- Zeitraum – optional Start- und/oder Enddatum setzen, um nur Dokumente aus einem bestimmten Zeitraum herunterzuladen.
- Kategorien – filtere nach Dokumentart (Kontoauszüge, Kreditkartenabrechnungen, Wertpapierdokumente, Sonstige).
- Optionen –
- Nur neue Dokumente seit letztem Lauf: überspringt alle Dokumente, deren ID bereits in einem früheren erfolgreichen Lauf gespeichert wurde. Der Verlauf wird lokal über
GM_setValue(bzw.localStorageals Fallback) persistiert; er kann jederzeit über den Link „Verlauf zurücksetzen" gelöscht werden. - Trockenlauf (Dry Run): listet im Log auf, was heruntergeladen würde, ohne tatsächlich Dateien zu speichern oder den Verlauf zu verändern.
- Als ZIP herunterladen: bündelt alle Dokumente eines Laufs in einer einzigen ZIP-Datei (
dkb-postbox_<Zeitstempel>.zip). Praktisch, um die Browser-Rückfrage „mehrere Dateien zulassen" zu vermeiden. Hinweis: Der ZIP-Export ist derzeit experimentell und im Userscript per Feature-Flag (FEATURE_ZIP_ENABLED) deaktiviert; die Option erscheint daher nicht im Panel. Zum Aktivieren das Flag im Script auftruesetzen.
- Nur neue Dokumente seit letztem Lauf: überspringt alle Dokumente, deren ID bereits in einem früheren erfolgreichen Lauf gespeichert wurde. Der Verlauf wird lokal über
- Einstellungen – Sprache (Deutsch/English), Design (Hell/Dunkel/Automatisch nach Systempräferenz), Log-Level (
debug/info/warn/error/none).
- Klicke auf ▶ Download starten.
- Während des Laufs zeigt das Panel eine Fortschrittsanzeige (Balken + Zähler ✓/✗/⏭) sowie das Live-Log an. Über ⏸ Pause / ▶ Fortsetzen lässt sich der Lauf pausieren, über ✕ Abbrechen komplett beenden.
- Am Ende erscheint eine Toast-/Benachrichtigung mit der Zusammenfassung; falls Tampermonkey eine Systembenachrichtigung zulässt, wird zusätzlich
GM_notificationverwendet. - Dokumente werden im Standard-Download-Ordner gespeichert (bzw. als einzelne ZIP, je nach Option).
Hinweis: Manche Browser fragen ab dem zweiten automatischen Download nach einer Erlaubnis für „mehrere Dateien herunterladen". Diese Anfrage muss einmalig bestätigt werden.
- Google Chrome (oder ein anderer Chromium-basierter Browser)
- Aktiver DKB-Online-Banking-Zugang unter banking.dkb.de
- Melde dich unter banking.dkb.de an.
- Öffne die Entwicklertools mit
F12und wechsle zum Tab Console. - Kopiere den gesamten Inhalt der Datei
dkb_download_devtools.js. - Füge das Script in die Konsole ein und bestätige mit
Enter. - Die Dokumente werden automatisch in den Standard-Download-Ordner des Browsers gespeichert.
Am Anfang des Scripts befindet sich ein CONFIG-Block, mit dem gesteuert werden kann, welche Quellen heruntergeladen werden:
const CONFIG = {
/** Reguläres Postfach (Posteingang). */
includeInbox: true,
/** Modernes Archiv (Archivierte Dokumente). */
includeArchive: true,
/** Legacy-Dokumente über /legacy-documents (Base64-JSON-Antwort). */
includeLegacyDocuments: true,
/** Legacy-Ordnerarchiv über /folders (älteres „Archiv im Archiv"). */
includeLegacyFolders: true,
};Setze einzelne Felder auf false, um die jeweilige Quelle zu überspringen.
Das Script unterstützt vier Quellen:
| Quelle | API-Endpunkt | Beschreibung |
|---|---|---|
| Posteingang | /api/documentstorage/messages + /documents |
Aktuelles, nicht archiviertes Postfach |
| Modernes Archiv | /api/documentstorage/messages?filter[archived]=true + /documents?filter[archived]=true |
Archivierte Dokumente der neueren Archiv-Funktion |
| Legacy-Dokumente | /api/documentstorage/legacy-documents |
Ältere Dokumente im Base64-JSON-Format |
| Legacy-Ordnerarchiv | /api/documentstorage/folders |
Älteres „Archiv im Archiv" mit verschachtelten Ordnern |
Für Archiv-Endpunkte werden automatisch Fallback-URLs ausprobiert, falls der bevorzugte Endpunkt nicht erreichbar ist. Dokumente, die in mehreren Quellen vorkommen, werden nur einmal heruntergeladen.
Die Dateien werden nach folgendem Muster benannt:
| Quelle | Schema |
|---|---|
| Posteingang | <Kategorie>_<Datum>_<Dateiname> |
| Archiv | Archiv_<Kategorie>_<Datum>_<Dateiname> |
| Legacy-Dokumente | LegacyDoc_<Datum>_<Dateiname> |
| Legacy-Ordner | Legacy_<Ordnerpfad>_<Datum>_<Dateiname> |
Die Kategorie richtet sich nach dem Dokumenttyp (documentType) aus der DKB-API:
| documentType | Kategorie |
|---|---|
bankAccountStatement |
Kontoauszuege |
creditCardStatement |
Kreditkartenabrechnungen |
dwpRevenueStatement, dwpOrderStatement, dwpDepotStatement, exAnteCostInformation, dwpCorporateActionNotice |
Wertpapierdokumente |
| Alle anderen | Wert des documentType-Felds oder Sonstige |
Das Userscript läuft ausschließlich lokal im Browser des angemeldeten Nutzers und kommuniziert nur mit zwei Hosts:
banking.dkb.de– ausschließlich für die in der Tabelle „Downloadquellen" dokumentierten API-Aufrufe sowie zum Herunterladen der Dokument-PDFs. Es werden ausnahmslos dieselben Endpunkte angesprochen, die auch das DKB-Webfrontend nutzt; die bestehende Browser-Session (Cookies) wird übercredentials: 'include'mitgesendet, das Script speichert oder überträgt keine Zugangsdaten.cdnjs.cloudflare.com– einmaliger Abruf der JSZip-Bibliothek beim Installieren bzw. Aktualisieren des Scripts (über die Tampermonkey-Direktive@require). Zur Laufzeit aufbanking.dkb.dewird Cloudflare nicht kontaktiert; Tampermonkey injiziert die zwischengespeicherte JSZip-Kopie lokal.
Es findet keine Übertragung von Banking-Daten an Dritte statt, kein Telemetrie- oder Analytics-Code ist enthalten, und es werden keine externen Schriftarten oder Icons nachgeladen. Persistente lokale Daten (zuletzt gewählte Optionen, IDs bereits heruntergeladener Dokumente, Sprach-/Design-Einstellung) werden über GM_setValue (bzw. localStorage als Fallback) nur im Browser-Profil des Nutzers gespeichert und können über den Link „Verlauf zurücksetzen" im Panel jederzeit gelöscht werden.
Da das Script auf einer Banking-Seite läuft, gilt: bitte ausschließlich aus diesem Repository (bzw. über die @updateURL) installieren und vor jedem Update den Diff in den GitHub-Commits prüfen, falls möglich. Sicherheitsmeldungen bitte über die Issues bzw. eine private GitHub Security Advisory einreichen.
Für lokale Linter-/Formatter-Läufe steht eine optionale Node-Konfiguration bereit (nur für Beitragende, nicht zur Laufzeit erforderlich):
npm install
npm run lint
npm run format:checkEs kommen ESLint (eslint:recommended) und Prettier mit den im Repository hinterlegten Konfigurationsdateien zum Einsatz. Es gibt keinen Build-Schritt – das Userscript wird so, wie es im Repository liegt, von Tampermonkey ausgeführt.