Skip to main content

Scheinfirmen Österreich: Download and convert Austrian BMF shell company data to machine-readable formats

Project description

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.

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

scheinfirmen_at-1.5.0.tar.gz (276.2 kB view details)

Uploaded Source

Built Distribution

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

scheinfirmen_at-1.5.0-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file scheinfirmen_at-1.5.0.tar.gz.

File metadata

  • Download URL: scheinfirmen_at-1.5.0.tar.gz
  • Upload date:
  • Size: 276.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scheinfirmen_at-1.5.0.tar.gz
Algorithm Hash digest
SHA256 2936c985b238da79f43e4b5d71d47da0ba4494f60f76232433b23725fbd96002
MD5 32745b8308880762bc13352650f71f50
BLAKE2b-256 3c352abf0c9f07d101d3c2f431fde05667df005173c52f378b690b27226a0b90

See more details on using hashes here.

Provenance

The following attestation bundles were made for scheinfirmen_at-1.5.0.tar.gz:

Publisher: release.yml on arjoma/scheinfirmen-at

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scheinfirmen_at-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: scheinfirmen_at-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scheinfirmen_at-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 355dce9c5e3b872aa6d6cbd3fa7c8e5cde87208c11b150c988d7c2c172947bc3
MD5 2e7d802a7380df32e0e3a08a9e6b7ac5
BLAKE2b-256 447dd2ef1f5e39da33bc43392cfe41d0c731ff25a9986243a850cc5b74faea1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for scheinfirmen_at-1.5.0-py3-none-any.whl:

Publisher: release.yml on arjoma/scheinfirmen-at

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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