Gemessen, nicht behauptet

Validierungs-Engines im Vergleich

Beleggo, Mustangproject, phive und 16 weitere Engines im Vergleich

19 Validierungs-Engines prüfen dieselben 1.665 E-Rechnungen aus dem Beleggo-Datenkit — XRechnung, ZUGFeRD / Factur-X, Peppol BIS 3 und nationale CIUS, gültige wie fehlerhafte — auf derselben Maschine, ein Dokument nach dem anderen. Der offizielle KoSIT-Validator läuft als Referenz mit. Mustangproject und phive, die verbreitetsten Open-Source-Validatoren, stehen danach im Detail neben Beleggo.

Gemessen am 22. Oktober 2026 auf linux x64, Intel(R) Core(TM) Ultra 9 185H × 22, 62 GiB, Node v24.22.1

Alle 19 Engines im Überblick

EngineLaufzeitLizenzProfileRichtigFehlalarmeÜbersehenRegel benanntMedianSpeicher
Beleggoartefacts 2026-08-31JavaScriptproprietaryalle100 %1.655 Dokumente001.0865,7 ms962 MB
KoSIT Validator1.6.3 · Validator Configuration XRechnung 3.0.2 2026-09-02 · ReferenzJava 11+Apache-2.01 / 1198,6 %285 Dokumente004219,2 ms1.397 MB
core-invoice (Rust CLI)2.0.3RustMIT OR Apache-2.02 / 1190,3 %874 Dokumente33523412,6 ms33 MB
phive4.6.0Java 17+Apache-2.0alle89,8 %1.655 Dokumente01609158,2 ms1.099 MB
dealerweb/einvoice1.1.0PHP 8MIT7 / 1188,3 %1.176 Dokumente313547928 ms152 MB
Mustangproject2.26.0Java 11+Apache-2.06 / 1184,8 %1.067 Dokumente1015243950 ms1.343 MB
en16931 (npm)0.1.0Node.jsMIT AND EUPL-1.21 / 1184,6 %765 Dokumente211339977 ms361 MB
@kontor-mcp/core1.0.4Node.jsApache-2.02 / 1184,2 %1.050 Dokumente015341080 ms660 MB
verifyhash-einvoice0.2.9Python 3Apache-2.02 / 1183,1 %1.050 Dokumente51724111,1 ms63 MB
verifaktura0.1.8Node.jsApache-2.02 / 1181,9 %810 Dokumente014742831 ms435 MB
EU ITB eInvoicing validator1.14.0-SNAPSHOT (2026-10-21) · CEN 1.3.16Java 17+EUPL-1.21 / 1181,3 %765 Dokumente0143417118 ms1.234 MB
@attestwire/en169310.14.0Node.jsMIT3 / 1180,2 %1.159 Dokumente122183752 ms223 MB
einvoice-kit0.1.3Node.jsMIT1 / 1180 %765 Dokumente11523630,3 ms189 MB
speedata/einvoicev0.0.22GoBSD-3-Clause3 / 1176,8 %1.159 Dokumente272423345 ms51 MB
stampbench (@stampbench/core)0.1.1Node.jsMIT2 / 1171,8 %1.050 Dokumente132832110,7 ms407 MB
en16931 (Rust CLI)0.6.0RustMIT OR Apache-2.03 / 1168,8 %1.159 Dokumente1442183212,8 ms23 MB
@fin.cx/einvoice11.1.1Node.jsMIT2 / 1159,9 %1.050 Dokumente253961065,1 ms383 MB
KoSIT Validator + ZUGFeRD configuration1.6.3 · Validator Configuration ZUGFeRD 2.5.2 2026-06-11 · ReferenzJava 11+Apache-2.04 / 1152,9 %17 Dokumente08634,7 ms975 MB
factur-x (akretion)6.8Python 3BSD-2-Clause4 / 1152,9 %17 Dokumente08140,5 ms69 MB

„Profile“: wie viele der 11 Profile im Datenkit die Engine selbst zu prüfen angibt. „Richtig“: Anteil der Dokumente in diesen Profilen, bei denen das Urteil (gültig oder fehlerhaft) dem erwarteten entspricht; ein Dokument, das die Engine nicht beurteilen kann, zählt als falsch. Weil jede Engine andere Profile abdeckt, beziehen sich die Prozentwerte auf unterschiedlich viele Dokumente. Der KoSIT-Validator ist die amtliche Referenz für XRechnung. Gemessen 22.–23. Oktober 2026.

„Regel benannt“: von 1.086 fehlerhaften Mustern im ganzen Kit, wie viele die Engine ablehnt und dabei die verletzte Regel nennt. „Median“: Laufzeit pro Dokument nach dem Aufwärmen; „Speicher“: Spitze des ganzen Prozesses.

Nicht auf dem aktuellen Kit gemessen und deshalb nicht in der Tabelle: International.EInvoicing (.NET CLI): kein .NET-SDK auf dem Messrechner (zuletzt am 27.09.2026 über 722 Dokumente); @aifind/mustangjs: keine Antwort auf eine Rechnung mit 1.000 Positionen (DK-790) binnen 15 Minuten (zuletzt am 27.09.2026 über 722 Dokumente); Klarfakt: kein .NET-SDK auf dem Messrechner (zuletzt am 29.09.2026 über 722 Dokumente); john-wink/en16931-php: sein composer.lock lässt sich auf der PHP-Version des Messrechners nicht installieren (zuletzt am 29.09.2026 über 722 Dokumente); en16931 (Dart): kein Dart-SDK auf dem Messrechner (zuletzt am 29.09.2026 über 722 Dokumente).

Im Detail: Beleggo, Mustangproject und phive

Richtige Urteile

KennzahlBeleggoMustangprojectphiveVorne
Richtige Urteile, alle Dokumentegegen das erwartete Urteil jedes Musters1.655 / 1.665 (99,4 %)1.102 / 1.665 (66,2 %)1.486 / 1.665 (89,2 %)Beleggo
Richtige Urteile in Mustangs Profilennur die Profile, die Mustang selbst prüft1.067 / 1.077 (99,1 %)905 / 1.077 (84 %)902 / 1.077 (83,8 %)Beleggo
Übereinstimmung mit dem KoSIT-Validatorauf allen XRechnung-Dokumenten — dem Bereich, für den der amtliche Validator zuständig ist281 / 281 (100 %)264 / 281 (94 %)268 / 281 (95,4 %)Beleggo
Fehler mit der richtigen Regel benanntnicht nur abgelehnt, sondern die verletzte Regel genannt1.086 / 1.086 (100 %)439 / 1.086 (40,4 %)915 / 1.086 (84,3 %)Beleggo
Geprüfte Profile im KitFormate, deren eigene Regeln die Engine kennt11 / 116 / 1111 / 11Beleggo · phive

Geschwindigkeit und Aufwand

KennzahlBeleggoMustangprojectphiveVorne
Laufzeit pro Dokument (Median)nach dem Aufwärmen5,7 ms50 ms8,2 msBeleggo
Laufzeit pro Dokument (95 %)die langsamen Dokumente12 ms82 ms17 msBeleggo
Dokumente pro Sekundeein Dokument nach dem anderen113,61674,1Beleggo
Rechenzeit pro Dokumentaller Threads zusammen12 ms124 ms37 msBeleggo
Einzelaufruf (Start + erstes Dokument)was ein Kommandozeilenaufruf kostet187 ms3.541 ms4.322 msBeleggo
Arbeitsspeicher (Spitze)des ganzen Prozesses962 MB1.343 MB1.099 MBBeleggo
InstallationsgrößeRegelwerke und Laufzeit, ohne Node.js bzw. Java56 MB56 MB58 MBBeleggo · Mustangproject

Beleggo führt die amtlichen Schematron-Regeln als nach JavaScript übersetzten Code aus, gelesen aus denselben Stylesheets, die Saxon-JS ausführt, und auf allen Testkorpora mit Saxon-JS als Referenz gegengeprüft: gleiche Befunde, gleicher Text, gleiche Reihenfolge. Ein Dokument, das die übersetzten Regeln nicht genau beurteilen können, geht an Saxon-JS. Die Rechenzeit liegt über der Laufzeit, weil die Speicherbereinigung von Node.js auf eigenen Threads läuft. Im Browser läuft dieselbe Engine.

Was jede Engine kann

BeleggoMustangprojectphive
EN 16931 (UBL und CII)jajaja
XRechnung 3 mit den amtlichen KoSIT-Schweregradenjateilweiseteilweise
Peppol BIS 3 und Peppol-Länderregelnjaneinja
NLCIUS, CIUS-RO, HR-CIUS, CIUS-PTjaneinja
Factur-X-/ZUGFeRD-Profile (XSD und Schematron)jajaja
Sichtbare PDF-Seite gegen das XML abgleichenjaneinnein
Prüfziffern (IBAN, USt-IdNr., Leitweg-ID, Steuernummer …)janeinnein
Läuft im Browser, ohne Upload, ohne Serverjaneinnein
Vollständige PDF/A-3-Prüfung (alle Regeln der veraPDF-Profile)jajanein
ZUGFeRD 1.0 und Order-Xjajanein
Französische CTC-Regeln (BR-FR Flux 2) als Fehler, in UBL und CIIjateilweiseja
XRechnung-Schematron in der aktuellen Fassung (2.6.0)jateilweiseja
Peppol BIS 3 in CIIjaneinnein
EXTENDED-CTC-FR und Flux-10-E-Reporting (Frankreich)jateilweiseja
Nachrechnen jeder Position (Menge × Preis)jajanein
Warnung, die schon als künftiger Fehler angekündigt istjaneinnein
Peppol PINT (EU, A-NZ, SG, JP, MY, AE, OM) — bei Beleggo in CLI und MCP, Regeln direkt von OpenPeppol geladenjaneinja
Peppol Invoice Response und Message Level Statusjaneinja

Wo und warum sie sich unterscheiden

Mustang weicht bei 563 von 1.665 Dokumenten vom erwarteten Urteil ab, 391 davon in Profilen, die es gar nicht prüft. Die übrigen haben fünf Ursachen:

Nach Profil

ProfilDokumenteBeleggoMustangprojectphive
en16931 · cii184184126121
en16931 · ubl419419340339
en16931 · zugferd162162162161
hr-cius · ubl4545545
nlcius · ubl2020919
peppol-bis3 · cii2211
peppol-bis3 · ubl10610656104
peppol-bis3 · zugferd1111
pt-cius · ubl302302101302
ro-cius · ubl11211224112
xrechnung · cii172167155159
xrechnung · ubl100959090
xrechnung · zugferd23232323
zugferd-basic · cii1111
zugferd-basic · zugferd3333
zugferd-basicwl · cii1100
zugferd-basicwl · zugferd3300
zugferd-extended · cii2222
zugferd-extended · zugferd3333
zugferd-minimum · cii1100
zugferd-minimum · zugferd3300

Wie gemessen wurde

Datenkit 0.1.0 (8c8d13d3eed69eec), 1.665 Dokumente, mit dem erwarteten Urteil jedes Musters als Maßstab. Dieses Urteil stammt aus dem Beleggo-Projekt; damit es nicht nur Beleggo bestätigt, ist jede Abweichung von Mustang von Hand gegen die Spezifikationen geprüft, und der amtliche KoSIT-Validator läuft als unabhängige Referenz mit. Wo er anders urteilt als Beleggo, fehlt ihm die Regel: die französischen CTC-Regeln und eine Factur-X-Codeliste.

Beleggo artefacts 2026-08-31, Mustangproject 2.26.0, phive 4.6.0 (mit allen phive-rules-Modulen; das Regelwerk wählt phives eigene Dokumenterkennung), KoSIT-Validator 1.6.3 · Validator Configuration XRechnung 3.0.2 2026-09-02. Jede Engine läuft in einem eigenen Prozess, der die ganze Messung über lebt — so misst die Laufzeit die Engine und nicht den Start der Java-VM.