Im Dezember 2024 hat Actionschnitzel hier beschrieben, wie eine Firma mit Fakturama und der OpenXRechnungToolbox auf die E-Rechnung umgestellt hat (E-Rechnung: Ich stell' dann mal (schnell) um!). In den Kommentaren kamen Quba, Mustang und PDF24 dazu. Seitdem hat sich einiges getan: Quba 2.0 prüft Rechnungen jetzt auch offline, die OpenXRechnungToolbox wird nicht mehr weiterentwickelt, und die KoSIT veröffentlicht regelmässig neue Fassungen ihres Regelwerks. Zeit für einen Überblick, was unter Linux heute funktioniert.
Zwei Formate, ein Problem
Eine E-Rechnung im Sinne des deutschen Umsatzsteuergesetzes ist eine strukturierte Datei nach der europäischen Norm EN 16931. In der Praxis kommen zwei Formen an:
- XRechnung: reines XML, entweder in der Syntax UBL oder UN/CEFACT CII. Ein Doppelklick öffnet einen Texteditor voller Tags – lesbar ist das nicht.
- ZUGFeRD / Factur-X: ein PDF/A-3, in das die XML-Datei eingebettet ist. Das PDF sieht aus wie jede andere Rechnung, massgeblich ist aber das eingebettete XML.
Empfangen können müssen das seit dem 1. Januar 2025 alle Unternehmen in Deutschland. Ausstellen müssen sie E-Rechnungen ab 2027, wenn der Vorjahresumsatz über 800 000 Euro lag, alle übrigen ab 2028; Kleinunternehmer sind davon ausgenommen.
Quba 2.0: anzeigen, prüfen, erstellen
Quba ist ein Schwesterprojekt des Mustangproject und steht unter der Apache-Lizenz 2.0. Version 2.0 ist am 15. Oktober 2026 erschienen, baut auf dem ZUGFeRD-Manager von OpenIndex auf und nutzt intern Mustang. Neu ist, dass Quba E-Rechnungen nicht nur anzeigt, sondern offline prüft und aus einem PDF/A eine ZUGFeRD-Rechnung erzeugen kann. Neben dem PDF zeigt es die maschinenlesbaren Daten an, aufbereitet oder als XML.
Für Linux gibt es ein .deb, ein .rpm und ein .tar.gz auf der Release-Seite:
sudo apt install ./Quba-2.0.0-linux-x64.deb
Der KoSIT-Validator: das offizielle Regelwerk auf der Kommandozeile
Die Koordinierungsstelle für IT-Standards (KoSIT) gibt den Standard XRechnung heraus und dazu einen Validator (Apache 2.0, Java ab Version 11). Er prüft in drei Stufen: das XML-Schema, die Geschäftsregeln der EN 16931 und die deutschen Zusatzregeln (BR-DE-…).
Du brauchst zwei Dateien von GitHub: den Validator selbst (validator-1.6.3-standalone.jar) und die Konfiguration für XRechnung (xrechnung-3.0.2-validator-configuration-2026-08-31.zip). Dann:
sudo apt install default-jre
unzip xrechnung-3.0.2-validator-configuration-2026-08-31.zip -d xrechnung-config
java -jar validator-1.6.3-standalone.jar -s xrechnung-config/scenarios.xml -r xrechnung-config -h rechnung.xml
Der Validator schreibt rechnung-report.xml und dank -h auch rechnung-report.html, einen lesbaren Prüfbericht mit allen Meldungen. Der Rückgabewert ist 0, wenn die Rechnung akzeptiert wird, sonst die Zahl der abgelehnten Dateien – praktisch für Skripte. Mit -D läuft der Validator als kleiner HTTP-Dienst.
Zwei Stolpersteine:
- Gib den Konfigurationsordner ohne
..im Pfad an, sonst bricht der Validator mit „is not within the configured repository“ ab. - Die XRechnung-Konfiguration kennt XRechnung und reine EN-16931-Rechnungen, also auch das ZUGFeRD-Profil EN 16931. Eine korrekte ZUGFeRD-Rechnung im Profil BASIC oder EXTENDED lehnt sie ab, weil kein Szenario passt. Das sagt nichts über die Rechnung aus, sondern nur, dass dieses Regelwerk sie nicht prüft.
Ein ZUGFeRD-PDF prüft der KoSIT-Validator nicht direkt. Das XML ziehst du vorher heraus, zum Beispiel mit pdfdetach aus den poppler-utils:
pdfdetach -list rechnung.pdf
pdfdetach -saveall rechnung.pdf
Die eingebettete Datei heisst meist factur-x.xml oder zugferd-invoice.xml.
Mustang: ZUGFeRD samt PDF prüfen
Mustang (Apache 2.0) ist eine Java-Bibliothek mit Kommandozeilenwerkzeug. Bei einem ZUGFeRD-PDF prüft es beides, das PDF/A-3 und das eingebettete XML, und es kennt auch die Profile, für die die XRechnung-Konfiguration kein Szenario hat:
java -Xmx1G -Dfile.encoding=UTF-8 -jar Mustang-CLI-2.26.0.jar --no-notices --action validate --source rechnung.pdf
Auch hier ist der Rückgabewert 0 für gültige Dateien. Mit --action visualize erzeugt Mustang eine HTML-Ansicht, mit --action pdf ein lesbares PDF aus dem XML.
OpenXRechnungToolbox: noch da, aber pausiert
Die grafische Toolbox aus dem ersten Artikel (GPL-3.0) zeigt XRechnungen an, prüft sie und rechnet Leitweg-IDs nach. Laut ihrer GitHub-Seite ist die Weiterentwicklung derzeit pausiert; die letzte Version 3.0.0 stammt vom Oktober 2024. Zum Lesen reicht sie weiterhin. Für eine Prüfung nach dem aktuellen Regelwerk nimmst du besser den KoSIT-Validator direkt.
Im Browser, ohne Installation
Offenlegung: Diesen Viewer betreibe ich selbst.
Wer auf einem fremden Rechner nur schnell eine XRechnung lesen will, kann einen Viewer im Browser nehmen, etwa normapi.com/de/xrechnung-viewer. Er liest UBL, CII und das XML aus ZUGFeRD-PDFs direkt im Browser; die Datei wird zum Anzeigen nicht hochgeladen. Erst ein Klick auf „Prüfen“ schickt sie an den Server, der sie mit dem KoSIT-Regelwerk prüft und danach verwirft. Der Viewer ist kostenlos und braucht kein Konto. Seine Seiten laden keine Analyse-Software, setzen keine Cookies und speichern nichts auf deinem Gerät; der Server zählt nur, wie oft sie aufgerufen werden und von welcher Website. Quelloffen ist der Viewer allerdings nicht – wer das braucht, bleibt bei den Werkzeugen oben.
Fazit
Für den Empfang von E-Rechnungen gibt es unter Linux alles Nötige als freie Software: Quba zum Anschauen und Prüfen am Desktop, den KoSIT-Validator für die Prüfung gegen das offizielle Regelwerk, auch im Skript, und Mustang für ZUGFeRD-PDFs samt PDF/A. Alles läuft offline.
Quellen:
https://github.com/ZUGFeRD/quba-viewer/releases/tag/2.0.0
https://github.com/itplr-kosit/validator/blob/main/docs/cli.md
https://github.com/itplr-kosit/validator-configuration-xrechnung/releases/tag/v2026-08-31
https://www.mustangproject.org/commandline/
https://github.com/jcthiele/OpenXRechnungToolbox
Titelbild: Prüfbericht des KoSIT-Validators 1.6.3 (rechnung-report.html aus dem Befehl im Artikel), eigener Screenshot
