Mustang : le validateur libre derrière le contrôle

Qui affirme que votre facture est valide, et par rapport à quoi ? Cette page répond aux deux — limites du validateur comprises.

Quand un contrôle vous dit que votre facture est valide, la question suivante est raisonnable : qui l’affirme, et par rapport à quoi l’a-t-il mesuré ? Ici, la réponse est Mustang — une bibliothèque Java libre issue du projet mustangproject, publiée sous licence Apache 2.0 et maintenue sur GitHub au sein de l’organisation ZUGFeRD.

Elle est devenue l’implémentation de référence de fait autour de Factur-X et ZUGFeRD, et elle traite également XRechnung et Order-X. Le contrôle que subit ici votre fichier tourne dans de nombreux outils du secteur.

Ce que Mustang contrôle réellement

Le validateur exécute exactement les trois couches décrites dans Comment fonctionne la validation — successivement et avec des moyens différents :

CoucheCe qui est contrôléAvec quoi
ConteneurPDF/A-3 valide : polices incorporées, profils colorimétriques, métadonnées XMP, pièce jointe XML correctement déclaréeveraPDF
Schémale XML CII embarqué face à son XSD : bonne formation, éléments à leur place, types correctsvalidation de schéma XML
Règles de gestionles règles de l’EN 16931 et leurs déclinaisons nationales : totaux, catégories de TVA, mentions obligatoiresSchematron

L’ordre n’est pas cosmétique. Si le conteneur est défectueux, il n’y a peut-être aucun XML exploitable à examiner — un constat de la troisième couche décrit alors un fichier que personne ne pourrait lire. D’où la lecture du rapport de haut en bas.

La version du validateur n’est pas celle du format

C’est la confusion la plus fréquente autour de Mustang, et elle revient régulièrement dans les plaquettes commerciales. Deux séries de numéros sans rapport :

  • Mustang est développé dans la série 2.x. La bibliothèque en est à 2.26.0, publiée le 25 août 2026 — elle prend en charge ZUGFeRD 2.5.0, ZUGFeRD 1, Factur-X 1 et CII XRechnung 3.0.2. Le Mustangserver correspondant, 1.8.3 du 29 août 2026, contrôle face au Schematron EN 16931 v1.3.16 et au ZUGFeRD 2.5.2 corrigé.
  • Factur-X et ZUGFeRD sont numérotés séparément et mis à jour environ tous les six mois — actuellement 1.09.2 et 2.5.2, applicables depuis le 1er septembre 2026.

Il n’existe pas de Mustang en version 3.x. Qui vous cite « Mustang 3 » confond le numéro de l’outil avec celui d’un format — ou a recopié quelqu’un qui l’a fait. Sur ce site, Mustang tourne dans la série 2.x.

Pourquoi cet outil en particulier

Un validateur est une affaire de confiance : il vous dit si un document est valide, et vous ne pouvez pas le recalculer vous-même. Trois arguments plaident pour Mustang :

  • Il est libre. On peut lire quelles règles il applique — ce n’est pas une boîte noire qui rend un verdict.
  • Il utilise les corpus officiels, non des réimplémentations. Les fichiers Schematron de l’EN 16931 viennent de là où ils sont publiés.
  • Il est maintenu au rythme des formats. Quand une nouvelle édition de ZUGFeRD paraît, l’adaptation suit — c’est la différence entre un outil et un instantané d’avant-hier.

S’y ajoute un point pratique : comme la même bibliothèque tourne dans beaucoup d’endroits, il y a de bonnes chances que votre destinataire contrôle face au même corpus que vous. Un résultat vert ici veut alors dire quelque chose.

Ce qu’un contrôle réussi ne signifie pas

Cette limite est volontiers passée sous silence dans les textes commerciaux, et c’est pour cela qu’une facture formellement irréprochable peut tout de même revenir :

  • Conformité n’est pas exactitude. Un fichier peut passer toutes les règles et porter quand même le mauvais prix, la mauvaise date ou le mauvais client. Le validateur sait calculer ; il ne sait pas ce qui est juste.
  • Valide n’est pas accepté. Un destinataire peut exiger en plus un numéro de commande, une référence donnée ou un profil donné : ce sont ses règles, pas celles de la norme.
  • Les avertissements ne sont pas des erreurs. Un rapport distingue les constats fatals des remarques ; ces dernières viennent souvent d’une déclinaison nationale qui ne s’applique pas à votre document. Vouloir les ramener à zéro est la façon la plus courante de perdre un après-midi sur un fichier valide depuis longtemps.

Comment lire le rapport

Chaque constat nomme deux choses : un code de règle et un emplacement dans le XML. L’emplacement dit où ; le code dit pourquoi. Les familles de codes et les erreurs qui surviennent réellement sont dans Règles de gestion de l’EN 16931.

La bonne étape suivante n’est presque jamais le fichier, mais le système qui l’a produit : le numéro de TVA manquant a sa place dans le profil de l’entreprise, le réglage d’arrondi dans le logiciel de facturation. Retoucher le XML à la main produit un document dont la page visible ne correspond plus aux données — voir Contrôler une facture.

Utiliser Mustang soi-même

Mustang existe en outil de ligne de commande autonome et en bibliothèque à intégrer. Qui construit sa propre intégration ou contrôle des fichiers par lots y trouvera son compte — c’est le même contrôle, sans interface.

Si vous préférez ne pas l’exploiter vous-même : le même contrôle tourne ici dans le navigateur, sans inscription, avec un rapport lisible au lieu d’une sortie console. Votre fichier ne sert qu’au contrôle ; nous n’en gardons pas de copie.

Questions fréquentes

Faut-il installer Java pour contrôler ma facture ?

Non. Cela ne vaut que si vous voulez exploiter Mustang vous-même. Pour un fichier isolé, le dépôt ici suffit.

Mustang contrôle-t-il aussi les XRechnung ?

Oui, fichiers XML purs compris. Lors d’un dépôt XML, la couche conteneur disparaît — il n’y a pas de PDF à contrôler — et le reste se déroule comme d’habitude.

Qu’est-ce que veraPDF ?

Le vérificateur PDF/A libre que Mustang emploie pour la couche conteneur. Il répond à la question de savoir si le fichier est un PDF/A-3 valide — pas si la facture qu’il contient est juste.

Pourquoi le contrôle signale-t-il une règle que mon destinataire n’applique pas ?

Parce que les déclinaisons nationales apportent leurs propres règles et que le rapport les nomme dès que le profil les prévoit. Ce qui compte, c’est la gravité : fatal signifie invalide, un avertissement signifie inhabituel mais admis.

Le résultat change-t-il quand une nouvelle version du format paraît ?

Cela peut arriver. Un corrigendum comme ZUGFeRD 2.5.2 lève des incohérences dans les règles : un fichier qui produisait un message auparavant peut être propre ensuite, ou l’inverse. D’où l’intérêt de contrôler avant chaque envoi plutôt qu’une fois au début.

Puis-je me fier à un résultat vert ?

À ce qu’il affirme : le fichier est conforme à la norme et au profil qu’il déclare. Savoir si la facture est juste sur le fond et si votre destinataire l’acceptera sont deux autres questions — voir plus haut.

En résumé

  • Mustang est libre (Apache 2.0) et la référence de fait dans l’univers ZUGFeRD et Factur-X.
  • Trois couches, trois outils : veraPDF pour le conteneur, XSD pour le schéma, Schematron pour les règles de gestion.
  • Le numéro du validateur n’est pas celui du format. Bibliothèque 2.26.0 (25.08.2026), formats 2.5.2 / 1.09.2. Une version 3.x de Mustang n’existe pas.
  • Réussir signifie conforme à la norme, pas juste et pas accepté.
  • Le rapport nomme le code et l’emplacement — la cause se corrige dans le système producteur, pas dans le XML.

Essayer le même contrôle sans rien installer ? Déposez un fichier sans inscription — ou créez un compte gratuit si vous souhaitez conserver un historique.