PDF Rechnungen in E-Rechnung Konvertieren. Format: ZUGFeRD oder XRechnung http://erechnung/
Go to file
dfuhrmann3 8e44e64930 Stapelbetrieb: Ordner einlesen, per Ampel prüfen, gesammelt exportieren.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 16:28:27 +02:00
.streamlit feat(v3): Intro-Animation als statisches Asset + Static Serving aktiviert 2026-07-16 10:02:01 +02:00
assets feat(v3): eigenes Tab-Icon (Beleg-Motiv, schwarz/orange) 2026-07-15 13:49:17 +02:00
static feat(v3): Intro auf MP4 umgestellt (video statt HTML-Bundle) 2026-07-16 10:18:43 +02:00
.dockerignore chore: keep tests, test-config and planning docs local-only (untrack from repo) 2026-07-07 15:57:09 +02:00
.gitignore chore(v3): .claude/ (nur Vorschau-Tool) auf ignore, .streamlit bleibt (Static Serving) 2026-07-16 10:04:18 +02:00
Dockerfile Update für API & Docker 2026-07-02 14:19:25 +02:00
README.md Stapelbetrieb: Ordner einlesen, per Ampel prüfen, gesammelt exportieren. 2026-07-30 16:28:27 +02:00
batch_folder.py Stapelbetrieb: Ordner einlesen, per Ampel prüfen, gesammelt exportieren. 2026-07-30 16:28:27 +02:00
batch_mode.py Stapelbetrieb: Ordner einlesen, per Ampel prüfen, gesammelt exportieren. 2026-07-30 16:28:27 +02:00
docker-compose.yml Stapelbetrieb: Ordner einlesen, per Ampel prüfen, gesammelt exportieren. 2026-07-30 16:28:27 +02:00
intro_overlay.py fix(v3): Replay-Button links neben Streamlit-Menue statt darueber 2026-07-16 10:21:08 +02:00
invoice_logic.py Stapelbetrieb: Ordner einlesen, per Ampel prüfen, gesammelt exportieren. 2026-07-30 16:28:27 +02:00
main.py Stapelbetrieb: Ordner einlesen, per Ampel prüfen, gesammelt exportieren. 2026-07-30 16:28:27 +02:00
requirements.txt Test 2026-07-07 10:52:43 +02:00
sRGB.icc Test 2026-07-06 09:23:01 +02:00

README.md

README

Description

Dieses Tool konvertiert Rechnungen im PDF-Format über eine Weboberfläche in die offiziellen E-Rechnungsformate XRechnung (UBL) und ZUGFeRD 2.4 (hybride PDF mit eingebettetem CII-XML). Die Datenextraktion ist vollständig deterministisch (Regex und Zeilen-Auswertung) – es wird kein LLM und kein externer Dienst verwendet, sensible Finanzdaten verlassen das lokale Netzwerk nicht.

Zugriff

Die Anwendung läuft als Docker-Container und ist im lokalen Firmennetzwerk erreichbar unter:

http://erechnung

Aufbau

Datei Zweck
main.py Streamlit-Oberfläche für die Einzelrechnung, Export
invoice_logic.py Extraktion, Berechnung, XML-Erzeugung (UBL und CII), PDF-Helfer
batch_folder.py Ordner-Anbindung und Ampel-Bewertung des Stapelbetriebs (ohne Streamlit)
batch_mode.py Oberfläche des Stapelbetriebs
intro_overlay.py Intro-Video beim ersten Besuch

Installation (Docker)

1. Repository holen

git clone https://gitea.scitech-gmbh.de:8443/dfuhrmann/E-Rechnung.git
cd E-Rechnung

2. Austauschordner einbinden (nur für den Stapelbetrieb)

Der Stapelbetrieb liest Rechnungen aus einem Ordner und schreibt die fertigen E-Rechnungen zurück. Dafür muss die Netzwerkfreigabe dem Container zugänglich gemacht werden – ein Windows-Pfad wie \\FS01\Daten\Technik\AI lässt sich nicht in der Oberfläche eintragen, sondern wird in docker-compose.yml gemountet:

volumes:
  - /mnt/fs01/Daten/Technik/AI:/data

Wichtig: Binden Sie den übergeordneten Ordner ein, nicht einen einzelnen Unterordner. Alle Unterordner darunter sind dann in der Oberfläche frei wählbar, ohne dass diese Datei erneut angefasst werden muss.

Alternativ kann Docker die Freigabe selbst per CIFS einhängen – der entsprechende Block steht auskommentiert am Ende von docker-compose.yml. Das benötigte Konto braucht Lese- und Schreibrechte.

Wird kein Ordner eingebunden, funktioniert die Einzelrechnung uneingeschränkt; der Stapelbetrieb weist dann auf den fehlenden Mount hin.

3. Container bauen und starten

docker compose up -d --build

Die Anwendung ist danach unter http://localhost:8040 (bzw. im Firmennetz unter http://erechnung) erreichbar.


Use

Die Betriebsart wird links in der Seitenleiste gewählt.

Einzelrechnung

  1. Dokumenten-Upload: Laden Sie die Rechnungs-PDF über die Weboberfläche hoch. Die PDF wird direkt zur Kontrolle angezeigt.
  2. Leistungsnachweise (optional): Bis zu drei weitere PDFs anhängen. Ihre Seiten werden beim ZUGFeRD-Export ans Ende der Rechnung gehängt, sodass eine einzelne PDF entsteht. Aus diesen Dateien werden keine Daten ausgelesen.
  3. Extraktion: Starten Sie die Analyse über den Button "Daten extrahieren".
  4. Validierung: Prüfen Sie die extrahierten Kopfdaten und die Positionstabelle. Alle Felder sind editierbar. Pflichtfelder sind mit :red[*] markiert; der Export wird blockiert, solange Pflichtangaben fehlen.
  5. Export: Wählen Sie das Format (XRechnung-XML oder ZUGFeRD-PDF) und starten Sie den Download.

Stapel (Ordner)

  1. Ordner wählen: Eingangsordner (von DATEV befüllt) und Ausgabeordner aus den Unterordnern des eingebundenen Verzeichnisses auswählen.
  2. Einlesen: Alle PDFs des Eingangsordners werden analysiert und bewertet.
  3. Prüfen: Die Übersicht zeigt je Rechnung eine Ampel. ✅ bedeutet, dass alle Pflichtangaben vorliegen und die Summe der erkannten Positionen zur ausgewiesenen Bemessungsgrundlage passt. ⚠️ markierte Rechnungen nennen im Klartext, was fehlt; sie werden übersprungen und lassen sich im Einzelmodus korrigieren.
  4. Nachweise zuordnen (optional): Liegt ein Leistungsnachweis im selben Ordner, ordnen Sie ihn der zugehörigen Rechnung zu. Er zählt dann nicht mehr als eigene Rechnung.
  5. Exportieren: Alle grünen Rechnungen werden in einem Zug konvertiert und in den Ausgabeordner geschrieben. Die Quelldateien wandern in den Unterordner verarbeitet – gelöscht wird nichts.

Notes

Kontrolle durch den Sachbearbeiter

Das Tool ist ein Automations-Assistent, kein Ersatz für die fachliche Prüfung.

Im Einzelmodus liegen alle extrahierten Werte zur Sichtprüfung und Korrektur offen; der Export wird blockiert, solange Pflichtangaben fehlen.

Im Stapelmodus tritt an die Stelle der Sichtprüfung jeder einzelnen Rechnung eine Sammelfreigabe: Es werden nur Rechnungen exportiert, bei denen alle Pflichtfelder belegt sind und die Summe der erkannten Positionen exakt der auf der Rechnung ausgewiesenen Bemessungsgrundlage entspricht. Dieser Summen-Abgleich ist das entscheidende Sicherheitsnetz – er deckt eine unvollständige Positionserkennung zuverlässig auf. Alles Auffällige wird markiert und übersprungen, nie stillschweigend exportiert.

Die Verantwortung für die inhaltliche Richtigkeit der Rechnung bleibt in beiden Betriebsarten beim Sachbearbeiter.

GoBD-Konformität

Das Tool generiert ausschließlich das strukturierte XML- bzw. hybride PDF-Format. Für die Einhaltung der GoBD-Richtlinien (u. a. die revisionssichere Archivierung der Original-PDF sowie der generierten E-Rechnung über den gesetzlichen Zeitraum von 10 Jahren) ist der Betreiber der Software selbst verantwortlich. Der Stapelbetrieb löscht keine Quelldateien, sondern verschiebt sie nach verarbeitet.