Mesuré, pas affirmé
Moteurs de validation comparés
19 moteurs de validation contrôlent les mêmes 1 665 factures électroniques du kit de données Beleggo — XRechnung, ZUGFeRD / Factur-X, Peppol BIS 3 et CIUS nationaux, valides comme défectueuses — sur la même machine, un document après l’autre. Le validateur officiel KoSIT tourne en parallèle comme référence. Mustangproject et phive, les validateurs open source les plus répandus, sont ensuite comparés en détail à Beleggo.
Mesuré le 22 octobre 2026 sur linux x64, Intel(R) Core(TM) Ultra 9 185H × 22, 62 GiB, Node v24.22.1
| Moteur | Environnement | Licence | Profils | Corrects | Fausses alertes | Manqués | Règle nommée | Médiane | Mémoire |
|---|---|---|---|---|---|---|---|---|---|
| Beleggoartefacts 2026-08-31 | JavaScript | proprietary | tous | 100 %1 655 documents | 0 | 0 | 1 086 | 5,7 ms | 962 MB |
| KoSIT Validator1.6.3 · Validator Configuration XRechnung 3.0.2 2026-09-02 · référence | Java 11+ | Apache-2.0 | 1 / 11 | 98,6 %285 documents | 0 | 0 | 421 | 9,2 ms | 1 397 MB |
| core-invoice (Rust CLI)2.0.3 | Rust | MIT OR Apache-2.0 | 2 / 11 | 90,3 %874 documents | 33 | 52 | 341 | 2,6 ms | 33 MB |
| phive4.6.0 | Java 17+ | Apache-2.0 | tous | 89,8 %1 655 documents | 0 | 160 | 915 | 8,2 ms | 1 099 MB |
| dealerweb/einvoice1.1.0 | PHP 8 | MIT | 7 / 11 | 88,3 %1 176 documents | 3 | 135 | 479 | 28 ms | 152 MB |
| Mustangproject2.26.0 | Java 11+ | Apache-2.0 | 6 / 11 | 84,8 %1 067 documents | 10 | 152 | 439 | 50 ms | 1 343 MB |
| en16931 (npm)0.1.0 | Node.js | MIT AND EUPL-1.2 | 1 / 11 | 84,6 %765 documents | 2 | 113 | 399 | 77 ms | 361 MB |
| @kontor-mcp/core1.0.4 | Node.js | Apache-2.0 | 2 / 11 | 84,2 %1 050 documents | 0 | 153 | 410 | 80 ms | 660 MB |
| verifyhash-einvoice0.2.9 | Python 3 | Apache-2.0 | 2 / 11 | 83,1 %1 050 documents | 5 | 172 | 411 | 1,1 ms | 63 MB |
| verifaktura0.1.8 | Node.js | Apache-2.0 | 2 / 11 | 81,9 %810 documents | 0 | 147 | 428 | 31 ms | 435 MB |
| EU ITB eInvoicing validator1.14.0-SNAPSHOT (2026-10-21) · CEN 1.3.16 | Java 17+ | EUPL-1.2 | 1 / 11 | 81,3 %765 documents | 0 | 143 | 417 | 118 ms | 1 234 MB |
| @attestwire/en169310.14.0 | Node.js | MIT | 3 / 11 | 80,2 %1 159 documents | 12 | 218 | 375 | 2 ms | 223 MB |
| einvoice-kit0.1.3 | Node.js | MIT | 1 / 11 | 80 %765 documents | 1 | 152 | 363 | 0,3 ms | 189 MB |
| speedata/einvoicev0.0.22 | Go | BSD-3-Clause | 3 / 11 | 76,8 %1 159 documents | 27 | 242 | 334 | 5 ms | 51 MB |
| stampbench (@stampbench/core)0.1.1 | Node.js | MIT | 2 / 11 | 71,8 %1 050 documents | 13 | 283 | 211 | 0,7 ms | 407 MB |
| en16931 (Rust CLI)0.6.0 | Rust | MIT OR Apache-2.0 | 3 / 11 | 68,8 %1 159 documents | 144 | 218 | 321 | 2,8 ms | 23 MB |
| @fin.cx/einvoice11.1.1 | Node.js | MIT | 2 / 11 | 59,9 %1 050 documents | 25 | 396 | 106 | 5,1 ms | 383 MB |
| KoSIT Validator + ZUGFeRD configuration1.6.3 · Validator Configuration ZUGFeRD 2.5.2 2026-06-11 · référence | Java 11+ | Apache-2.0 | 4 / 11 | 52,9 %17 documents | 0 | 8 | 63 | 4,7 ms | 975 MB |
| factur-x (akretion)6.8 | Python 3 | BSD-2-Clause | 4 / 11 | 52,9 %17 documents | 0 | 8 | 14 | 0,5 ms | 69 MB |
« Profils » : combien des 11 profils du kit le moteur déclare contrôler lui-même. « Corrects » : part des documents de ces profils dont le verdict (valide ou défectueux) correspond au verdict attendu ; un document que le moteur ne peut pas juger compte comme faux. Chaque moteur couvrant d’autres profils, les pourcentages portent sur des nombres de documents différents. Le validateur KoSIT est la référence officielle pour XRechnung. Mesuré 22–23 octobre 2026.
« Règle nommée » : sur les 1 086 échantillons défectueux du kit, combien le moteur rejette en nommant la règle enfreinte. « Médiane » : temps par document après la mise en route ; « Mémoire » : pic du processus entier.
Non mesurés sur le kit actuel, donc absents du tableau : International.EInvoicing (.NET CLI): pas de SDK .NET sur la machine de mesure (dernière mesure le 27 sept. 2026 sur 722 documents); @aifind/mustangjs: pas de réponse sur une facture de 1 000 lignes (DK-790) en 15 minutes (dernière mesure le 27 sept. 2026 sur 722 documents); Klarfakt: pas de SDK .NET sur la machine de mesure (dernière mesure le 29 sept. 2026 sur 722 documents); john-wink/en16931-php: son composer.lock ne s’installe pas sur la version de PHP de la machine de mesure (dernière mesure le 29 sept. 2026 sur 722 documents); en16931 (Dart): pas de SDK Dart sur la machine de mesure (dernière mesure le 29 sept. 2026 sur 722 documents).
| Mesure | Beleggo | Mustangproject | phive | En tête |
|---|---|---|---|---|
| Verdicts corrects, tous les documentspar rapport au verdict attendu de chaque échantillon | 1 655 / 1 665 (99,4 %) | 1 102 / 1 665 (66,2 %) | 1 486 / 1 665 (89,2 %) | Beleggo |
| Verdicts corrects dans les profils de Mustanguniquement les profils que Mustang contrôle | 1 067 / 1 077 (99,1 %) | 905 / 1 077 (84 %) | 902 / 1 077 (83,8 %) | Beleggo |
| Accord avec le validateur KoSITsur tous les documents XRechnung — le périmètre dont le validateur officiel a la charge | 281 / 281 (100 %) | 264 / 281 (94 %) | 268 / 281 (95,4 %) | Beleggo |
| Défauts nommés par la bonne règlepas seulement rejetés : la règle enfreinte est indiquée | 1 086 / 1 086 (100 %) | 439 / 1 086 (40,4 %) | 915 / 1 086 (84,3 %) | Beleggo |
| Profils du kit contrôlésformats dont le moteur connaît les règles propres | 11 / 11 | 6 / 11 | 11 / 11 | Beleggo · phive |
| Mesure | Beleggo | Mustangproject | phive | En tête |
|---|---|---|---|---|
| Temps par document (médiane)après la mise en route | 5,7 ms | 50 ms | 8,2 ms | Beleggo |
| Temps par document (95e centile)les documents lents | 12 ms | 82 ms | 17 ms | Beleggo |
| Documents par secondeun document après l’autre | 113,6 | 16 | 74,1 | Beleggo |
| Temps processeur par documenttous les threads confondus | 12 ms | 124 ms | 37 ms | Beleggo |
| Appel unique (démarrage + premier document)le coût d’un appel en ligne de commande | 187 ms | 3 541 ms | 4 322 ms | Beleggo |
| Mémoire (pic)du processus entier | 962 MB | 1 343 MB | 1 099 MB | Beleggo |
| Taille d’installationrègles et moteur, sans Node.js ni Java | 56 MB | 56 MB | 58 MB | Beleggo · Mustangproject |
Beleggo exécute les règles Schematron officielles sous forme de code traduit en JavaScript, lues dans les mêmes feuilles de style que celles qu’exécute Saxon-JS et contrôlées sur tous les corpus de test avec Saxon-JS comme référence : mêmes constats, même texte, même ordre. Un document que les règles traduites ne peuvent pas juger exactement est confié à Saxon-JS. Le temps processeur dépasse le temps par document parce que Node.js récupère la mémoire sur ses propres threads. Le même moteur tourne dans le navigateur.
| Beleggo | Mustangproject | phive | |
|---|---|---|---|
| EN 16931 (UBL et CII) | oui | oui | oui |
| XRechnung 3 avec les niveaux de gravité officiels KoSIT | oui | en partie | en partie |
| Peppol BIS 3 et règles nationales Peppol | oui | non | oui |
| NLCIUS, CIUS-RO, HR-CIUS, CIUS-PT | oui | non | oui |
| Profils Factur-X / ZUGFeRD (XSD et Schematron) | oui | oui | oui |
| Page PDF visible comparée au XML | oui | non | non |
| Chiffres de contrôle (IBAN, n° de TVA, Leitweg-ID, n° fiscal …) | oui | non | non |
| Fonctionne dans le navigateur, sans envoi, sans serveur | oui | non | non |
| Validation PDF/A-3 complète (toutes les règles des profils veraPDF) | oui | oui | non |
| ZUGFeRD 1.0 et Order-X | oui | oui | non |
| Règles françaises CTC (BR-FR Flux 2) en erreur, en UBL et CII | oui | en partie | oui |
| Schematron XRechnung, édition actuelle (2.6.0) | oui | en partie | oui |
| Peppol BIS 3 en CII | oui | non | non |
| EXTENDED-CTC-FR et e-reporting Flux 10 (France) | oui | en partie | oui |
| Recalcul de chaque ligne (quantité × prix) | oui | oui | non |
| Avertissements déjà annoncés comme futures erreurs | oui | non | non |
| Peppol PINT (UE, A-NZ, SG, JP, MY, AE, OM) — Beleggo dans sa CLI et son serveur MCP, règles téléchargées chez OpenPeppol | oui | non | oui |
| Peppol Invoice Response et Message Level Status | oui | non | oui |
Mustang s’écarte du verdict attendu sur 563 documents sur 1 665, dont 391 dans des profils qu’il ne contrôle pas du tout. Les autres ont cinq causes :
| Profil | Documents | Beleggo | Mustangproject | phive |
|---|---|---|---|---|
en16931 · cii | 184 | 184 | 126 | 121 |
en16931 · ubl | 419 | 419 | 340 | 339 |
en16931 · zugferd | 162 | 162 | 162 | 161 |
hr-cius · ubl | 45 | 45 | 5 | 45 |
nlcius · ubl | 20 | 20 | 9 | 19 |
peppol-bis3 · cii | 2 | 2 | 1 | 1 |
peppol-bis3 · ubl | 106 | 106 | 56 | 104 |
peppol-bis3 · zugferd | 1 | 1 | 1 | 1 |
pt-cius · ubl | 302 | 302 | 101 | 302 |
ro-cius · ubl | 112 | 112 | 24 | 112 |
xrechnung · cii | 172 | 167 | 155 | 159 |
xrechnung · ubl | 100 | 95 | 90 | 90 |
xrechnung · zugferd | 23 | 23 | 23 | 23 |
zugferd-basic · cii | 1 | 1 | 1 | 1 |
zugferd-basic · zugferd | 3 | 3 | 3 | 3 |
zugferd-basicwl · cii | 1 | 1 | 0 | 0 |
zugferd-basicwl · zugferd | 3 | 3 | 0 | 0 |
zugferd-extended · cii | 2 | 2 | 2 | 2 |
zugferd-extended · zugferd | 3 | 3 | 3 | 3 |
zugferd-minimum · cii | 1 | 1 | 0 | 0 |
zugferd-minimum · zugferd | 3 | 3 | 0 | 0 |
Kit de données 0.1.0 (8c8d13d3eed69eec), 1 665 documents, jugés par rapport au verdict attendu de chaque échantillon. Ce verdict vient du projet Beleggo ; pour qu’il confirme plus que Beleggo, chaque désaccord de Mustang a été vérifié à la main par rapport aux spécifications, et le validateur officiel KoSIT tourne en parallèle comme référence indépendante. Là où il juge autrement que Beleggo, la règle lui manque : les règles françaises CTC et une liste de codes Factur-X.
Beleggo artefacts 2026-08-31, Mustangproject 2.26.0, phive 4.6.0 (avec tous les modules phive-rules ; la détection de documents de phive choisit le jeu de règles), validateur KoSIT 1.6.3 · Validator Configuration XRechnung 3.0.2 2026-09-02. Chaque moteur tourne dans son propre processus, qui vit toute la mesure — les temps mesurent donc le moteur, pas le démarrage d’une machine virtuelle Java.