Rechnungserstellung mit ZUGFeRD 2.2 / Factur-X Basic — EN 16931 konform
FRechnung ist eine Desktop-Anwendung zur einfachen und professionellen Erstellung von Rechnungen als PDF. Die generierten PDFs enthalten eingebettetes maschinenlesbares XML nach dem ZUGFeRD 2.2 / Factur-X Basic-Standard, vollständig konform zur europäischen Norm EN 16931.
Offiziele Seite frechnung.de
pip install customtkinter fpdf2 pypdf pdf2image Pillow
Für den integrierten PDF-Viewer wird zusätzlich Poppler benötigt:
| Betriebssystem | Installationsweg |
|---|---|
| Windows | poppler-windows Releases herunterladen, entpacken, Pfad zur bin/-Ordner in die PATH-Umgebungsvariable eintragen |
| macOS | brew install poppler |
| Linux | sudo apt install poppler-utils |
Hinweis: Ohne Poppler / pdf2image ist der integrierte Viewer nicht verfügbar. Das Generieren und Speichern von PDFs funktioniert aber weiterhin vollständig. Über den Button „Extern öffnen” kann die Datei im Standard-PDF-Programm geöffnet werden.
Für Unicode-Unterstützung (€-Zeichen, Umlaute) die Dateien in das Anwendungsverzeichnis legen:
DejaVuSans.ttf
DejaVuSans-Bold.ttf
Download: dejavu-fonts.github.io
Ohne diese Dateien verwendet die Anwendung automatisch Helvetica als Fallback.
invoice-master/
├── main.py # Hauptanwendung (GUI)
├── pdf_generator.py # PDF-Erzeugung + ZUGFeRD-XML-Generator
├── pdf_viewer.py # Integrierter PDF-Viewer
├── config_manager.py # Einstellungsverwaltung (JSON)
├── DejaVuSans.ttf # (optional) Unicode-Schrift
├── DejaVuSans-Bold.ttf # (optional) Unicode-Schrift Bold
└── README.md
python main.py
Oben in der Anwendung kann zwischen drei Rechnungsarten gewählt werden:
| Modus | Zielgruppe | Besonderheiten |
|---|---|---|
| B2C | Privatpersonen | Minimalfelder, keine USt-ID des Kunden |
| B2B | Unternehmen | Kundennummer und Kunden-USt-ID einblendbar |
| B2G | Behörden / öffentliche Auftraggeber | Leitweg-ID (Pflicht), Vertragsnummer, Kostenstelle |
Bei Auswahl des Modus B2G werden zusätzliche Pflicht- und Optionalfelder eingeblendet, die für die Einreichung von E-Rechnungen an Behörden und öffentliche Auftraggeber (gemäß E-Rechnungsgesetz / EU-Richtlinie 2014/55/EU) benötigt werden:
| Feld | Pflicht | Beschreibung |
|---|---|---|
| Leitweg-ID | ✅ Pflicht | Eindeutige Routing-Kennung des Empfängers, z. B. 991-1234567890-06. Wird vom Auftraggeber mitgeteilt und im XML als BuyerReference eingetragen. |
| Vertragsnummer / Auftragsnummer | Optional | Referenz auf den zugrundeliegenden Vertrag oder die Bestellnummer der Behörde, z. B. VTR-2025-001. |
| Kostenstelle / Haushaltsstelle | Optional | Interne Haushaltszuordnung des Auftraggebers, z. B. 4200-001. |
Hinweis zur Leitweg-ID: Die Leitweg-ID ist bei B2G-Rechnungen nach EN 16931 im Feld
BuyerReference(BT-10) Pflicht. Ohne gültige Leitweg-ID kann die Rechnung vom Empfängerportal (z. B. OZG-RE, E-Rechnung Bund, PEPPOL) abgewiesen werden.
DE123456789)| Theme | Beschreibung |
|---|---|
| Klassisch Blau | Farbiger Kopf · alternierende Zeilen · klassisch |
| Modern Minimal | Nur Linien · keine Füllung · viel Weißraum |
| Bold Dunkel | Schwarzes Band · Goldakzent · voller Totalbalken |
| Elegant Grün | Linker 3mm-Balken je Zeile · Zebra-Muster |
| Corporate Grau | Außenrahmen · gestrichelte Trennlinien · sachlich |
| Sunset Orange | Warmton · breite Beschreibung · Akzenttrennlinien |
| Premium Navy | Navy-Band · Gold-Linie · durchgehender Links-Balken |
| Bauunternehmen | Doppelband-Kopf · Nummernbadge · Orange |
Die generierten PDFs enthalten eine eingebettete Datei factur-x.xml gemäß:
58 = SEPA-Überweisung (korrekt nach EN 16931)BuyerOrderReferencedDocument), Käuferreferenz, Kunden-USt-IDBuyerReference (BT-10, Pflicht), Vertragsnummer, KostenstelleZur Validierung des XML kann Mustang Project Validator oder Factur-X Validator verwendet werden.
| Feld | B2C | B2B | B2G |
|---|---|---|---|
| Kundenname | Pflicht | Pflicht | Pflicht |
| Anschrift | Optional | Empfohlen | Empfohlen |
| Kundennummer | — | Optional | Optional |
| Kunden-USt-ID | — | Optional | Optional |
| Bestellnummer | — | Optional | Optional |
| Käuferreferenz | — | Optional | Optional |
| Leitweg-ID | — | — | Pflicht |
| Vertragsnummer | — | — | Optional |
| Kostenstelle | — | — | Optional |
Dieses Projekt steht unter der MIT-Lizenz. Siehe LICENSE für Details.