Skip to main content

Python library and CLI for querying Level 2 UID checks via FinanzOnline Austria

Project description

finanzonline_uid

CI CodeQL License: MIT Open in Codespaces PyPI PyPI - Downloads Code Style: Ruff codecov Maintainability Known Vulnerabilities security: bandit

🇬🇧 English version available (README_en.md)

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
  • Ergebnis-Caching mit konfigurierbarer TTL (Standard: 48 Stunden)
  • Ratenlimit-Tracking mit Warn-E-Mails
  • 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).


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

Die Ergebnisse werden angezeigt und eine E-Mail mit den Ergebnissen wird an die konfigurierten E-Mail-Adressen gesendet.


BMF-Rückgabecodes

Eine vollständige Liste aller BMF-Rückgabecodes finden Sie in der Rückgabecode-Referenz (RETURNCODES_de.md).


Weitere Dokumentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finanzonline_uid-2.1.0.tar.gz (885.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finanzonline_uid-2.1.0-py3-none-any.whl (120.5 kB view details)

Uploaded Python 3

File details

Details for the file finanzonline_uid-2.1.0.tar.gz.

File metadata

  • Download URL: finanzonline_uid-2.1.0.tar.gz
  • Upload date:
  • Size: 885.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for finanzonline_uid-2.1.0.tar.gz
Algorithm Hash digest
SHA256 9fe5e5f0b09ca579224654cd1797576ebee12d5c2fe17566653abde36b9cb393
MD5 d51897f649414e7bbe860a1004d6a13b
BLAKE2b-256 2c22ce18d0e997904d44661037810adf50ca71d4b6cd72ceab09dfcec5ed671b

See more details on using hashes here.

File details

Details for the file finanzonline_uid-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for finanzonline_uid-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 91913ba2ec6b20edcfaf597db15eb4f4e2a022f18623b0a7c9081e41ce3c6d06
MD5 cdf89aeb05b9a1727a659eba30e076bc
BLAKE2b-256 b2626ecd73bf1401fa28cf460779c86b4c3ca244e9e2654f91e28cb55c064fc8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page