Aller au contenu

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

BR-O-13 : Garder en catégorie O les remises au niveau du document sur une facture non soumise à la TVA

Lorsque la ventilation de la TVA est en catégorie O, chaque remise au niveau du document doit aussi être en O ; une remise codée S à 20 sur un tel document est rejetée.

EN 16931Erreur : le document n'est pas valideTVARemises et frais

Sur cette page

La réponse courte

BR-O-13 échoue lorsque le document a une ventilation de la TVA O et une remise, un cac:AllowanceCharge avec cbc:ChargeIndicator false, dont la cac:TaxCategory est dans une autre catégorie sous le schéma VAT. Dans la facture enregistrée, le Loyalty discount de 5.00 est codé S à 20 alors que la ligne et la ventilation sont en O. Remettez la remise en O, sans taux, et déduisez-la de la base imposable O.

Une remise suit le traitement TVA de ce qu'elle réduit. Sur une facture où tout est hors du champ de la TVA, une remise au taux normal réduirait une TVA qui n'a jamais été facturée.

Ce que la règle vérifie

Après avoir trouvé une ventilation O, la règle compte les éléments cac:TaxCategory sous le schéma VAT dont le cbc:ID n'est pas O à l'intérieur des remises, où que se trouvent ces remises, et exige que le compte soit nul. BR-O-11 ne voit pas ce cas, car aucune seconde ventilation n'existe.

La recherche descend sous la racine. Lors d'un essai, une remise de 0.00 à l'intérieur de la ligne O, avec une cac:TaxCategory S à 20, a signalé cette règle avec BR-S-01, BR-S-03 et l'avertissement UBL-CR-558, qui déconseille une catégorie de taxe sur une remise de ligne.

Toute autre catégorie est attrapée. Avec la remise codée E à 0, les constats ont été cette règle, BR-E-01 et BR-E-03 ; codée Z à 0, cette règle, BR-Z-01 et BR-Z-03.

Donner à la remise au taux normal sa propre ventilation ne change que la compagnie de cette règle : lors d'un essai, une ventilation S de -5.00 a remplacé BR-S-01 par BR-O-11, et cette règle ainsi que BR-S-03 sont restées.

TermeSignificationÉlément UBL
BG-20Remises au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = false]
BT-95Code de catégorie de TVA de la remise au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID
BT-118Code de catégorie de TVAcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:ID

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 remises sont créées à partir d'un modèle portant le taux normal, quelle que soit la catégorie de la facture à laquelle elles sont ajoutées.
  • La remise reprend sa catégorie du code de taxe par défaut du vendeur plutôt que des lignes qu'elle réduit.
  • Un moteur de promotions extérieur au système de facturation ajoute la remise avec ses propres paramètres fiscaux.

Comment corriger le document

  1. Déterminez quelles lignes la remise réduit. Si elles sont toutes en O, la remise relève aussi de O.
  2. Changez la cac:TaxCategory/cbc:ID de la remise en O et supprimez son cbc:Percent, comme l'exige BR-O-06.
  3. Déduisez la remise dans la ventilation O : dans l'exemple enregistré, la base imposable O passe de 25.00 à 20.00, en accord avec les totaux, qui déduisent déjà la remise.
  4. Si la remise porte réellement sur des fournitures taxables, ces fournitures et la remise relèvent d'une facture distincte avec leur propre ventilation.

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 remise de fidélité au taux normal sur un document dont l'unique ventilation est O

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Loyalty discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">5.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <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>
      <!-- reason code and text omitted from this fragment -->
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

Fragment de la facture corrigée : la remise est en O et déduite dans la ventilation O

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Loyalty discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">5.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>O</cbc:ID>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="GBP">20.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="GBP">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>O</cbc:ID>
      <!-- reason code and text omitted from this fragment -->
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

Dans la facture en échec, le Loyalty discount a le cbc:ID S et le cbc:Percent 20, et la base imposable O vaut 25.00, la ligne sans la remise ; la facture corrigée code la remise en O sans taux et la déduit, ce qui donne 20.00. La ventilation en échec a été fixée à 25.00 pour correspondre à son propre contenu O et laisser BR-O-08 silencieux ; avec la seule remise recodée, cette règle s'est ajoutée aux constats lors d'un essai. Le document en échec signale aussi BR-S-01, puisque la remise au taux normal n'a pas de ventilation au taux normal, et BR-S-03, puisqu'une remise au taux normal exige un identifiant TVA du vendeur, un identifiant d'immatriculation fiscale ou un représentant fiscal.

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 ; la version avoir de la facture en échec a signalé les trois mêmes constats lors d'un essai.
  • Les lignes et les frais ont les règles correspondantes BR-O-12 et BR-O-14. Seule une ventilation O active les trois ; une remise en O sur un document sans ventilation O relève de BR-O-01.

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-28.1 : source vérifiée le 2026-09-28, explication mise à jour le 2026-09-28.

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