Python library and CLI for querying Level 2 UID checks via FinanzOnline Austria
Project description
finanzonline_uid
finanzonline_uid ist eine Python-Bibliothek und CLI zur Abfrage von Stufe 2 UID-Prüfungen (Umsatzsteuer-Identifikationsnummer-Verifizierung) über den österreichischen FinanzOnline-Webservice. Stufe-2-Abfragen liefern detaillierte Bestätigungen von EU-Umsatzsteuer-Identifikationsnummern einschließlich des registrierten Firmennamens und der Adresse.
Warum finanzonline_uid?
Die Verifizierung von UID-Nummern über das FinanzOnline-Webportal erfordert Anmeldung, Navigation durch Menüs und manuelle Dateneingabe - mühsam und nicht automatisierbar. Mit finanzonline_uid:
- Kein Browser erforderlich - läuft vollständig über die Kommandozeile oder per Windows-Icon.
- Vollständig skriptfähig - Integration in Fakturierungssysteme, Batch-Prozesse oder CI-Pipelines.
- E-Mail-Benachrichtigungen - automatische Bestätigungs-E-Mails mit Prüfergebnissen.
- Ergebnis-Caching - Vermeidung redundanter API-Aufrufe durch konfigurierbare Zwischenspeicherung.
- Ratenlimit-Schutz - integriertes Tracking mit E-Mail-Warnungen bei Annäherung an Limits.
- Einfache Bedienung - einfach die zu prüfende UID übergeben und sofort Ergebnisse erhalten.
- FREIE SOFTWARE - diese Software ist und bleibt kostenlos. Bei Bedarf an Installation oder Support kann dieser beim Autor gebucht werden.
Funktionen:
- Abfrage von FinanzOnline für Stufe-2-UID-Verifizierung
- CLI-Einstiegspunkt mit rich-click (rich-Ausgabe + click-Ergonomie)
- Automatische E-Mail-Benachrichtigungen mit HTML-Formatierung (standardmäßig aktiviert)
- Mehrsprachige Unterstützung - Englisch, Deutsch, Spanisch, Französisch, Russisch
- Menschenlesbare und JSON-Ausgabeformate
- Dateiausgabe - gültige Ergebnisse als Textdateien speichern (
--outputdir) - Ergebnis-Caching mit konfigurierbarer TTL (Standard: 48 Stunden)
- Ratenlimit-Tracking mit Warn-E-Mails
- UID-Eingabe-Bereinigung - automatische Entfernung von Copy-Paste-Artefakten (Leerzeichen, unsichtbare Zeichen)
- Wiederholungsmodus - automatische Wiederholung bei temporären Fehlern mit animiertem Countdown
- Mehrschichtiges Konfigurationssystem mit lib_layered_config
- Strukturiertes Logging mit lib_log_rich
- Exit-Code- und Meldungshelfer durch lib_cli_exit_tools
Zukünftige Entwicklung:
- in Kürze: Automatischer Download von Bestätigungsdokumenten aus Ihrer FinanzOnline Databox. Dies MÜSSEN Sie derzeit manuell erledigen - siehe Aufbewahrungspflichten
- benötigen Sie weitere Funktionalität, zögern Sie nicht uns zu kontaktieren.
Beispiel:
# Beispiel: eine UID verifizieren
finanzonline_uid check DE123456789
Fair-Use-Richtlinie
Wie sollte der UID-Verifizierungsdienst richtig verwendet werden?
UID-Verifizierungen sollten nur zum Zeitpunkt der innergemeinschaftlichen steuerfreien Lieferungen oder sonstigen Leistungen an Kunden in anderen EU-Mitgliedstaaten angefordert werden - nicht im Voraus oder in großen Mengen. Das dauerhafte Abfragen aller UID-Nummern in Ihrer Datenbank stellt keine faire Nutzung dar.
Bitte unterlassen Sie unnötige UID-Verifizierungsanfragen.
BMF-Ratenlimits
Seit 6. April 2023 kann jede UID-Nummer nur zweimal pro Tag pro Teilnehmer über den Webservice abgefragt werden. Überschreitung dieses Limits liefert Code 1513.
Lokales Ratenlimit-Tracking
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
- Erfolgreiche Abfragen werden lokal zwischengespeichert, um versehentliche Limit-Überschreitungen zu vermeiden
- 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:
-4= Ungültige Zugangsdaten-7= Benutzer ist kein Webservice-Benutzer-8= Teilnehmer gesperrt oder nicht für Webservice autorisiert
Bestätigungsdokumente (Aufbewahrungspflichten)
WICHTIG: Das offizielle Bestätigungsdokument wird am folgenden Tag in Ihre FinanzOnline Databox zugestellt.
Dieses Dokument muss gemäß § 132 BAO (Bundesabgabenordnung) ausgedruckt und als Nachweis der UID-Verifizierung aufbewahrt werden.
Der ausgedruckte Beleg dient als offizielle Dokumentation für Steuerprüfungen und muss gemäß den österreichischen Aufbewahrungsvorschriften aufbewahrt werden (üblicherweise 7 Jahre).
Automatischer Download: Die Bestätigungsdokumente können automatisch aus der FinanzOnline Databox heruntergeladen werden mit finanzonline_databox (auch auf PyPI verfügbar).
Inhaltsverzeichnis
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_uid@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-uid/config.d/99-myconfig.toml
# macOS: ~/Library/Application Support/bitranox/FinanzOnline UID/config.d/99-myconfig.toml
# Windows: %APPDATA%\bitranox\FinanzOnline UID\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
uid_tn = "ATU12345678" # Ihre österreichische UID (muss mit "ATU" beginnen)
herstellerid = "ATU12345678" # Software-Hersteller UID (Ihre österreichische UID eintragen)
default_recipients = ["buchhaltung@ihre-firma.at"]
[email]
smtp_hosts = ["smtp.beispiel.at:587"]
from_address = "uidcheck@ihre-firma.at"
# Neueste Version ohne weitere Installation starten
uvx finanzonline_uid@latest check DE123456789
Für alternative Installationswege (pip, pipx, uvx, Source-Builds) siehe INSTALL_de.md.
Verwendung
# Prüfung per Kommandozeile
uvx finanzonline_uid@latest check NL123456789
# Interaktive Prüfung (fragt nach der zu prüfenden UID):
uvx finanzonline_uid@latest check --interactive
# Wiederholungsmodus: bei temporären Fehlern alle 5 Minuten wiederholen
uvx finanzonline_uid@latest check --interactive --retryminutes 5
Die Ergebnisse werden angezeigt und eine E-Mail mit den Ergebnissen wird an die konfigurierten E-Mail-Adressen gesendet.
UID-Eingabe-Bereinigung
UID-Nummern werden automatisch von Copy-Paste-Artefakten bereinigt:
- Leerzeichen, Tabs und Zeilenumbrüche werden entfernt
- Unsichtbare Zeichen (Zero-Width-Spaces, BOM) werden entfernt
- Automatische Umwandlung in Großbuchstaben
Beispiel: " de 123 456 789 " wird zu "DE123456789"
Wiederholungsmodus
Mit --retryminutes können Sie bei temporären Fehlern (Netzwerk, Rate-Limit) automatisch wiederholen lassen:
# Alle 5 Minuten wiederholen bis Erfolg oder Abbruch mit Ctrl+C
finanzonline-uid check --interactive --retryminutes 5
- Animierter Countdown zeigt Zeit bis zum nächsten Versuch
- E-Mail wird nur bei Erfolg oder endgültigem Fehler gesendet
- Bei dauerhaften Fehlern (ungültige UID, Authentifizierung) wird sofort abgebrochen
BMF-Rückgabecodes
Eine vollständige Liste aller BMF-Rückgabecodes finden Sie in der Rückgabecode-Referenz (RETURNCODES_de.md).
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file finanzonline_uid-2.6.1.tar.gz.
File metadata
- Download URL: finanzonline_uid-2.6.1.tar.gz
- Upload date:
- Size: 870.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9af0633b27131143b019e9d9ee742a7987974a0447c156f3835380e437104ce3
|
|
| MD5 |
f55018498a5e9ad9971581fca8453925
|
|
| BLAKE2b-256 |
dab6c5bd24818cbf8bbdf6d93f6d203d54ed882bb54119b1dbcf8b542eb37c5e
|
File details
Details for the file finanzonline_uid-2.6.1-py3-none-any.whl.
File metadata
- Download URL: finanzonline_uid-2.6.1-py3-none-any.whl
- Upload date:
- Size: 142.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ba973b984bf55f7c0222b832744db0e4eed65570b609bc7144e41f730781cef
|
|
| MD5 |
5ef8437454e716043e129a73eb4f1538
|
|
| BLAKE2b-256 |
6d9fd3cf9d70c511b64a8297d6436b74fcb27a310acf9620fe99a3c0c793e35b
|