Skip to content

arjoma/scheinfirmen-at

Repository files navigation

Scheinfirmen Österreich

CI Daten Aktualisieren PyPI

Automatischer Download und Konvertierung der österreichischen BMF Scheinfirmenliste (Liste der Scheinunternehmen) in maschinenlesbare Formate.

Note

Die Daten werden täglich um ca. 3:15 Uhr früh (MEZ) automatisch aktualisiert. Siehe Statistik & neueste Einträge für den neuesten Stand.

Warning

Haftungsausschluss: Dieses Projekt ist ein inoffizieller, automatisierter Spiegel der BMF-Scheinfirmenliste und steht in keiner Verbindung zum Bundesministerium für Finanzen (BMF) Österreich. Die Daten werden ohne jegliche Gewähr bereitgestellt. Weder die Vollständigkeit, Richtigkeit noch die Aktualität der Daten wird garantiert. Die offizielle und rechtsverbindliche Quelle ist ausschließlich die BMF-Website unter https://service.bmf.gv.at/service/allg/lsu/ — diese ist bei rechtlich relevanten Entscheidungen zu verwenden. Jegliche Haftung für Schäden, die aus der Verwendung dieser Daten entstehen, wird ausgeschlossen.

Datenquelle

Das österreichische Bundesministerium für Finanzen (BMF) veröffentlicht eine Liste von Scheinunternehmen (Unternehmen, die für Steuerbetrug oder andere illegale Aktivitäten missbraucht werden) unter:

Die Daten stehen unter den Nutzungsbedingungen des BMF.

Output-Dateien

Die konvertierten und täglich aktualisierten Daten befinden sich im data/ Verzeichnis:

Datei Format Beschreibung
scheinfirmen.csv CSV (UTF-8 mit BOM) Komma-getrennt, Excel-kompatibel (CSVW)
scheinfirmen.jsonl JSONL Eine JSON-Zeile pro Eintrag, erste Zeile Metadaten (Schema)
scheinfirmen.xml XML <scheinfirma>-Elemente mit Attributen (XSD)
STATS.md Markdown Statistiken, neue Einträge und Verlauf

Datenfelder

Feld Typ Beschreibung
name String Name des Unternehmens oder der natürlichen Person
anschrift String Adresse (PLZ Ort, Straße Nr)
veroeffentlicht Datum Veröffentlichungsdatum (ISO 8601)
rechtskraeftig Datum Datum der Rechtskraft des Bescheids (ISO 8601)
seit Datum|null Zeitpunkt als Scheinunternehmen (ISO 8601)
geburtsdatum Datum|null Geburtsdatum (nur bei natürlichen Personen)
fbnr String|null Firmenbuchnummer (z.B. 597821z)
uid String|null UID-Nummer (z.B. ATU79209223)
kennziffer String|null Kennziffer des Unternehmensregisters

Alle Datumsfelder sind im ISO-8601-Format (YYYY-MM-DD).

Voraussetzungen

Dieses Projekt verwendet uv für das Paket- und Dependency-Management. Falls Sie uv noch nicht installiert haben, wird dies empfohlen:

# Installation unter macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Installation unter Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Ausführliche Informationen finden Sie in der uv-Dokumentation.

Direkte Ausführung (ohne Installation)

uvx scheinfirmen-at@latest -o data/

Lädt das Paket von PyPI, führt es aus und cached es lokal — kein manuelles Installieren nötig (analog zu npx).

Installation

pip install scheinfirmen-at
# oder mit uv:
uv add scheinfirmen-at
# oder als dauerhaftes CLI-Tool:
uv tool install scheinfirmen-at

Verwendung

Kommandozeile

# Aktuelle Daten herunterladen und in data/ konvertieren
scheinfirmen-at -o data/

# Mit ausführlicher Ausgabe
scheinfirmen-at -o data/ -v

# Lokale Datei konvertieren (kein Download)
scheinfirmen-at --input rohdaten.csv -o output/

# Hilfe
scheinfirmen-at --help

Python API

from scheinfirmen_at import download_csv, parse_bmf_csv, validate_records
from scheinfirmen_at.convert import write_csv, write_jsonl, write_xml

# Herunterladen und parsen
raw = download_csv()
result = parse_bmf_csv(raw)

# Validieren
validation = validate_records(result)
if not validation.ok:
    for err in validation.errors:
        print(f"Fehler: {err}")

# Ausgabe schreiben
write_csv(result, "scheinfirmen.csv")
write_jsonl(result, "scheinfirmen.jsonl")
write_xml(result, "scheinfirmen.xml")

# Zugriff auf einzelne Einträge
for rec in result.records:
    print(rec.name, rec.uid)

Entwicklung

# Repository klonen
git clone https://github.com/arjoma/scheinfirmen-at.git
cd scheinfirmen-oesterreich

# Abhängigkeiten installieren (uv)
uv sync

# Tests ausführen
uv run pytest tests/ -v

# Lint
uv run ruff check src/ tests/

# Type-Check
uv run mypy src/

Siehe CHANGELOG.md für die Versionshistorie.

Auto-Korrektur fehlplatzierter Felder

Die BMF-Liste wird manuell gepflegt und enthält gelegentlich Tippfehler in den Feldern UID-Nr., Firmenbuch-Nr und Kennziffer des UR. Vor der Validierung erkennt das Tool diese Muster und korrigiert sie automatisch (mit Warnung im Log), damit nachgelagerte Tools (z. B. Lookups nach UID) konsistente Daten erhalten:

Regel Beispiel (BMF-Eingabe) Korrektur
UID ↔ Kennziffer tauschen uid="R134I594W", kennziffer="" uid=null, kennziffer="R134I594W"
Doppelten UID-Wert in Kennziffer löschen uid="ATU80457319", kennziffer="ATU80457319" kennziffer=null
Doppelten Firmenbuch-Wert in Kennziffer löschen fbnr="636821b", kennziffer="636821b" kennziffer=null
Ausländische EU-VAT-Nummer in UID übernehmen kennziffer="RO38488384", uid=null uid="RO38488384", kennziffer=null

Erkannte Fixe werden mit WARNING: NORMALIZE: … ins Log geschrieben. Die UID-Spalte wird auch für Nicht-AT-VAT-Nummern offen gehalten (rumänische, deutsche etc.), da die Firmen trotzdem als Scheinfirmen geführt werden und in nachgelagerten Tools per UID auffindbar sein sollen.

Technische Details

  • Abhängigkeiten: Keine (reines Python stdlib, >= 3.10)
  • Quell-Encoding: ISO-8859-1 (Tilde-getrennt, CRLF)
  • Output-Encoding: UTF-8 (CSV mit BOM für Excel-Kompatibilität)
  • Validierung: Strenge Feldvalidierung mit Fehlern und Warnungen
  • Daten-Reparatur: Auto-Korrektur fehlplatzierter UID/Kennziffer/Firmenbuch-Werte (siehe oben)
  • Schema-Prüfung: Automatische Validierung gegen XSD (XML) und JSON Schema (JSONL)
  • Verifizierung: Kreuz-Format-Prüfung (alle Formate müssen gleiche Zeilenanzahl haben)

Lizenz

Apache License 2.0 — siehe LICENSE

Die Scheinfirmenliste selbst ist eine öffentliche Verwaltungsinformation des BMF Österreich.

About

Täglich aktualisierte österreichische BMF Scheinfirmenliste in maschinenlesbaren Formaten (CSV/JSONL/XML)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages