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 6. November 2026 auf linux x64, Intel(R) Xeon(R) Processor @ 2.10GHz × 4, 16 GiB, Node v22.23.4

Alle 19 Engines im Überblick

EngineLaufzeitLizenzProfileRichtigFehlalarmeÜbersehenRegel benanntMedianSpeicher
Beleggoartefacts 2026-08-31JavaScriptproprietaryalle100 %1.665 Dokumente001.0965,7 ms854 MB
dealerweb/einvoice1.2.2PHP 8MIT7 / 1199,2 %1.186 Dokumente01063649 ms215 MB
KoSIT Validator1.6.3 · Validator Configuration XRechnung 3.0.2 2026-09-02 · ReferenzJava 11+Apache-2.01 / 1198,6 %295 Dokumente004318 ms1.623 MB
core-invoice (Rust CLI)2.0.3RustMIT OR Apache-2.02 / 1190,3 %874 Dokumente33523452,3 ms33 MB
phive4.6.0Java 17+Apache-2.0alle89,8 %1.665 Dokumente01609258,4 ms942 MB
Mustangproject2.26.0Java 11+Apache-2.06 / 1185 %1.077 Dokumente1015244943 ms1.201 MB
en16931 (npm)0.1.0Node.jsMIT AND EUPL-1.21 / 1184,6 %765 Dokumente211340376 ms336 MB
@kontor-mcp/core1.0.4Node.jsApache-2.02 / 1184,3 %1.060 Dokumente0153420147 ms610 MB
verifyhash-einvoice0.2.9Python 3Apache-2.02 / 1183,1 %1.060 Dokumente51744191,9 ms61 MB
verifaktura0.1.8Node.jsApache-2.02 / 1181,9 %810 Dokumente014743260 ms501 MB
EU ITB eInvoicing validator1.14.0-SNAPSHOT (2026-11-05) · CEN 1.3.16Java 17+EUPL-1.21 / 1181,3 %765 Dokumente0143423193 ms938 MB
einvoice-kit0.1.3Node.jsMIT1 / 1180 %765 Dokumente11523671,1 ms150 MB
@attestwire/en169310.14.0Node.jsMIT3 / 1180 %1.169 Dokumente122223811,5 ms151 MB
speedata/einvoicev0.0.22GoBSD-3-Clause3 / 1176,8 %1.169 Dokumente272443427,7 ms49 MB
stampbench (@stampbench/core)0.1.1Node.jsMIT2 / 1171,9 %1.060 Dokumente132852191,6 ms326 MB
en16931 (Rust CLI)0.6.0RustMIT OR Apache-2.03 / 1168,9 %1.169 Dokumente1442203292,5 ms23 MB
@fin.cx/einvoice11.1.1Node.jsMIT2 / 1159,7 %1.060 Dokumente2540211011 ms372 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 ms939 MB
factur-x (akretion)6.8Python 3BSD-2-Clause4 / 1152,9 %17 Dokumente08150,3 ms66 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 6. November 2026.

„Regel benannt“: von 1.096 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.665 / 1.665 (100 %)1.112 / 1.665 (66,8 %)1.496 / 1.665 (89,8 %)Beleggo
Richtige Urteile in Mustangs Profilennur die Profile, die Mustang selbst prüft1.077 / 1.077 (100 %)915 / 1.077 (85 %)912 / 1.077 (84,7 %)Beleggo
Übereinstimmung mit dem KoSIT-Validatorauf allen XRechnung-Dokumenten — dem Bereich, für den der amtliche Validator zuständig ist291 / 291 (100 %)274 / 291 (94,2 %)278 / 291 (95,5 %)Beleggo
Fehler mit der richtigen Regel benanntnicht nur abgelehnt, sondern die verletzte Regel genannt1.096 / 1.096 (100 %)449 / 1.096 (41 %)925 / 1.096 (84,4 %)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 ms43 ms8,4 msBeleggo
Laufzeit pro Dokument (95 %)die langsamen Dokumente19 ms78 ms27 msBeleggo
Dokumente pro Sekundeein Dokument nach dem anderen77,516,868,9Beleggo
Rechenzeit pro Dokumentaller Threads zusammen18 ms93 ms33 msBeleggo
Einzelaufruf (Start + erstes Dokument)was ein Kommandozeilenaufruf kostet385 ms5.832 ms3.943 msBeleggo
Arbeitsspeicher (Spitze)des ganzen Prozesses854 MB1.201 MB942 MBBeleggo
InstallationsgrößeRegelwerke und Laufzeit, ohne Node.js bzw. Java16 MB56 MB58 MBBeleggo

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 553 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 · cii172172160164
xrechnung · ubl1001009595
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 (a43e5b5fd46d8e73), 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.