Pourquoi la validation est essentielle avant l'envoi
Lorsque vous générez une facture Factur-X, le PDF paraît tout à fait normal. Votre numéro de facture est présent, les montants s'additionnent, les coordonnées du client sont correctes. Mais à l'intérieur de ce PDF se trouve un fichier XML que le logiciel de comptabilité de votre client va tenter de traiter automatiquement. Ce XML obéit à ses propres règles, qui n'ont rien à voir avec l'apparence du PDF à l'écran.
Une facture Factur-X qui ne passe pas la validation s'ouvre tout de même normalement dans un lecteur PDF. Elle s'affiche correctement. Mais lorsque l'ERP ou le logiciel de comptabilité de votre client tente de l'importer, le traitement automatisé échoue silencieusement. En France, Chorus Pro est la plateforme de dépôt obligatoire pour les factures adressées au secteur public, et elle rejette activement les fichiers dont le XML intégré ne répond pas à la norme requise. Un rejet signifie un paiement retardé et un cycle de correction qui peut prendre plusieurs jours. Pour les entreprises privées, les logiciels de comptabilité qui traitent déjà les factures automatiquement ne sauveront pas manuellement un fichier que leur système n'a pas pu analyser. Avec le déploiement progressif des obligations de facturation électronique à travers l'Europe, envoyer une facture non valide, c'est de plus en plus risquer de ne pas être payé dans les délais.
Passer un validateur avant l'envoi prend moins d'une minute et élimine entièrement ce risque.
Ce que vérifie concrètement un validateur
La validation fonctionne en trois couches, chacune plus précise que la précédente.
La première est la vérification de la bonne formation. Le XML doit être techniquement valide au sens le plus élémentaire : toutes les balises correctement ouvertes et fermées, les espaces de noms déclarés, l'encodage cohérent. Ce niveau échoue rarement quand vous utilisez un logiciel de facturation dédié, mais il détecte immédiatement les problèmes dans les fichiers modifiés manuellement.
La deuxième couche est la validation de schéma. Factur-X et ZUGFeRD utilisent le format Cross Industry Invoice (CII) défini par UN/CEFACT. Le schéma CII spécifie exactement quels éléments sont autorisés, lesquels sont obligatoires, quels types de données chaque champ accepte et comment les éléments s'imbriquent. La validation de schéma compare votre XML à cette spécification et signale tout ce qui ne correspond pas : un élément obligatoire manquant, une date dans un format incorrect, un code devise absent de la liste ISO 4217.
La troisième couche est la validation des règles métier. La norme européenne EN 16931 définit environ 70 règles métier qui vont au-delà de ce que le schéma seul peut imposer. Ces règles portent des identifiants comme BR-1, qui stipule que chaque facture doit avoir un identifiant de spécification, et BR-CO-15, qui exige que le montant total de TVA soit égal à la somme de tous les montants par catégorie de TVA. Elles sont mises en œuvre avec Schematron, un langage de validation basé sur des règles qui effectue des vérifications logiques sur l'ensemble du document.
En plus de tout cela, la spécification Factur-X ajoute des règles au niveau du profil. Si vous déclarez votre facture conforme à EN 16931 mais omettez les lignes de détail, vous échouerez la validation du profil même si la structure XML est techniquement correcte.
Quel profil choisir pour la validation ?
Avant de lancer un validateur, vous devez savoir quel profil Factur-X votre facture déclare suivre. Ce profil est indiqué dans le XML lui-même, à l'intérieur de l'élément GuidelineSpecifiedDocumentContextParameter. L'URI qui y figure détermine l'ensemble de règles que le validateur va appliquer. Une divergence entre le profil déclaré et le contenu réel du XML est donc en soi une source d'échec.
Pour la plupart des entreprises qui facturent des clients en France ou en Allemagne, le bon profil est EN 16931. Il satisfait la norme européenne, fonctionne avec Chorus Pro et couvre l'ensemble des champs que les systèmes comptables de vos clients attendent. Si vous n'êtes pas sûr du profil généré par votre logiciel de facturation, ouvrez le XML intégré et cherchez l'identifiant de guideline. S'il contient en16931, vous utilisez le bon profil.
Les profils MINIMUM et BASIC WL sont volontairement allégés. MINIMUM ne contient ni lignes de détail ni informations de paiement. BASIC WL ajoute les données de paiement mais reste sans positions individuelles. Ces profils sont prévus pour des cas d'archivage ou d'échange simplifié de documents, pas pour la facturation B2B courante. Si vous faites tourner un validateur EN 16931 sur une facture MINIMUM, elle échouera, non pas parce que la facture est incorrecte, mais parce que le validateur applique un mauvais ensemble d'attentes. Validez toujours contre le profil que votre XML déclare réellement.
Comment extraire le XML d'un PDF Factur-X
Pour valider le XML intégré, vous devez d'abord y accéder. Le XML se trouve à l'intérieur du PDF en tant que pièce jointe, toujours nommée factur-x.xml. Plusieurs méthodes permettent de l'extraire.
Dans Adobe Acrobat Reader, allez dans Affichage, puis Afficher/Masquer, puis Panneaux de navigation, et sélectionnez Pièces jointes. Le fichier factur-x.xml apparaît dans le panneau et vous pouvez l'enregistrer directement sur votre bureau.
Pour une approche en ligne de commande, pdfcpu est un outil gratuit open source qui extrait les pièces jointes PDF en une seule commande et fonctionne sous Windows, macOS et Linux. Si vous travaillez avec Python, la bibliothèque pypdf peut faire de même par programmation avec un court script.
Certains validateurs acceptent le PDF Factur-X complet et gèrent l'extraction automatiquement. Le validateur Facturwise fonctionne ainsi. Vous téléversez le PDF et il lit le XML intégré sans aucune extraction manuelle de votre côté.
Erreurs de validation fréquentes et comment les corriger
Une poignée d'erreurs représente la grande majorité des échecs de validation.
Identifiant de profil incorrect. L'URI de profil dans le XML doit correspondre exactement au profil que vous souhaitez utiliser. Pour une facture conforme EN 16931, la valeur correcte est urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:en16931. Pour MINIMUM c'est urn:factur-x.eu:1p0:minimum, pour BASIC WL urn:factur-x.eu:1p0:basicwl, pour BASIC urn:factur-x.eu:1p0:basic. Toute faute de frappe ou utilisation d'un URI obsolète fait échouer l'ensemble du document dès la première vérification. Corrigez toujours celui-ci en premier.
Champs obligatoires manquants. Au niveau du profil EN 16931, le vendeur et l'acheteur doivent tous deux disposer d'une adresse électronique, généralement une adresse e-mail avec l'identifiant de schéma "EM". Le vendeur doit avoir au moins un identifiant fiscal, généralement un numéro de TVA intracommunautaire. Pour les factures à destination de clients français, le numéro SIREN de l'acheteur est également requis. L'absence de l'un de ces éléments déclenche des échecs de règles métier spécifiques avec des codes d'erreur clairs.
Codes de catégorie TVA incorrects. Chaque ligne et chaque entrée dans le récapitulatif fiscal nécessite le bon code de catégorie. La TVA standard est "S". Le taux zéro est "Z". L'exonération est "E". L'autoliquidation est "AE". La livraison intracommunautaire est "K". Utiliser le mauvais code pour votre situation fait échouer les règles Schematron qui croisent le code de catégorie avec le taux indiqué, le montant calculé et le type de facture.
Incohérences arithmétiques. Les règles métier EN 16931 vérifient que les chiffres s'additionnent exactement. La somme de toutes les lignes doit correspondre au total de la base taxable. Base taxable plus taxe doit correspondre au total brut. Total brut moins les acomptes doit correspondre au montant dû. Un écart d'arrondi d'un seul centime entre l'une de ces relations déclenchera la règle BR-CO-15 ou BR-CO-16. La plupart des logiciels de facturation gèrent correctement les arrondis, mais les factures construites dans des tableurs ou assemblées à la main se trompent souvent sur ce point.
Non-conformité PDF/A-3. Le PDF qui enveloppe le XML doit être conforme à la norme d'archivage PDF/A-3b. Cela signifie que toutes les polices doivent être intégrées, un profil colorimétrique ICC doit être présent, le fichier ne peut pas être chiffré, et des métadonnées XMP spécifiques identifiant le fichier comme PDF/A doivent être incluses. Les éditeurs PDF généraux qui modifient le fichier après sa génération peuvent silencieusement supprimer ces indicateurs de conformité. Si vous souhaitez tester la couche PDF indépendamment du XML, veraPDF est un validateur PDF/A gratuit et open source qui vérifie uniquement la conformité PDF/A-3 sans toucher aux données de facturation — utile quand un fichier passe la validation XML mais provoque tout de même des problèmes d'import.
Corriger les erreurs de façon méthodique
Quand un validateur retourne plusieurs erreurs, commencez par l'identifiant de profil. Un identifiant incorrect ne fait pas seulement échouer une règle : il peut provoquer des échecs en cascade sur l'ensemble du document parce que le validateur applique un mauvais ensemble d'attentes. Corriger l'identifiant en premier efface souvent un grand nombre d'erreurs apparentes en une seule fois.
Ensuite, traitez les erreurs de schéma avant les échecs de règles métier. Les erreurs de schéma signifient que la structure XML elle-même est cassée, ce qui compromet également la fiabilité de la validation des règles métier.
Les bons validateurs retournent des messages d'erreur qui incluent le code de règle et l'emplacement dans le document. BR-04 signifie que le nom de l'acheteur est manquant. BR-S-02 signifie qu'une ligne utilisant la catégorie TVA standard est dépourvue du pourcentage de taux de taxe. Le code de règle est votre point de départ : cherchez-le dans la spécification EN 16931 ou la documentation Factur-X pour comprendre exactement ce que la règle exige et quelle valeur est attendue.
Validez avant que votre client ne le fasse
Le meilleur moment pour détecter un problème de validation est avant que la facture ne quitte votre système. Une minute passée à effectuer une vérification peut prévenir un retard de paiement, un rejet par Chorus Pro, ou une demande de correction déconcertante de la part du service financier d'un client.
Le validateur Facturwise accepte les PDF Factur-X complets et extrait automatiquement le XML intégré. Il vérifie les trois couches de validation et retourne des messages d'erreur clairs qui identifient la règle et le champ spécifiques impliqués. Aucun compte requis.
Si vous préférez ne pas penser du tout à la validation, l'approche la plus fiable est d'utiliser un logiciel qui construit et valide le XML avant de générer le PDF final. Facturwise produit des factures Factur-X conformes EN 16931 avec tous les champs obligatoires renseignés, les codes de taxe appliqués correctement et l'enveloppe PDF/A-3 construite automatiquement. Chaque facture produite passe la validation d'emblée.
Cet article est fourni à titre informatif uniquement. Les exigences en matière de facturation électronique varient selon le pays, le type de client et la réglementation applicable. Pour des conseils adaptés à votre situation, consultez un comptable ou un conseiller fiscal qualifié.
