Le CII est l'une des deux syntaxes XML acceptées par la norme EN 16931. Le Cross-Industry Invoice (CII) est la syntaxe UN/CEFACT au cœur de Factur-X et de ZUGFeRD. Lorsque vous générez une facture hybride, c'est le XML CII, et non la page PDF, que lisent réellement une Plateforme Agréée (PDP), Chorus Pro ou le système comptable de votre partenaire. Valider ce XML avant l'envoi est le moyen le plus fiable d'éviter un rejet silencieux après transmission.
Ce que le validateur CII vérifie
Une facture CII doit passer deux couches de conformité distinctes. Notre validateur les exécute toutes les deux automatiquement et rapporte chaque résultat séparément, pour que vous voyiez exactement où un fichier échoue.
Schéma XSD CII D16B - valide le XML par rapport au schéma UN/CEFACT Cross-Industry Invoice D16B. Cela détecte d'abord les problèmes structurels : éléments obligatoires manquants, types de données incorrects dans les montants ou les quantités, formats de date malformés (les dates CII utilisent le code de format 102, soit AAAAMMJJ) et erreurs de déclaration d'espace de noms. Un fichier qui échoue au schéma ne peut jamais passer les règles métier, cette couche s'exécute donc avant tout le reste.
Schematron EN 16931 : plus de 200 règles métier - c'est de là que proviennent la plupart des rejets. Les règles vérifient la cohérence arithmétique de la TVA (BR-CO-14 : la TVA totale doit être égale à la somme des montants par catégorie), les contraintes par catégorie (BR-S-08 : les lignes au taux normal doivent porter un taux supérieur à zéro), les champs obligatoires (BR-01 : identifiant de spécification, BR-06 : nom du vendeur) et les règles de paiement (BR-61 : IBAN requis quand le code moyen de paiement est 30 ou 58). L'identifiant de spécification de votre XML déclare le profil (MINIMUM, BASIC WL, BASIC, EN 16931 ou EXTENDED), et ce profil détermine quelles règles sont obligatoires ou facultatives.
Erreurs de validation CII courantes, et ce qu'elles signifient
Ce sont les violations de règles que nous observons le plus fréquemment sur le XML CII. Si votre fichier échoue, l'une d'elles en est probablement la cause.
BR-01 - Identifiant de spécification manquant
L'élément GuidelineSpecifiedDocumentContextParameter/ID est absent ou vide. Chaque facture CII doit déclarer son identifiant de profil EN 16931 (par exemple urn:cen.eu:en16931:2017 ou une URN Factur-X telle que urn:factur-x.eu:1p0:en16931). Sans lui, le validateur ne peut pas décider quelles règles de profil appliquer et rejette le fichier immédiatement.
BR-CO-14 - Le total TVA ne correspond pas à la ventilation TVA
Le montant total de TVA de la facture n'est pas égal à la somme des montants de ventilation par catégorie. Cela se déclenche généralement lorsque des différences d'arrondi entre la TVA au niveau des lignes et de l'en-tête créent un écart d'un centime seulement. Calculez les totaux TVA de l'en-tête à partir de la ventilation plutôt que de manière indépendante.
BR-S-08 - Ligne TVA au taux normal avec taux zéro
Une ligne de facture déclare le code de catégorie TVA S (taux normal) mais porte un taux de 0 %. Si un taux zéro est prévu, utilisez plutôt le code de catégorie Z (taux zéro) ou E (exonéré).
BR-AE-05 - Ligne d'autoliquidation avec taux de TVA non nul
Lorsque la catégorie TVA AE (autoliquidation) est utilisée, le taux doit être exactement zéro : c'est à l'acheteur de déclarer la taxe.
XSD - Format de date invalide
Un élément de date porte un attribut de format autre que 102, ou une valeur qui n'est pas une chaîne AAAAMMJJ valide. Le CII représente les dates sous forme de DateTimeString au format 102, plus strict que le format ISO utilisé dans UBL.
XSD - Élément hors séquence
Le CII est sensible à l'ordre : les éléments enfants doivent apparaître exactement dans la séquence définie par le schéma. Un élément placé avant un frère qu'il devrait suivre échouera au XSD même si chaque valeur est correcte. C'est l'une des surprises les plus fréquentes lors de la construction manuelle de XML CII.
CII, Factur-X et ZUGFeRD : comment ils sont liés
Factur-X (France) et ZUGFeRD (Allemagne) ne sont pas des formats XML distincts : il s'agit du même XML CII enveloppé dans un conteneur PDF/A-3b. Un fichier CII qui se valide ici est exactement ce que vous intégrez pour produire une facture hybride conforme à l'un ou l'autre standard. Si vous avez un XML CII autonome, validez-le d'abord, puis intégrez-le ; si vous avez déjà un PDF hybride, déposez-le ici et nous extrairons et validerons le CII intégré pour vous.
Le CII est aussi l'une des deux syntaxes prises en charge par Peppol BIS Billing 3.0, aux côtés d'UBL. Si vous devez passer d'une syntaxe à l'autre, valider d'abord le CII garantit une source propre avant la conversion.