Scheinfirmen Österreich
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:
- Webseite: https://service.bmf.gv.at/service/allg/lsu/
- CSV: https://service.bmf.gv.at/service/allg/lsu/__Gen_Csv.asp
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.
Metadata
Release files for scheinfirmen-at 1.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| scheinfirmen_at-1.5.2.tar.gz | 296.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scheinfirmen_at-1.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 325.3 kB
Release files / scheinfirmen_at-1.5.2.tar.gz
| Download URL | scheinfirmen_at-1.5.2.tar.gz |
|---|---|
| Size | 296.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
19efe625c5bd4f089dec60a5fbe1f4f3c3cb5cf0e88252c105a636308704b50a
|
|
BLAKE2b-256 checksum How to use checksums |
6579f6f6d18e217dda3acb9b27c02711c802700c37c536d7205f4d80bddc3d97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency logRelease files / scheinfirmen_at-1.5.2-py3-none-any.whl
| Download URL | scheinfirmen_at-1.5.2-py3-none-any.whl |
|---|---|
| Size | 28.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
852621801ba4331637b465394e6660c26966bd4bc6ef0c59064a7e457f1fdcf6
|
|
BLAKE2b-256 checksum How to use checksums |
22ff69d5a1fd72ea75a6c7450a51655c08180ab6be3b757d1301c63733a53a84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency log