Aller au contenu

Ironfang Finance - Référence des règles

BR-O-05 : Retirer le taux de TVA d'une ligne non soumise à la TVA

Une ligne en catégorie O ne doit pas avoir de cbc:Percent dans sa catégorie de taxe, pas même 0. Omettez entièrement le taux.

EN 16931Erreur : le document n'est pas valideTVALignes et prix

Sur cette page

La réponse courte

BR-O-05 échoue lorsqu'un article classé O a un cbc:Percent dans sa cac:Item/cac:ClassifiedTaxCategory ; dans l'exemple enregistré, la ligne indique 0. Supprimez l'élément cbc:Percent de cette catégorie et gardez cbc:ID et cac:TaxScheme.

Un taux de 0 reste un taux. Une ligne non soumise à la TVA n'a aucun taux, et c'est cette absence qui la distingue d'une ligne au taux zéro.

Ce que la règle vérifie

La règle s'exécute sur chaque catégorie de taxe d'article dont le cbc:ID vaut O sous le schéma VAT, dans cac:InvoiceLine comme dans cac:CreditNoteLine, et signale sur cette cac:ClassifiedTaxCategory. Deux lignes O avec un taux ont donné deux constats lors d'un essai.

Elle ne demande qu'une chose : si cbc:Percent existe. La valeur ne change rien : 0 échoue, et 20 aussi lors d'un essai.

Un cbc:Percent vide ne permet pas de contourner la règle. Le schéma exige un nombre dans cet élément, et un élément vide a échoué à l'étape XSD lors d'un essai, si bien que les règles EN 16931 ne se sont jamais exécutées.

La ventilation de la TVA est hors du périmètre de cette règle. Lors d'un essai, un taux de 0 dans la ventilation O, sans taux sur la ligne, a passé toutes les étapes ; omettre le taux de la ventilation est aussi permis, car BR-48 n'en exige pas pour O.

Les remises et frais au niveau du document ont leurs propres équivalents. Une remise O avec un taux de 0 a signalé BR-O-06, et non cette règle, lors d'un essai.

TermeSignificationÉlément UBL
BT-151Code de catégorie de TVA de l'article facturécac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID in a credit note)
BT-152Taux de TVA de l'article facturécac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent in a credit note)

Comment une intégration en arrive là

Causes possibles, déduites de la forme de la règle et non d'une utilisation mesurée :

  • Le sérialiseur écrit cbc:Percent à partir d'un champ de taux sur chaque ligne, et les articles non taxés ont un taux de zéro.
  • Un seul modèle construit la catégorie de taxe de l'article pour toutes les catégories, avec l'élément de taux toujours présent.
  • Le système source ne peut pas stocker un taux absent et enregistre 0, ce qui convient aux lignes au taux zéro mais pas à O.
  • La ligne est passée de Z ou E à O dans le mapping sans que son taux soit retiré.

Comment corriger le document

  1. Vérifiez que la ligne n'est vraiment pas soumise à la TVA. Si elle est en réalité au taux zéro ou exonérée, c'est la catégorie qui est fautive, et Z ou E gardent leur taux de 0.
  2. Pour les lignes O, omettez complètement cbc:Percent de cac:Item/cac:ClassifiedTaxCategory au lieu de l'écrire vide ou à 0.
  3. Faites dépendre l'omission de la catégorie dans le sérialiseur, afin que le taux soit écrit pour toutes les autres catégories et jamais pour O.
  4. Ne touchez pas aux montants. Le montant net de la ligne et la base imposable de la ventilation ne changent pas quand l'élément de taux disparaît.

Valider votre facture corrigée

Avant et après

Ce sont des extraits, pas des documents complets. Les documents synthétiques complets dont ils proviennent sont liés ci-dessous.

Fragment de la facture en échec : un article de catégorie O qui indique un taux de 0

<cac:Item>
  <cbc:Name>Example service</cbc:Name>
  <cac:ClassifiedTaxCategory>
    <cbc:ID>O</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:ClassifiedTaxCategory>
</cac:Item>

Fragment de la facture corrigée : l'article de catégorie O n'a pas d'élément de taux

<cac:Item>
  <cbc:Name>Example service</cbc:Name>
  <cac:ClassifiedTaxCategory>
    <cbc:ID>O</cbc:ID>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:ClassifiedTaxCategory>
</cac:Item>

La facture en échec a cbc:Percent 0 dans la cac:ClassifiedTaxCategory de la ligne ; la facture corrigée n'y a aucun élément de taux, et la ventilation O n'en a dans aucun des deux documents. Le document en échec ne signale que BR-O-05, situé sur la catégorie de taxe de la ligne 1.

Ce que le validateur a signalé

Enregistré avec phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, le moteur du validateur gratuit, sur des données synthétiques. Un résultat enregistré est une preuve de non-régression pour ces documents ; ce n'est pas une certification.

Où la règle s'applique

  • S'applique aux documents UBL Invoice et CreditNote. Dans un avoir, la catégorie se trouve dans cac:CreditNoteLine/cac:Item, et la facture en échec réécrite ainsi a signalé le même constat lors d'un essai.
  • Les lignes au taux zéro fonctionnent à l'inverse : BR-Z-05 y exige un taux de 0, donc un mapping qui fait passer une ligne de Z à O ou l'inverse doit ajouter ou retirer l'élément.
  • Une ligne O entraîne les autres règles O : aucun identifiant TVA selon BR-O-02, un motif sur la ventilation selon BR-O-10, et aucune autre catégorie selon BR-O-11.

Portée et source

Rédigé pour Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, tel qu'appliqué aux documents Invoice et CreditNote en UBL 2.1. D'autres profils, syntaxes et versions peuvent définir cet identifiant autrement. Version du catalogue d'aide 2026-09-24.1 : source vérifiée le 2026-09-24, explication mise à jour le 2026-09-24.

La définition officielle de BR-O-05 (en anglais) contient le texte normatif et le test. Cette page en est notre explication, pas une copie.

Cette aide ne modifie pas le verdict du moteur. Corriger ce constat ne signifie pas que le document passe toutes les étapes de validation, et la validation ne certifie pas la conformité juridique ou fiscale et ne transmet aucun document via Peppol.