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.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-95 | Code de catégorie de TVA de la remise au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID |
| BT-96 | Taux de TVA de la remise au niveau du document | cac: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
0ou ometcbc: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
Savec un taux de 0 au lieu d'être déplacée.
Comment corriger le document
- 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.
- Écrivez ce taux dans
cbc:Percentde lacac:TaxCategoryde la remise, en conservantcbc:IDégal àSet le schéma fiscalVAT. - Si la remise couvre plusieurs taux, scindez-la en une remise par taux, chacune avec sa part du montant.
- 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. - 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é
- La facture en erreur signale BR-S-06 et BR-S-08. Le document corrigé passe toutes les étapes de validation sans constat.Télécharger le XML en erreurTélécharger le XML corrigé
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
InvoiceetCreditNote. La forme avoir de l'exemple enregistré a signaléBR-S-06etBR-S-08lors d'un essai. - Signalée par l'étape EN 16931 comme constat fatal sur la
cac:TaxCategoryde la remise, une fois par remise fautive. - Une remise sans aucune
cac:TaxCategoryéchoue plutôt surBR-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.
Règles liées
- BR-S-08 soustrait la remise de la base imposable de son taux, et a échoué en même temps que cette règle dans l'exemple enregistré
- BR-S-07 impose la même exigence aux frais au niveau du document au taux normal
- BR-32 exige d'abord une catégorie de TVA pour chaque remise au niveau du document
- BR-Z-06 exige que le taux d'une remise au taux zéro soit exactement 0
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : Understanding EN 16931 validation errors
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.

