Aller au contenu

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

BR-E-10 : Ajouter le motif d'exonération à une ventilation de TVA exonérée

Une ventilation de la TVA de la catégorie exonérée doit indiquer en quoi consiste l'exonération, par un texte de motif d'exonération, un code de motif d'exonération, ou les deux.

EN 16931Erreur : le document n'est pas valideTVA

Sur cette page

La réponse courte

BR-E-10 échoue lorsqu'une ventilation de la TVA de catégorie E n'a ni cbc:TaxExemptionReason ni cbc:TaxExemptionReasonCode dans son cac:TaxCategory. Indiquez pourquoi la livraison est exonérée, sous forme de texte, de code de la liste VATEX, ou des deux.

L'exonération peut reposer sur de nombreux fondements juridiques, il n'existe donc pas de formule unique à coder en dur. La valeur doit provenir de ce qui a conduit votre système à traiter la livraison comme exonérée.

Ce que la règle vérifie

La règle sélectionne chaque cac:TaxCategory avec un cbc:ID à E sous le régime fiscal VAT, dans cac:TaxTotal/cac:TaxSubtotal sous la racine du document, et passe lorsqu'il a un enfant cbc:TaxExemptionReason ou un enfant cbc:TaxExemptionReasonCode.

Un code seul suffit. Le fichier de test exonéré valide, avec son texte remplacé par un cbc:TaxExemptionReasonCode à VATEX-EU-132, passe toutes les étapes.

Le contenu du texte n'est pas examiné ; tout texte non vide passe. Le validateur ne peut pas vous dire si l'exonération indiquée est la bonne.

Les codes sont contrôlés ailleurs. Une valeur hors de la liste VATEX est rejetée par BR-CL-22, et le code d'autoliquidation VATEX-EU-AE sur une ventilation exonérée est rejeté par la règle Peppol PEPPOL-EN16931-P0107, même avec un texte de motif à côté.

Un élément cbc:TaxExemptionReason vide suffit pour cette règle et est ensuite rejeté par PEPPOL-EN16931-R008.

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 :

  • L'exonération n'est enregistrée dans le système source que sous forme de code fiscal, sans description ni référence juridique que l'export pourrait utiliser.
  • Le motif existe par article ou par client, et l'export construit la ventilation de la TVA à partir de la seule catégorie et du seul taux.
  • La formulation est imprimée sur le PDF à partir d'un modèle et ne fait jamais partie des données structurées.
  • Les valeurs vides sont supprimées lors de la sérialisation, et le motif était vide pour ce code fiscal.
  • Une livraison au taux zéro ou hors du champ de la TVA a été associée à E par une règle fourre-tout, si bien qu'aucun motif d'exonération n'existe pour elle. Dans ce cas, c'est l'attribution de la catégorie qui est le défaut, et elle se corrige là où la catégorie est décidée.

Comment corriger le document

  1. Déterminez pourquoi la livraison est exonérée : sur quelle disposition ou quel régime votre détermination fiscale s'est appuyée. Si elle est réellement exonérée, la catégorie reste E.
  2. Ajoutez cbc:TaxExemptionReason avec une formulation qui énonce ce fondement, ou cbc:TaxExemptionReasonCode avec le code VATEX correspondant, dans le cac:TaxCategory de la ventilation E. Si aucun code de la liste ne convient, envoyez du texte.
  3. Placez les éléments dans l'ordre UBL : après cbc:Percent et avant cac:TaxScheme, avec le code avant le texte lorsque les deux sont envoyés. Dans le mauvais ordre, le document échoue à l'étape XSD et les étapes suivantes sont ignorées.
  4. Stockez le motif avec le code fiscal ou l'enregistrement d'exonération à la source, afin que l'export n'ait jamais à en inventer un.

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 : une ventilation exonérée qui ne donne aucun motif

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

Fragment de la facture corrigée : texte de motif ajouté à la catégorie de taxe

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cbc:TaxExemptionReason>Exempt from VAT</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

La facture corrigée porte cbc:TaxExemptionReason dans la catégorie de taxe E et la facture en échec non ; cet élément est toute la différence. Le document en échec ne signale que BR-E-10. Le texte du fichier de test, Exempt from VAT, est une formulation générique qui satisfait le contrôle ; une vraie facture devrait nommer le fondement réel.

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 exonéré sans motif signale la même règle.
  • Seule la catégorie E sous le régime fiscal VAT est concernée. L'autoliquidation a sa propre règle, BR-AE-10.
  • La règle ne lit que la ventilation de la TVA. La catégorie sur une ligne, ou sur une remise ou des frais au niveau du document, n'est pas l'endroit où le motif est recherché.
  • La taxe dans une ventilation exonérée est une autre question : un montant de taxe de 5.00 y entraîne BR-E-09 et BR-CO-17.

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-20.

La définition officielle de BR-E-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.