2.20.0

Das neue Feature ist BT-17 (tender or lot reference)-Unterstützung (#923).
Dieses Release behebt auch ein problem mit der “nonshaded” (Abhängigkeiten nicht beinhaltende) Version (#950 “ClassNotFoudException while running the PDFValidator”), aktualisiert auf pdfbox 3.0.6, ändert den Rückgabewert von getCashDiscounts zum CashDiscount-Object statt des Interfaces, fügt eine weitere bekannte ZUGFeRD-Erstellersoftware (eine “signature”, #959) ein und korrigiert die Berechnung von Zuschlägen auf Produktebene (#960).

Mustangserver 1.7.3

Am heutigen 20.10.2025 haben wir Version 1.7.3 unseres E-Rechnungs-Server Mustangserver veröffentlicht.

Wichtige Änderungen betreffen Skonti, die jetzt nicht nur geschrieben sondern auch ins JSON-Feld cashdiscounts geparsed werden. Die Validierung wurde auf XRechnung 3.0.2 aktualisiert und rein “akademische” PDF/A-Fehler sind jetzt nur noch Warnungen.

Mustangserver 1.7.3 basiert auf der neusten Version von Mustangproject, 2.19.1, die auch die folgenden Detailkorrekturen beisteuert:

  • added JSONIgnore for Products intra community supply, reverse charge and invoice’s isValid (which rather means isComplete, by the way)
  • #917/#940 percentual allowance/charges actualamount not multiplied with qty/Some quantities and allowances may cause Non-terminating decimal expansion

  • #915 Update SubjectCode.java to add subject code ‘PMT’
  • #921 Treat schematron rule flag “information” as notice.
  • #926 reject FX with UBL
  • upgrade apache fop 2.10 to 2.11
  • #931 Enable setting and reading Additional Document Description.
  • #933, #413, #557, #765 Format list of dates for PDFs individually/Bug: “FORG0001: Invalid date (Day must be two digits)” bei der Transformation von ZUGFeRD nach PDF/Visualize XML into PDF throws error if XML contains multiple SpecifiedTradePaymentTerms blocks/Exception when generating PDF
  • make Line Calculation, e.g. total line net amount, accessible via JSON using getCalculation
  • #943/#944 ZUGFeRD2PullProvider getXML() does not set fixed Encoding / Use UTF-8 when creating new Strings from byte[].
  • #893 Tradeparty globalID is not read from JSON
  • #905 Parse product level charges/discounts into JSON
  • #869 Import Account Holder returns SellerTradeParty.name instead of AccountHolder
  • #861 Multiple problems with Product.CountryOfOrigin
  • #882 Change order of ApplicableProductCharacteristic and DesignatedProduct…
  • #899 fix encoding error in ZUGFeRDInvoiceImporter.java
  • #908 Validation: Make clear when embedded file name is wrong
  • #909 ShipToTradeParty should not contain URIUniversalCommunication
  • #821 ERROR org.mustangproject.ZUGFeRD.ValidationLogVisualizer – Failed to create PDF

Mustangserver jetzt auch mit großen Dateien und Lasten

Mustangserver bietet mit der Komponente „Mustangserver-docs“ die Möglichkeit, von normalem PDF nach PDF/A zu konvertieren.

Einige Nutzer erhielten Timeouts, wenn die zu konvertierenden PDFs mehrere Dutzend Seiten überschritten.

Wir haben diese Komponente jetzt komplett überarbeitet.

Version 2.0 von „Mustangserver-docs“

  1. entkoppelt Anfrage und Abruf mit einer sogenannten Queue und vermeidet so nahezu alle Timeouts
  2. nutzt einen Netzwerkdateispeicher (sogenannte S3-Buckets) als Quelle und Ziel für die Konvertierung.
    Dies ermöglicht Autonomie, in der der Nutzer seine eigene S3-Instanz angeben kann.
  3. Ermöglicht die Buchung allein der PDF-Funktionalität, d. h. von „Mustangserver-docs“. Bisher musste „Mustangserver-docs“ zusätzlich zu Mustangserver erworben werden. Mustangserver bietet zusätzliche Funktionen für die elektronische Rechnungsstellung, wie das Lesen, Schreiben, Validieren und Konvertieren von elektronischen Rechnungen (auch von XML nach PDF/A).

Ab heute, dem 14. Oktober 2025, können Sie sich für einen Testzeitraum anmelden, indem Sie im Anmeldeformular einfach die Option „PDF“ ankreuzen.

Was ist Mustangserver?

Mustangserver bietet Funktionen zum Lesen, Schreiben, Konvertieren und Validieren elektronischer Rechnungen wie Factur-X/ZUGFeRD-, XRechnung- oder EN16931-Dateien.

Es wird von den Autoren von Mustangproject und Quba-Viewer veröffentlicht und kann als SaaS, in der Cloud oder mit der Inhouse-Option von Mustangservers auch komplett „off-grid“ betrieben werden.

Was ist PDF/A?

PDF/A macht PDF-Dateien archivierbarer. PDF/A-Dateien können mit jedem Viewer gelesen werden, dürfen keine nicht-eingebetteten Objekte wie Schriftarten enthalten und sind für viele elektronische Rechnungen erforderlich.

In Deutschland werden ab 2028 Papierrechnungen und herkömmliche PDF-Dateien für inländische B2B-Rechnungen verboten sein. Stattdessen wird XML oder das PDF/A-basierte Factur-X/ZUGFeRD-Format verpflichtend.

Was ist Ghostscript?

Ghostscript ist ein vielseitiges PDF-Tool und Interpreter für die Seitenbeschreibungssprachen PostScript und Portable Document Format (PDF).

Das 1988 gestartete Projekt ist der einzige Open-Source-PDF-Konverter, der Vektoren virtuell drucken und zu einer validen, von Grund auf neu zusammengestellten PDF/A-Datei zusammenfügen kann.
Dieser Prozess ist so zuverlässig und sicher, dass er

  1. z. B. als Druckertreiber auf Linux-Systemen und
  2. in Software verwendet wird, um potenziell schädliche PDFs sicherer zu machen.

Was ist S3?

Simple Storage Service (S3) ist eine offene Standardspezifikation für Filehosting-Dienste. Sie legt fest, wie der globale Dateizugriff adressiert, authentifiziert und autorisiert, gelesen, aufgelistet und beschrieben, protokolliert, versioniert, verschlüsselt, im Lebenszyklus behandelt, per Proxy übertragen und/oder repliziert werden kann.

S3-Speicher kann online für nur 60 Cent für 1 GB über 10 Jahre erworben werden.

Eine Reihe von Open-Source-Server- (und Client-)Implementierungen ermöglichen den Betrieb von S3 auch auf eigener Hardware, sogar auf einer lokalen Installation.

2.19.1

Dieses Release enthält mehrere kleine Aktualisierungen: neben einigen internen Bereinigungen (#914, #932, #939, #943, Aktualisierung von Apache FOP) werden Factur-X Dateien mit UBL-Inhalten jetzt korrekterweise abgelehnt (#926), Skonti werden jetzt nicht mehr nur geschrieben sondern auch gelesen (#692) und die Berechnung von Positionsrabatten/-Zuschlägen wurde korrigiert (#917).

Wie immer können weitere Details der History entnommen werden. Mustangproject 2.19.1 kann mit Maven Central integriert oder für die Kommandozeile heruntergeladen werden.

FrOSCon 2025: 17.08.

Der englische Vortrag auf der FrOSCon 2018 in Siegburg bei Bonn ist ja schon etwas her und sogar der diesjährige Vortrag auf der FOSDEM in Brüssel (auf Englisch) ist nicht mehr ganz aktuell.

Am Sonntag, 17.08.2025 um 11:15 folgt daher der nächste E-Rechnungs-Vortrag auf der übrigens kostenfreien FrOSCon 2025, diesmal auf deutsch: Danke an dieser Stelle an die FrOSCon.

In diesem Post werden spätestens am 16.08. die Quellen und Folien (Mustang und Quba werden am Rande erwähnt werden) und im weiteren Verlauf nach der Veranstaltung auch der Link zum Video veröffentlicht.
[Update am 16.08.]
Slides.
[Update am 18.08.]
Das Video befindet sich auf https://media.ccc.de/v/froscon2025-3244-pflichtupload_staats-cloud_e-rechnung_stufen_2_3_und_4.

Text-Quellen:

[1]
https://www.batch.co.uk/web/images/PDFs/EU-report.pdf
[2]
https://eur-lex.europa.eu/legal-content/DE/TXT/HTML/?uri=CELEX:32014L0055
[3]
https://www.oecd.org/tax/forum-on-tax-administration/publications-and-products/Italy-Electronic-invoicing-May-2021.pdf
[4]
Richtlinie (EU) 2025/516 https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=OJ:L_202500516
[5]
https://www.recht.bund.de/bgbl/1/2024/108/VO.html Art 23 S. 23ff
[6]
https://www.dinmedia.de/de/norm/din-en-16931-1/327729047
[7]
https://www.dinmedia.de/de/vornorm/din-cen-ts-16931-2/274991011
[8]
https://xeinkauf.de/app/uploads/2024/07/302-XRechnung-2024-06-20.pdf
[9]
https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Steuerarten/Umsatzsteuer/Umsatzsteuer-Anwendungserlass/2025-06-25-ENTWURF-einfuehrung-oblig-e-rechnung.pdf?__blob=publicationFile&v=4
[10]
https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Steuerarten/Umsatzsteuer/2024-10-15-
einfuehrung-e-rechnung.html
[11]
https://quba-viewer.org/
[12]
openparliament.tv https://de.openparliament.tv/media/DE-0200129018?q=verpflichtende+elektronische+Rechnung&t=114. / Protokoll https://dserver.bundestag.de/btp/20/20129.pdf#P.16135
[13]
https://www.bundesfinanzministerium.de/Monatsberichte/2022/09/Inhalte/Kapitel-3-Analysen/3-4-umsatzsteuerbetrug-elektronisches-meldesystem-pdf.pdf?__blob=publicationFile&v=5
[14]
https://www.fakturama.info/
[15]
Verordnung (EU) 2025/517 https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=OJ:L_202500517&qid=1750929799829
[16]
https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Weitere_Steuerthemen/Abgabenordnung/AO-Anwendungserlass/2024-03-11-aenderung-gobd.html
[17]
https://dserver.bundestag.de/btd/20/127/2012742.pdf
[18]
https://www.mustangproject.org/
[19]
Durchführungsverordnung (EU) 2025/518 https://eur-lex.europa.eu/legal-content/DE/TXT/PDF/?uri=OJ:L_202500518
[20]
https://ec.europa.eu/digital-building-blocks/sites/display/DIGITAL/Registry+of+supporting+artefacts+to+implement+EN16931
[21]
https://www.ferd-net.de/download-zugferd ZF Spezifikation 2.3.3, S. 21, Prinzip 4, Identität obliegt dem Aussteller
[22]
https://eur-lex.europa.eu/legal-content/DE/TXT/HTML/?uri=CELEX:52022PC0701
[23]
Stellungnahme der acht Spitzenverbände der Deutschen Wirtschaft zum Referententwurf https://www.bundesfinanzministerium.de/Content/DE/Gesetzestexte/Gesetze_Gesetzesvorhaben/Abteilungen/Abteilung_IV/20_Legislaturperiode/2023-09-08-WtChancenG/0-Gesetz.html
[24]
Kollmann https://www.pagero.com/downloads/documents/compliance/Next_Generation_Model-Decentralised_CTC_and_Exchange_v1.pdf
[25]
https://peppol.org/wp-content/uploads/2022/08/The-Netherlands-Peppol-Authority-Specific-Requirements.pdf
[26]
https://peppol.org/learn-more/country-profiles/germany/
[27]
https://www.it-planungsrat.de/fileadmin/beschluesse/2022/Beschluss2022-31_Evaluation_Peppol.pdf s. 4
[28]
https://www.eespa.eu/news-events/news-item/2022/08/03/A-NEXT-GENERATION-MODEL-FOR-ELECTRONIC-TAX-REPORTING-AND-INVOICING-DCTCE-v20
[29]
PDPs Plateforme de Dématérialisation Partenaire https://sharedserviceslink.com/blog/pdp-providers-list-for-e-invoicing-compliance-in-france-
[30]
PPF Portail Public de Facturation https://www.heropay.eu/en/blog/ppf-electronic-invoicing
[31]
SecNumCloud https://www.openbee.com/en/news/secnumcloud-e-invoicing/
[32]
https://zugferd.org/

Bildquellen:

[a]
ChatGPT
[b]
ChatGPT
[c]
McConnell 1996, Illustration zu Code&fix, in Rapid Development: Taming Wild Software Schedules
[d]
Spiegel, https://www.spiegel.de/fotostrecke/schilderwald-kurios-vor-tarzangebruell-wird-gewarnt-fotostrecke-530.html

Nachtrag am 13.10.2025: Einige Wochen später gab Raphael Michel ohne diesen Vortrag zu kennen einen sehr ähnlichen Vortrag auf den MRMCD 2025.

Mustangserver 1.7.1

12.07.2025: Wir sind stolz, die sofortige Verfügbarkeit der neuen Version 1.7.1 unserer E-Rechnungs-REST-API Mustangserver bekannt zu geben.

Die Veröffentlichung bringt nicht nur alle Verbesserungen von Mustangproject 2.18.0, sondern übertrifft es leicht: Eine Korrektur wird erst Teil der nächsten Mustangproject-Version sein.

Wie in der Mustangproject-Ankündigung erwähnt, nutzen wir bereits 2020 eingeführten Code, um auch Warnungen bei der Validierung von Rechnungen auszulösen, die in einer bestimmten Weise falsch berechnet wurden. Unter anderem gab es auch eine Korrektur bei der Berechnung der relativen Artikelzuschläge/-zuschläge.

Mustangerver kann E-Rechnungen erstellen, lesen, konvertieren und validieren. Weitere Informationen und ein kostenloser vierwöchiger Testzeitraum sind auf der Mustangserver-Homepage erhältlich.

2.18.0

Am 14.07.2025 haben wir Version 2.18.0 unseres plattformunabhängigen open-source e-Rechnungsprojekts “Mustangproject” veröffentlicht.

Seit November 2020 werfen wir ja bereits Fehlermeldungen beim Import falsch gerechneter Rechnungen.

Trotz unserer abgelehnten Anfrage im Juni 2023 diese spezielle Prüfung in den Standard aufzunehmen, werfen wir jetzt auch beim Validieren eine Warnung wenn bei einer Position Menge * Einzelpreis (bezogen auf die Basismenge zuzüglich Zuschlage abzüglich Rabatte, gerundet auf zwei Nachkommastellen) falsch ist.

Diese Prüfung können wir jetzt durchführen nachdem wir mit issue 887 die prozentuale Berechnung von Positionsrabatten korrigiert haben. Im import werden die entsprechenden Arithmeticexceptions (nicht mehr “Arithmetricexceptions”) jetzt auch nicht mehr vorzeitig abgefangen, sodass sie durch die Anwendung behandelt werden können.

Zusätzlich danken wir allen Beitragenden für die folgenden Korrekturen:

  • BT-90 CreditorReferenceID lesen können
  • #871 schema validierung ignoriert external entities nicht
  • #868 version korrigiert in History.md
  • #729 Aktualisierungen betreffs SpecifiedTradeSettlementHeaderMonetarySummation und SpecifiedTradeSettlementPaymentMeans
  • #863 LineCalculator wirft Nullpointer NPE wenn Produkt null ist (seit 2.17.0)
  • #731 Falscher Übersetzungsschlüssel bei Visualisierung von XML in PDF(xr:Business_process_type)
  • #865 sevdesk als erkanntes Autorenprogramm hinzugefügt
  • #849 Rechenfehler ingnorieren beim extrahieren von XML aus PDF
  • #856 Faxnummer des Ansprechpartners lesen.
  • #850/#843 Korrektur bei Sprachwechsel bei HTML-Ausgabe
  • #855 Leere Elemente in XML-Ausgabe unterdrücken
  • #874 PDNameTreeNodes überspringen falls Names null oder leer sind
  • #830 Ungültiges generiertes XML: vat-category-code der Positionen mit !=0%
  • #726 IBAN geht bei Umwandlung von CII nach UBL verloren
  • #885 JSON-Duplikate der Attribute betreffend Positions-Rabatte und Zuschläge

Mustangproject jetzt eine Million Dollar wert?

Der Open-Source-Dienstleister OpenHub zeigt eine automatische Schätzung, wie viel Arbeit in die von ihm gelisteten Projekte geflossen sein müssen. Dies ist natürlich eine sehr grobe Schätzung (basierend auf der Anzahl Codezeilen und dem Basic COCOMO-Modell), aber mittlerweile überschreitet der angenommene Aufwand, der in Mustangproject geflossen ist, eine Million Dollar. Am heutigen, Samstag, 5. Juli 2025, mit den OpenHub Standardwerten von 18 Mannjahre und 1.004.027 Dollar ausgegangen.

Selbst bei Annahme eines sehr breiten Fehlerbereichs sind in dieser Schätzung die Arbeit an der Website, diverse Reden und Veröffentlichungen und Beiträge zum Beispiel zur Factur-X/ZUGFeRD-Standardisierung nicht enthalten.

Trotzdem vielen Dank an alle Mitwirkenden! Und vielen Dank für den Beitrag der (automatischen) Schätzung!