Aller au contenu

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

BR-S-10 : Retirer le motif d'exonération d'une ventilation de la TVA au taux normal

Une ventilation de la TVA au taux normal ne doit porter ni texte ni code de motif d'exonération. La TVA est facturée en catégorie S, donc rien n'est exonéré.

EN 16931Erreur : le document n'est pas valideTVA

Sur cette page

La réponse courte

BR-S-10 échoue lorsque la cac:TaxCategory d'une ventilation de la TVA de catégorie S contient cbc:TaxExemptionReason ou cbc:TaxExemptionReasonCode. Supprimez-les : une ventilation au taux normal est complète avec sa catégorie, son taux et le schéma fiscal VAT.

Si le motif a été ajouté parce qu'une partie de la facture est réellement exonérée ou non taxée, cette partie a besoin de sa propre catégorie et de sa propre ventilation, et c'est là que le motif a sa place.

Ce que la règle vérifie

La règle contrôle chaque cac:TaxCategory dont le cbc:ID vaut S sous le schéma VAT, dans un cac:TaxSubtotal du cac:TaxTotal à la racine du document. Elle échoue si l'un ou l'autre élément de motif est un enfant de cette catégorie.

Le texte ou le code seul suffit à la faire échouer. Lors d'un essai, un cbc:TaxExemptionReasonCode isolé de VATEX-EU-132 sur la ventilation au taux normal a signalé cette règle.

Ce que dit le motif n'a pas d'importance, seule compte l'existence de l'élément. Un cbc:TaxExemptionReason vide sur une ventilation au taux normal a quand même été signalé ici, et en plus par PEPPOL-EN16931-R008 comme élément vide.

Les catégories des lignes et des remises sont hors du périmètre de cette règle. Lors d'un essai, un motif dans la cac:ClassifiedTaxCategory d'une ligne au taux normal n'a produit que l'avertissement UBL-CR-601, et un motif dans la cac:TaxCategory d'une remise au niveau du document seulement l'avertissement UBL-CR-481 ; les deux documents sont restés valides. Mieux vaut tout de même omettre ces éléments.

TermeSignificationÉlément UBL
BT-118Code de catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID
BT-120Motif d'exonération de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason
BT-121Code du motif d'exonération de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode

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 mapping copie la description du code de taxe, comme Standard rate, dans cbc:TaxExemptionReason pour chaque ventilation au lieu de le faire seulement pour les catégories qui exigent un motif.
  • Chaque code de taxe du système source a son champ de motif rempli, et l'export écrit le champ dès qu'il n'est pas vide.
  • Un seul modèle de ventilation sert à toutes les catégories et émet toujours les éléments de motif.
  • Un contenu exonéré ou hors champ a été fusionné dans la ventilation au taux normal, et son motif l'a suivi.

Comment corriger le document

  1. Retirez cbc:TaxExemptionReason et cbc:TaxExemptionReasonCode de la cac:TaxCategory de chaque ventilation dont le cbc:ID vaut S.
  2. Modifiez le mapping pour que les éléments de motif ne soient émis que pour les catégories qui en ont besoin, comme E et AE, et jamais pour S ou Z.
  3. Si le motif décrivait une véritable exonération, corrigez aussi les lignes : les articles exonérés ont besoin de la catégorie E sur la ligne et d'une ventilation E distincte portant le motif, et la ventilation au taux normal ne couvre alors que le contenu au taux normal.

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 texte de motif dans la catégorie de taxe au taux normal

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <cbc:TaxExemptionReason>Standard rate</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Fragment de la facture corrigée : catégorie, taux et schéma fiscal uniquement

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

La facture en échec a cbc:TaxExemptionReason avec le texte Standard rate dans sa catégorie de taxe au taux normal, et la facture corrigée n'y a aucun élément de motif ; rien d'autre ne diffère. Le document en échec ne signale que BR-S-10, car ses catégories et montants sont par ailleurs cohérents.

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. Un avoir avec le même texte dans sa ventilation au taux normal a signalé cette règle lors d'un essai.
  • Signalée par l'étape EN 16931 comme constat fatal sur la cac:TaxCategory de la ventilation, une fois pour chaque ventilation au taux normal qui porte un motif.
  • BR-Z-10 applique la même interdiction aux ventilations au taux zéro. Les ventilations exonérées et en autoliquidation exigent l'inverse, un motif, selon BR-E-10 et BR-AE-10.

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-S-10 (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.