Mustang: der Open-Source-Validator hinter der Prüfung

Wer sagt, dass Ihre Rechnung gültig ist, und woran hat er das gemessen? Diese Seite beantwortet beides — samt der Grenzen, die ein Validator hat.

Wenn eine Prüfung sagt, Ihre Rechnung sei gültig, ist die nächste vernünftige Frage: Wer sagt das, und woran hat er es gemessen? Bei uns lautet die Antwort Mustang — eine quelloffene Java-Bibliothek aus dem mustangproject, veröffentlicht unter der Apache-2.0-Lizenz und auf GitHub unter der ZUGFeRD-Organisation gepflegt.

Sie hat sich zur faktischen Referenzimplementierung im Umfeld von ZUGFeRD und Factur-X entwickelt und beherrscht außerdem XRechnung und Order-X. Dieselbe Prüfung, die Ihre Datei hier durchläuft, läuft in vielen Werkzeugen der Branche.

Was Mustang tatsächlich prüft

Der Validator führt genau die drei Schichten aus, die unter So funktioniert die Prüfung beschrieben sind — nacheinander und mit unterschiedlichen Mitteln:

SchichtWas geprüft wirdWomit
Containergültiges PDF/A-3: eingebettete Schriften, Farbprofile, XMP-Metadaten, korrekt angemeldeter XML-AnhangveraPDF
Schemadas eingebettete CII-XML gegen sein XSD: Wohlgeformtheit, Elemente am richtigen Platz, richtige DatentypenXML-Schemavalidierung
Geschäftsregelndie Regeln der EN 16931 samt nationaler Ausprägungen: Summen, Steuerkategorien, PflichtangabenSchematron

Die Reihenfolge ist keine Kosmetik. Ist der Container defekt, gibt es womöglich gar kein belastbares XML, das man begutachten könnte — ein Befund der dritten Schicht beschreibt dann eine Datei, die ohnehin niemand einlesen kann. Deshalb liest man den Bericht von oben nach unten.

Die Version des Validators ist nicht die Version des Formats

Das ist die häufigste Verwirrung rund um Mustang, und sie taucht regelmäßig in Verkaufsunterlagen auf. Zwei Nummernreihen, die nichts miteinander zu tun haben:

  • Mustang wird in der 2.x-Reihe entwickelt. Aktuell ist die Bibliothek 2.26.0 vom 25. August 2026 — sie unterstützt ZUGFeRD 2.5.0, ZUGFeRD 1, Factur-X 1 und CII XRechnung 3.0.2. Der zugehörige Mustangserver 1.8.3 vom 29. August 2026 prüft gegen Schematron EN 16931 v1.3.16 und das korrigierte ZUGFeRD 2.5.2.
  • ZUGFeRD und Factur-X werden getrennt nummeriert und etwa halbjährlich aktualisiert — aktuell 2.5.2 beziehungsweise 1.09.2, anzuwenden seit dem 1. September 2026.

Eine Mustang-Version 3.x gibt es nicht. Wer Ihnen „Mustang 3“ nennt, verwechselt die Nummer des Werkzeugs mit der eines Formats — oder hat von jemandem abgeschrieben, der das getan hat. Auf unserer Seite läuft Mustang in der 2.x-Reihe.

Warum ausgerechnet dieses Werkzeug

Ein Validator ist eine Vertrauensfrage: Er sagt Ihnen, ob ein Dokument gültig ist, und Sie können das nicht selbst nachrechnen. Drei Gründe sprechen für Mustang:

  • Es ist quelloffen. Welche Regeln angewendet werden, lässt sich nachlesen — es ist keine Blackbox, die ein Urteil ausspuckt.
  • Es benutzt die offiziellen Regelwerke, nicht nachgebaute. Die Schematron-Regelsätze der EN 16931 kommen von dort, wo sie herausgegeben werden.
  • Es wird im Gleichschritt mit den Formaten gepflegt. Wenn eine neue ZUGFeRD-Fassung erscheint, folgt die Anpassung — das ist der Unterschied zwischen einem Werkzeug und einem Stand der Dinge von vorgestern.

Dazu kommt ein praktischer Punkt: Weil dieselbe Bibliothek in vielen Häusern läuft, ist die Wahrscheinlichkeit hoch, dass Ihr Empfänger gegen dasselbe Regelwerk prüft wie Sie. Ein grünes Ergebnis hier bedeutet dann etwas.

Was eine bestandene Prüfung nicht heißt

Diese Grenze wird in Werbetexten gern übersprungen, und sie ist der Grund, warum eine formal einwandfreie Rechnung trotzdem zurückkommt:

  • Konformität ist nicht Richtigkeit. Eine Datei kann jede Regel bestehen und trotzdem den falschen Preis, das falsche Datum oder den falschen Kunden tragen. Rechnen kann der Validator; wissen, was richtig ist, kann er nicht.
  • Gültig ist nicht angenommen. Ein Empfänger darf zusätzlich eine Bestellnummer, eine bestimmte Referenz oder ein bestimmtes Profil verlangen — das sind seine Regeln, nicht die der Norm.
  • Hinweise sind keine Fehler. Ein Bericht trennt fatale Befunde von Anmerkungen; Letztere stammen oft aus einer nationalen Ausprägung, die für Ihr Dokument gar nicht gilt. Sie auf null bringen zu wollen ist die häufigste Art, einen Nachmittag an eine längst gültige Datei zu verlieren.

Wie man den Bericht liest

Jeder Befund nennt zwei Dinge: einen Regelcode und eine Stelle im XML. Die Stelle sagt, wo; der Code sagt, warum. Die Codefamilien und die Fehler, die in echten Dokumenten wirklich vorkommen, stehen in Geschäftsregeln der EN 16931.

Der richtige nächste Schritt ist fast nie die Datei, sondern das System, das sie erzeugt hat: die fehlende USt-IdNr. gehört ins Firmenprofil, die Rundungsstufe in die Rechnungssoftware. Das XML von Hand nachzubessern erzeugt ein Dokument, dessen sichtbare Seite nicht mehr zu seinen Daten passt — siehe Rechnung prüfen.

Mustang selbst benutzen

Mustang gibt es als eigenständiges Kommandozeilen-Werkzeug und als Bibliothek zum Einbetten. Wer eine eigene Integration baut oder Dateien im Stapel prüfen will, ist damit gut bedient — es ist dieselbe Prüfung, nur ohne Oberfläche.

Wer das nicht selbst betreiben möchte: Dieselbe Prüfung läuft hier im Browser, ohne Anmeldung, mit lesbarem Bericht statt Konsolenausgabe. Die Datei wird ausschließlich für die Prüfung verwendet; eine Kopie behalten wir nicht.

Häufige Fragen

Muss ich Java installieren, um meine Rechnung zu prüfen?

Nein. Das gilt nur, wenn Sie Mustang selbst betreiben wollen. Für eine einzelne Datei genügt der Upload hier.

Prüft Mustang auch XRechnung?

Ja, reine XML-Dateien eingeschlossen. Bei einem XML-Upload entfällt die Containerschicht — es gibt kein PDF zu prüfen —, der Rest läuft wie gehabt.

Was ist veraPDF?

Der quelloffene Prüfer für PDF/A, den Mustang für die Containerschicht einsetzt. Er beantwortet die Frage, ob die Datei ein gültiges PDF/A-3 ist — nicht, ob die Rechnung darin stimmt.

Warum meldet die Prüfung eine Regel, die mein Empfänger gar nicht anwendet?

Weil nationale Ausprägungen eigene Regeln mitbringen und der Bericht sie nennt, sobald das Profil sie vorsieht. Entscheidend ist die Einstufung: Fatal heißt ungültig, ein Hinweis heißt ungewöhnlich, aber zulässig.

Ändert sich das Ergebnis, wenn eine neue Formatversion erscheint?

Es kann. Ein Korrigendum wie ZUGFeRD 2.5.2 räumt Widersprüche in Prüfregeln auf — eine Datei, die vorher eine Meldung erzeugte, kann danach sauber sein oder umgekehrt. Deshalb ist es sinnvoll, vor dem Versand zu prüfen und nicht einmalig zu Beginn.

Kann ich mich auf ein grünes Ergebnis verlassen?

Auf das, was es aussagt: Die Datei entspricht der Norm und dem Profil, das sie angibt. Ob die Rechnung inhaltlich stimmt und ob Ihr Empfänger sie annimmt, sind zwei weitere Fragen — siehe oben.

Kurz zusammengefasst

  • Mustang ist quelloffen (Apache 2.0) und die faktische Referenz im ZUGFeRD-Umfeld.
  • Drei Schichten, drei Werkzeuge: veraPDF für den Container, XSD für das Schema, Schematron für die Geschäftsregeln.
  • Die Nummer des Validators ist nicht die des Formats. Bibliothek 2.26.0 (25.08.2026), Formate 2.5.2 / 1.09.2. Eine Version 3.x von Mustang existiert nicht.
  • Bestanden heißt normgerecht, nicht richtig und nicht angenommen.
  • Der Bericht nennt Code und Stelle — behoben wird die Ursache im erzeugenden System, nicht das XML.

Dieselbe Prüfung ohne Installation ausprobieren? Datei ohne Anmeldung hochladen — oder ein kostenloses Konto anlegen, wenn Sie den Verlauf behalten wollen.