FRechnung

Offizielle Webseite: frechnung.de

Rechnungserstellung mit ZUGFeRD 2.2 / Factur-X Basic — EN 16931 konform


Übersicht

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.

Highlights

Offiziele Seite frechnung.de


Installation

Voraussetzungen

Abhängigkeiten installieren

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.

Schriftarten (optional, empfohlen)

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.


Projektstruktur

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

Starten

python main.py

Bedienungsanleitung

Rechnungsart wählen

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

Rechnung erstellen

  1. Rechnungsart wählen (B2C / B2B / B2G)
  2. Tab „Rechnungsdaten” öffnen
  3. Kundendaten ausfüllen
    • Kundenname (Pflichtfeld)
    • Anschrift (Straße in Zeile 1, PLZ und Ort in Zeile 2 — wichtig für korrektes XML)
    • Objekt / Bauvorhaben, Ausführung (optional)
    • Leistungszeitraum als Freitext (z. B. „01.01.2026 – 31.01.2026”)
  4. Modusabhängige Felder ausfüllen
  5. Rechnungsinformationen ausfüllen
    • Rechnungsnummer (Pflichtfeld)
    • Rechnungsdatum und Lieferdatum (Standard: heute)
    • Umsatzsteuersatz (Standard: 19 %)
    • Rabatt in % (Standard: 0)
    • Zahlungsziel in Tagen (Standard: 14) → Fälligkeitsdatum wird automatisch berechnet
    • Bestellnummer / Käuferreferenz (optional)
    • Zahlungshinweis / Schlusstext (vorausgefüllt, anpassbar)
    • Interne Bemerkungen (erscheinen klein am Seitenende)
  6. Artikel hinzufügen
    • Bezeichnung, Menge, Einheit und Netto-Einzelpreis eingeben
    • „+ Hinzufügen” klicken
    • Positionen erscheinen in der Liste; einzelne Zeilen oder alle Positionen können entfernt werden
  7. Design-Thema wählen (Dropdown)
  8. „Berechnen” → Brutto- und Nettobetrag werden angezeigt
  9. „PDF generieren” → Vorschau öffnen oder Speichern

B2G — E-Rechnung an öffentliche Auftraggeber

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.

Vorschau nutzen

Firmeneinstellungen speichern

  1. Tab „Dienstleister-Einstellungen” öffnen
  2. Alle Felder ausfüllen:
    • Firmenname, Inhaber, Ansprechpartner, Kontaktdaten
    • Anschrift (Straße in Zeile 1, PLZ Ort in Zeile 2)
    • Steuernummer oder USt-IdNr. (z. B. DE123456789)
    • Gläubiger-ID für SEPA-Lastschrift (optional)
    • Bankname, IBAN, BIC
  3. Optional: Firmenlogo als PNG/JPG auswählen
  4. „Einstellungen speichern” → Daten werden dauerhaft gespeichert

Design-Themen

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

ZUGFeRD / Factur-X XML (EN 16931)

Die generierten PDFs enthalten eine eingebettete Datei factur-x.xml gemäß:

Zur Validierung des XML kann Mustang Project Validator oder Factur-X Validator verwendet werden.


B2C vs. B2B vs. B2G

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

Bekannte Einschränkungen


Lizenz

Dieses Projekt steht unter der MIT-Lizenz. Siehe LICENSE für Details.