Nordlet

← Blog

Conformité à la norme EN 16931 : Peppol, Factur-X et ZUGFeRD confrontés aux règles officielles

Nous avons soumis les fichiers de facturation générés par Nordlet aux règles de validation officielles de la norme EN 16931. Les fichiers Peppol et roumains sont conformes. Les fichiers Factur-X enfreignent deux règles que cet article détaille.

Nordlet Team · · 4 min de lecture

La norme EN 16931 est la norme européenne régissant le contenu d'une facture électronique. Elle définit les données commerciales d'une facture (vendeur, acheteur, lignes, ventilation de la TVA, totaux) ainsi que les règles métier auxquelles ces données doivent satisfaire, par exemple l'obligation que la ventilation de la TVA corresponde au total de la facture. Cette norme peut être exprimée dans deux formats XML distincts : UBL 2.1 et UN/CEFACT Cross Industry Invoice (CII).

La plupart des formats européens de facturation électronique reposent sur la norme EN 16931 :

  • Peppol BIS Billing 3.0 utilise la norme EN 16931 au format UBL, complétée par des règles Peppol spécifiques.
  • L'e-Factura roumaine (CIUS-RO) utilise la norme EN 16931 au format UBL, assortie de règles propres à la Roumanie.
  • Factur-X (France) et ZUGFeRD 2.3 (Allemagne) intègrent la norme EN 16931 au format CII. Dans le profil « EN 16931 », pris en charge par Nordlet, ces deux formats s'appuient sur le même code XML.

Si une facture enfreint une règle de la norme EN 16931, elle contrevient par conséquent à tous les formats qui en découlent.

Méthodologie de contrôle

La Commission européenne s'appuie sur les règles de validation publiées sur GitHub par le comité technique de normalisation pour la facturation électronique (CEN/TC 434). Nous avons utilisé la version la plus récente, à savoir la 1.3.17 du 12 octobre 2026, tant pour UBL que pour CII. Ces règles sont rédigées en Schematron et compilées en XSLT. Nous les avons exécutées à l'aide du moteur XSLT Saxon-HE 12.5.

Les fichiers de facturation ont été générés à partir des données de test de la version actuelle du code de Nordlet. Le vendeur est une entreprise lituanienne. Les acheteurs sont une entreprise lituanienne, une entreprise allemande et, pour l'exportation au format Peppol, une entreprise américaine. Les factures de test comportent une ligne taxée à 21 % ainsi qu'une ligne à 0 % assortie d'une mention d'exonération.

Résultats

Ce que produit Nordlet Fichiers contrôlés Résultat
Peppol BIS Billing 3.0 (UBL) 7 : facture nationale, avoir, vente intracommunautaire, exportation, autoliquidation, vendeur non assujetti à la TVA, facture en USD avec remise Conforme : 0 erreur, 0 avertissement
e-Factura roumaine (UBL, CIUS-RO) 4 : facture nationale, avoir, vente intracommunautaire, facture en USD avec remise Conforme
Factur-X / ZUGFeRD (CII, profil EN 16931) 4 : facture nationale, avoir, vente intracommunautaire, facture en USD avec remise Non conformes (4 sur 4), comportant 1 erreur chacune

Les deux règles enfreintes par les fichiers Factur-X

BR-Z-10 : une ligne à taux zéro ne doit pas comporter de motif d'exonération

La norme EN 16931 distingue les codes de catégorie de TVA pour un taux de 0 % (« Z », zero rated) et pour une opération exonérée (« E », exempt). Seule une opération exonérée requiert un motif. La règle BR-Z-10 stipule qu'une ventilation de TVA de catégorie « Z » ne doit pas inclure de code de motif d'exonération (BT-121) ni de texte explicatif du motif d'exonération (BT-120).

Le générateur Factur-X insère le libellé « Taux zéro » sur chaque ventilation à taux zéro, ce qui entraîne l'échec de trois des quatre fichiers. Il ignore par ailleurs la mention d'exonération saisie sur la ligne. Le générateur Peppol traite cette même ligne correctement : lorsqu'une ligne à 0 % comporte une mention d'exonération, il qualifie la ligne comme exonérée (« E ») et utilise la mention comme motif.

BR-IC-12 : une vente intracommunautaire doit mentionner le pays de livraison

La règle BR-IC-12 stipule que lorsque la ventilation de la TVA relève de la catégorie « K » (livraison intracommunautaire), le code du pays de livraison (BT-80) ne doit pas être vide. Le pays de livraison atteste que les marchandises ont quitté le pays du vendeur.

Le générateur Factur-X n'indique aucun pays de livraison, ce qui invalide le fichier intracommunautaire. Le générateur Peppol renseigne quant à lui le pays de l'acheteur en tant que pays de livraison pour ces transactions.

Ce que ce contrôle ne couvre pas

  • Schéma XML. Seules les règles métier ont été vérifiées, à l'exclusion des contrôles de schémas UBL et CII (XSD).
  • Champs non renseignés par Nordlet. Les règles relatives aux données absentes des fichiers n'ont pas été exécutées. C'est le cas, par exemple, des frais au niveau du document, des montants prépayés, de la période de facturation et des références de bons de commande.
  • Règles nationales s'ajoutant à la norme EN 16931. Nous n'avons pas vérifié les règles de la réforme française de la facturation électronique ni les exigences allemandes XRechnung. Les règles spécifiques à Peppol font l'objet d'un script Nordlet distinct qui utilise les jeux de règles OpenPeppol.
  • Le composant PDF de Factur-X. Une facture Factur-X se présente sous la forme d'un fichier PDF/A-3 auquel le fichier XML est joint. Le présent contrôle porte exclusivement sur le fichier XML.