Aller au contenu

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

BR-S-06 : Donner à une remise au niveau du document au taux normal un taux de TVA supérieur à zéro

Une remise au niveau du document dans la catégorie de TVA S doit indiquer dans cbc:Percent le taux des livraisons ou prestations qu'elle réduit, et ce taux doit être supérieur à zéro.

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

Sur cette page

La réponse courte

BR-S-06 échoue sur chaque remise dont la cac:TaxCategory a un cbc:ID égal à S sous le schéma VAT et un cbc:Percent absent, nul ou négatif. Donnez-lui le taux normal des livraisons ou prestations que la remise réduit : la remise de fidélité de l'exemple enregistré porte sur une ligne à 20, son taux est donc 20.

Une remise porte le taux de TVA de ce qu'elle réduit. Écrire 0 parce qu'une remise n'est pas une vente en soi met la catégorie et le taux en contradiction, et retire la remise de la base imposable au taux normal.

Ce que la règle vérifie

Chaque cac:TaxCategory égale à S sous le schéma VAT dans un cac:AllowanceCharge dont le cbc:ChargeIndicator vaut false est contrôlée, et un échec est signalé sur cette catégorie. Une remise placée dans une ligne de facture compte aussi : lors d'un essai, une remise avec sa propre catégorie S à 0 a signalé cette règle sur le cac:AllowanceCharge de la ligne, avec l'avertissement UBL-CR-558.

Le taux ne passe que comme nombre supérieur à zéro. Lors d'un essai sur la facture avec remise de fidélité, -20 et un cbc:Percent omis ont chacun signalé cette règle, les deux fois avec BR-S-08.

Tout nombre positif passe, juste ou faux. Lors d'un essai, la remise à 5 à côté d'une ligne et d'une ventilation à 20 a passé cette règle, et seul BR-S-08 s'y est opposé, car la remise ne comptait plus pour le taux de 20.

Les frais et les lignes relèvent de leurs propres règles : des frais au niveau du document au taux normal à 0 relèvent de BR-S-07, une ligne au taux normal à 0 de BR-S-05.

TermeSignificationÉlément UBL
BT-95Code de catégorie de TVA de la remise au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID
BT-96Taux de TVA de la remise au niveau du documentcac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:Percent

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'export considère que les remises n'ont pas de TVA propre et écrit un taux de 0 pour chaque remise, tout en conservant la catégorie des lignes.
  • Le taux est lu dans un champ que seuls les produits possèdent, si bien qu'une remise d'en-tête n'a rien à lire et que le sérialiseur écrit 0 ou omet cbc:Percent.
  • Un signe moins destiné au montant est appliqué aussi au taux, ce qui donne -20.
  • La remise porte en réalité sur des livraisons ou prestations d'une autre catégorie, mais elle est restée dans la catégorie S avec un taux de 0 au lieu d'être déplacée.

Comment corriger le document

  1. Identifiez les livraisons ou prestations que la remise réduit et le taux normal qu'elles portent : dans l'exemple enregistré, la ligne unique à 20.
  2. Écrivez ce taux dans cbc:Percent de la cac:TaxCategory de la remise, en conservant cbc:ID égal à S et le schéma fiscal VAT.
  3. Si la remise couvre plusieurs taux, scindez-la en une remise par taux, chacune avec sa part du montant.
  4. Si les livraisons ou prestations remisées ne sont pas au taux normal, donnez à la remise leur catégorie et leur taux, par exemple Z à 0, et déplacez le montant vers cette ventilation.
  5. Recalculez la ventilation au taux normal pour ce taux : la base imposable doit soustraire la remise, ce que contrôle BR-S-08, et le montant de taxe en découle.

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 remise au taux normal à 0, à côté d'une ventilation à 20 qui la déduit

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>100</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Loyalty rebate</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">5.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="GBP">20.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="GBP">4.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <!-- tax scheme omitted from this fragment -->
  </cac:TaxCategory>
</cac:TaxSubtotal>

Fragment de la facture corrigée : la remise porte le taux de la ligne qu'elle réduit

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>100</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Loyalty rebate</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>

Seul le cbc:Percent de la remise de fidélité diffère : 0 dans la facture en échec, 20 dans la facture corrigée. Le document en échec signale aussi BR-S-08 sur la ventilation à 20 : avec la remise à un autre taux, le contenu au taux normal à 20 se réduit à la ligne de 25.00, alors que la ventilation indique 20.00, un écart de 5.00. Rétablir le taux ramène la remise dans cette somme et lève les deux constats.

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 forme avoir de l'exemple enregistré a signalé BR-S-06 et BR-S-08 lors d'un essai.
  • Signalée par l'étape EN 16931 comme constat fatal sur la cac:TaxCategory de la remise, une fois par remise fautive.
  • Une remise sans aucune cac:TaxCategory échoue plutôt sur BR-32 ; cette règle ne voit que les remises qui indiquent déjà S.
  • Les remises au taux zéro exigent l'inverse, un taux d'exactement 0, selon BR-Z-06.

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