Aller au contenu

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

BR-O-10 : Ajouter le motif de non-soumission à la TVA dans la ventilation de la TVA

Une ventilation de la TVA en catégorie O doit indiquer que le montant n'est pas soumis à la TVA : le code VATEX-EU-O, un texte de motif, ou les deux.

EN 16931Erreur : le document n'est pas valideTVA

Sur cette page

La réponse courte

BR-O-10 échoue lorsque la cac:TaxCategory d'une ventilation de la TVA O n'a ni cbc:TaxExemptionReasonCode ni cbc:TaxExemptionReason. Ajoutez VATEX-EU-O comme code, Not subject to VAT ou le texte standard équivalent dans la langue de la facture, ou les deux ; la facture corrigée envoie les deux.

Il n'y a pas de taux dans une ventilation O sur lequel se repérer. Les éléments de motif viennent juste après cbc:ID et avant cac:TaxScheme.

Ce que la règle vérifie

Chaque cac:TaxCategory dont le cbc:ID vaut O et le schéma VAT dans cac:TaxTotal/cac:TaxSubtotal est testée séparément, et un constat pointe sur cet élément. Un enfant code de motif ou un enfant texte de motif la satisfait.

L'un des deux suffit largement. Lors d'un essai, la facture corrigée est restée valide avec seulement VATEX-EU-O, puis avec seulement le texte.

Le libellé n'est pas examiné. Le texte Outside the scope of VAT est passé, tout comme le code sans rapport VATEX-EU-132, sans constat à aucune étape.

Peppol associe certains codes à leurs propres catégories. Sur une ventilation O, VATEX-EU-IC a signalé PEPPOL-EN16931-P0106, VATEX-EU-G a signalé PEPPOL-EN16931-P0104 et VATEX-EU-AE a signalé PEPPOL-EN16931-P0107 lors d'un essai ; VATEX-EU-O sur une ventilation exonérée a signalé PEPPOL-EN16931-P0105.

Un cbc:TaxExemptionReason vide passe cette règle et est intercepté par PEPPOL-EN16931-R008, comme cela s'est produit lors d'un essai.

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 :

  • Les champs de motif ne sont générés que pour les ventilations exonérées, et O passe par une branche distincte qui écrit la catégorie et rien d'autre.
  • Le système source n'attribue aucun code de taxe aux montants hors champ, si bien qu'il n'existe aucun endroit où placer un motif.
  • La ventilation O a été calquée sur celle au taux zéro, qui ne porte pas de motif, et les champs de motif n'ont jamais été ajoutés.
  • Le motif est enregistré sur la ligne dans les données source et n'est pas reporté dans la ventilation.

Comment corriger le document

  1. Confirmez que les montants sont réellement hors du champ de la TVA, et le document entier aussi, puisque O ne peut pas partager un document avec d'autres catégories.
  2. Dans la cac:TaxCategory de la ventilation O, ajoutez cbc:TaxExemptionReasonCode avec VATEX-EU-O, cbc:TaxExemptionReason avec Not subject to VAT ou sa traduction standard, ou les deux.
  3. Placez-les après cbc:ID et avant cac:TaxScheme, le code avant le texte. Une ventilation O n'a pas besoin d'un cbc:Percent entre les deux.
  4. Rattachez le motif à la catégorie O dans le mapping, afin que chaque ventilation non soumise à la TVA soit écrite avec lui.

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 : la ventilation O ne contient que la catégorie et le schéma

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

Fragment de la facture corrigée : code et texte entre la catégorie et le schéma

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>O</cbc:ID>
    <cbc:TaxExemptionReasonCode>VATEX-EU-O</cbc:TaxExemptionReasonCode>
    <cbc:TaxExemptionReason>Not subject to VAT</cbc:TaxExemptionReason>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>

La facture corrigée porte cbc:TaxExemptionReasonCode VATEX-EU-O et cbc:TaxExemptionReason Not subject to VAT dans la catégorie de taxe O ; dans la facture en échec, cette catégorie ne contient que cbc:ID et cac:TaxScheme. Le reste des deux documents est identique, et BR-O-10 est le seul constat signalé par le document en échec.

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. Réécrite en avoir, la facture en échec a signalé cette règle sur la même ventilation lors d'un essai.
  • Seules les ventilations O sous le schéma VAT sont concernées. BR-E-10, BR-AE-10, BR-IC-10 et BR-G-10 sont les règles correspondantes pour les ventilations exonérées, en autoliquidation, de livraison intracommunautaire et d'exportation.
  • Un motif sur la ventilation ne règle pas les autres règles O : le document ne doit toujours avoir aucun identifiant TVA selon BR-O-02 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-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.