finanzonline_databox
finanzonline_databox ist eine Python-Bibliothek und CLI zum automatisierten Abrufen von Dokumenten aus der FinanzOnline DataBox. Bescheide, Mitteilungen, Bestätigungen und andere steuerrelevante Dokumente werden automatisch heruntergeladen und lokal gespeichert.
Warum finanzonline_databox?
Das manuelle Abrufen von Dokumenten aus der FinanzOnline DataBox erfordert Anmeldung, Navigation durch Menüs und einzelne Downloads - mühsam und nicht automatisierbar. Mit finanzonline_databox:
- Kein Browser erforderlich - läuft vollständig über die Kommandozeile
- Automatischer Download - alle neuen Dokumente mit einem Befehl synchronisieren
- Vollständig skriptfähig - Integration in Backup-Prozesse, Archivierungssysteme oder CI-Pipelines
- E-Mail-Benachrichtigungen - automatische Benachrichtigungen bei neuen Dokumenten
- Ratenlimit-Schutz - integriertes Tracking zum Schutz vor API-Überlastung
- Dokumenttyp-Filter - nur bestimmte Dokumentarten (Bescheide, Mitteilungen, etc.) abrufen
- FREIE SOFTWARE - diese Software ist und bleibt kostenlos
Funktionen:
- Auflisten aller Dokumente in der DataBox (mit Filtern)
- Download einzelner Dokumente per
applkey - Synchronisation aller neuen Dokumente in ein lokales Verzeichnis
- Bis zu 31 Tage abrufen -
listundsyncunterstützen bis zu 31 Tage Rückblick - CLI-Einstiegspunkt mit rich-click (rich-Ausgabe + click-Ergonomie)
- Automatische E-Mail-Benachrichtigungen bei neuen Dokumenten
- Per-Dokument E-Mails - jedes heruntergeladene Dokument als Anhang an separate Empfänger
- Mehrsprachige Unterstützung - Englisch, Deutsch, Spanisch, Französisch, Russisch
- Menschenlesbare und JSON-Ausgabeformate
- Ratenlimit-Tracking mit Warn-E-Mails
- Mehrschichtiges Konfigurationssystem mit lib_layered_config
- Strukturiertes Logging mit lib_log_rich
Unterstützte Dokumenttypen (erltyp):
B- Bescheide (Decisions/Decrees)M- Mitteilungen (Notifications)I- Informationen (Information)P- Protokolle (Protocols)EU- EU-Erledigungen- und weitere...
Beispiele:
# Alle ungelesenen Dokumente auflisten (Standard)
finanzonline-databox list
# Nur Bescheide auflisten
finanzonline-databox list --erltyp B
# Alle Dokumente auflisten (bis zu 31 Tage)
finanzonline-databox list --all
# Nur gelesene Dokumente auflisten (bis zu 31 Tage)
finanzonline-databox list --read
# Alle Dokumente der letzten 3 Tage
finanzonline-databox list --days 3 --all
# Ein bestimmtes Dokument herunterladen
finanzonline-databox download abc123def456xyz --output ./downloads
# Alle neuen Dokumente synchronisieren (nur ungelesene, Standard)
finanzonline-databox sync --output ./databox-archiv
# Alle Dokumente synchronisieren (gelesen und ungelesen)
finanzonline-databox sync --output ./databox-archiv --all
# Dokumente der letzten 31 Tage synchronisieren
finanzonline-databox sync --days 31 --all
# Nur Protokolle mit Referenz UID synchronisieren
finanzonline-databox sync -t P -r UID
# Dokumente synchronisieren und als E-Mail-Anhang versenden
finanzonline-databox sync --document-recipient archiv@firma.at
# UID-Bestätigungen an Vertrieb, restliche Dokumente an Buchhaltung
finanzonline-databox sync -r UID --document-recipient sales@firma.at
finanzonline-databox sync --document-recipient buchhaltung@firma.at
Aufbewahrungspflichten
WICHTIG: Dokumente aus der FinanzOnline DataBox müssen gemäß § 132 BAO (Bundesabgabenordnung) aufbewahrt werden.
Die Dokumente dienen als offizielle Dokumentation für Steuerprüfungen und müssen gemäß den österreichischen Aufbewahrungsvorschriften aufbewahrt werden (üblicherweise 7 Jahre).
Mit finanzonline_databox sync können Sie alle Dokumente automatisch in ein lokales Archiv herunterladen und so Ihre Aufbewahrungspflichten erfüllen.
BMF-Ratenlimits
Der FinanzOnline-Webservice hat Ratenlimits. Dieses Tool enthält integriertes Ratenlimit-Tracking (Standard: 50 Abfragen pro 24 Stunden), das:
- Warnt, bevor Sie BMF-Limits erreichen
- E-Mail-Benachrichtigungen bei Überschreitung sendet
- Abfragen werden NICHT blockiert - das BMF führt die eigentliche Durchsetzung durch
Konfiguration über finanzonline.ratelimit_queries und finanzonline.ratelimit_hours.
FinanzOnline Webservice-Benutzer
WICHTIG: Der Benutzer (BENID) muss in der FinanzOnline-Benutzerverwaltung als Webservice-Benutzer konfiguriert sein.
Häufige Fehler:
-1= Session ungültig oder abgelaufen-2= System in Wartung-3= Technischer Fehler-4= Datumsparameter erforderlich-5= Datum zu alt (max. 31 Tage)-6= Datumsbereich zu groß (max. 7 Tage)
Inhaltsverzeichnis
- Aufbewahrungspflichten
- BMF-Ratenlimits
- Schnellstart
- Verwendung
- BMF-Rückgabecodes
- Weitere Dokumentation
Schnellstart
Ihr IT-Personal sollte diese Anwendung problemlos installieren können. Bei Bedarf an Support können Sie den Autor für bezahlten Support kontaktieren.
Empfohlen: Ausführung via uvx für automatisch die neueste Version
UV - der ultraschnelle Installer - geschrieben in Rust (10-20x schneller als pip/poetry)
# Python installieren (erfordert >= **Python 3.10+**)
# UV installieren
pip install --upgrade uv
# Konfigurationsdateien erstellen
uvx finanzonline_databox@latest config-deploy --target user
Erstellen Sie Ihre persönliche Konfigurationsdatei im config.d/-Verzeichnis (Einstellungen werden tief zusammengeführt, sodass Updates der Standardkonfigurationen Ihre Einstellungen nicht beeinflussen):
# Linux: ~/.config/finanzonline-databox/config.d/99-myconfig.toml
# macOS: ~/Library/Application Support/bitranox/FinanzOnline DataBox/config.d/99-myconfig.toml
# Windows: %APPDATA%\bitranox\FinanzOnline DataBox\config.d\99-myconfig.toml
# 99-myconfig.toml - Ihre persönlichen Einstellungen
[finanzonline]
tid = "123456789" # Teilnehmer-ID
benid = "WEBUSER" # Benutzer-ID - muss Webservice-Benutzer sein!
pin = "yourpassword" # Passwort/PIN
herstellerid = "ATU12345678" # Software-Hersteller UID (Ihre österreichische UID eintragen)
output_dir = "~/Documents/FinanzOnline/DataBox" # Standard-Ausgabeverzeichnis
default_recipients = ["buchhaltung@ihre-firma.at"] # Empfänger für Sync-Zusammenfassung
document_recipients = ["archiv@ihre-firma.at"] # Empfänger für Dokument-Anhänge
email_format = "both" # "html", "plain" oder "both"
[email]
smtp_hosts = ["smtp.beispiel.at:587"]
from_address = "databox@ihre-firma.at"
# Alle ungelesenen Dokumente auflisten
uvx finanzonline_databox@latest list
# Alle neuen Dokumente herunterladen
uvx finanzonline_databox@latest sync --output ./archiv
Für alternative Installationswege (pip, pipx, uvx, Source-Builds) siehe INSTALL_de.md.
Verwendung
# Alle ungelesenen Dokumente auflisten (Standard)
finanzonline-databox list
# Nur Bescheide auflisten
finanzonline-databox list --erltyp B
# Nur Protokolle mit Referenz UID auflisten
finanzonline-databox list -t P -r UID
# Dokumente der letzten 31 Tage auflisten
finanzonline-databox list --days 31
# Nur ungelesene Dokumente der letzten 7 Tage
finanzonline-databox list --days 7 --unread
# Nur gelesene Dokumente der letzten 31 Tage
finanzonline-databox list --days 31 --read
# Alle Dokumente der letzten 31 Tage (gelesen und ungelesen)
finanzonline-databox list --days 31 --all
# Ein bestimmtes Dokument herunterladen
finanzonline-databox download abc123def456xyz --output ./downloads
# Alle neuen Dokumente in ein Verzeichnis synchronisieren (nur ungelesene, Standard)
finanzonline-databox sync --output ./databox-archiv
# Alle Dokumente synchronisieren (gelesen und ungelesen)
finanzonline-databox sync --output ./databox-archiv --all
# Nur Bescheide synchronisieren
finanzonline-databox sync --output ./bescheide --erltyp B
# Nur Protokolle mit Referenz UID synchronisieren
finanzonline-databox sync -t P -r UID
# Dokumente der letzten 31 Tage synchronisieren
finanzonline-databox sync --days 31 --all
# Dokumente synchronisieren und als E-Mail-Anhang versenden
finanzonline-databox sync --document-recipient archiv@firma.at
# JSON-Ausgabe für Scripting
finanzonline-databox list --format json
Die Ergebnisse werden angezeigt und optional eine E-Mail mit den Ergebnissen an die konfigurierten E-Mail-Adressen gesendet.
E-Mail-Benachrichtigungen
# Zusammenfassung an Standard-Empfänger (aus Konfiguration)
finanzonline-databox sync --output ./archiv
# Zusammenfassung an spezifische Empfänger
finanzonline-databox sync --recipient admin@firma.at --recipient buchhaltung@firma.at
# Jedes Dokument als E-Mail-Anhang an separate Empfänger
finanzonline-databox sync --document-recipient archiv@firma.at
# Beides kombinieren
finanzonline-databox sync --recipient admin@firma.at --document-recipient archiv@firma.at
BMF-Rückgabecodes
| Code | Bedeutung |
|---|---|
0 |
Erfolg |
-1 |
Session ungültig oder abgelaufen |
-2 |
System in Wartung (retry später) |
-3 |
Technischer Fehler (retry später) |
-4 |
Datumsparameter erforderlich (ts_zust_von/bis) |
-5 |
ts_zust_von zu alt (max. 31 Tage in der Vergangenheit) |
-6 |
Datumsbereich zu groß (max. 7 Tage zwischen von und bis) |
Weitere Dokumentation
- Installationsanleitung (DE) | Installation Guide (EN)
- Konfigurationsreferenz (DE) | Configuration Reference (EN)
- CLI-Referenz (DE) | CLI Reference (EN)
- Python-API-Referenz (DE) | Python API Reference (EN)
- BMF-Rückgabecodes (DE) | BMF Return Codes (EN)
- Entwicklungshandbuch
- Contributor-Leitfaden
- Changelog
- Modulreferenz
- Lizenz
Release files for finanzonline-databox 1.2.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| finanzonline_databox-1.2.20.tar.gz | 920.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| finanzonline_databox-1.2.20-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / finanzonline_databox-1.2.20.tar.gz
| Download URL | finanzonline_databox-1.2.20.tar.gz |
|---|---|
| Size | 920.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
26683842b0c50d9bb6711600324aa82b73a6bed8e7a3d65c1f934d235b8cdb69
|
|
BLAKE2b-256 checksum How to use checksums |
da76d0e16e6c04213212147ef343e1fc63a7798485a71b3710f45902f10b0453
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Release files / finanzonline_databox-1.2.20-py3-none-any.whl
| Download URL | finanzonline_databox-1.2.20-py3-none-any.whl |
|---|---|
| Size | 146.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d751da02a70158781721163fe9ecdf48bee5daad38d51d128d668e75d58e1a1a
|
|
BLAKE2b-256 checksum How to use checksums |
32002261c5a9f444f0b777e983e093b0a978adbfe360796c0edb0f6b63ab32d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|