Sur cette page
La réponse courte
BR-32 échoue lorsqu'un cac:AllowanceCharge au niveau racine dont le cbc:ChargeIndicator vaut false n'a pas de code de catégorie de TVA, c'est-à-dire aucun cac:TaxCategory avec un cbc:ID dont le cac:TaxScheme/cbc:ID est VAT. Ajoutez la catégorie et le taux des livraisons ou prestations que la remise réduit, comme le fait la facture corrigée avec S à 20.
Une remise sans catégorie n'est déduite dans aucune ventilation de la TVA, si bien que les contrôles de base imposable la perdent ; dans l'exemple enregistré, BR-S-08 échoue en même temps.
Ce que la règle vérifie
Chaque cac:AllowanceCharge placé directement sous la racine Invoice ou CreditNote et qui se lit comme une remise doit contenir un cac:TaxCategory qui a un enfant cbc:ID et appartient au schéma fiscal VAT.
Le schéma est comparé après suppression des espaces et passage en majuscules : vat passe donc. Une catégorie relevant d'un autre schéma ne compte pas : lors d'un essai avec GST à la place de VAT, BR-32 a été signalé.
Le code de catégorie doit être présent en tant qu'élément. Lors d'un essai, un cac:TaxCategory avec un taux mais sans cbc:ID a signalé cette règle ; celui qui avait un cbc:ID vide l'a passée et a été rejeté par BR-CL-17 et PEPPOL-EN16931-R008 à la place.
Le taux est contrôlé par d'autres règles. Avec S et sans cbc:Percent, le document a signalé BR-S-06 et BR-S-08 plutôt que cette règle.
Les frais au niveau du document ont la règle correspondante BR-37. Les remises sur une ligne ne portent pas de catégorie propre, car elles font partie du montant net de la ligne et prennent la catégorie de la ligne.
| Terme | Signification | Élément UBL |
|---|---|---|
| BG-20 | Remises au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = false] |
| BT-95 | Code de catégorie de TVA de la remise au niveau du document | cac:AllowanceCharge/cac:TaxCategory/cbc:ID |
| BT-96 | Taux de TVA de la remise au niveau du document | cac:AllowanceCharge/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 :
- La remise est modélisée comme un montant d'en-tête sans attributs fiscaux, car le système source l'applique après le calcul de la TVA.
- Le mapping copie la catégorie de taxe sur les lignes et les frais, mais n'a jamais été écrit pour les remises.
- Le document couvre plusieurs catégories ou taux de TVA, et l'export ne sait pas à laquelle la remise appartient : il omet donc la catégorie.
- Le
cac:TaxSchemeporte un nom de taxe local, ou est absent, au lieu deVAT.
Comment corriger le document
- Déterminez quelles livraisons ou prestations la remise réduit. Sa catégorie et son taux de TVA sont ceux des livraisons ou prestations auxquelles elle s'applique.
- Ajoutez
cac:TaxCategoryaprèscbc:Amount(et aprèscbc:BaseAmounts'il est présent), aveccbc:IDpour la catégorie,cbc:Percentpour le taux etcac:TaxScheme/cbc:IDàVAT. - Si une même remise couvre des livraisons ou prestations de catégories ou de taux différents, scindez-la en une remise par catégorie et par taux, chacune avec sa part du montant. Le total des remises reste le même.
- Vérifiez la ventilation de la TVA : la remise doit être soustraite de la base imposable de sa catégorie et de son taux, et le montant de taxe recalculé à partir de là.
BR-S-08et les règles correspondantes pour les autres catégories contrôlent cette somme.
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 niveau du document a un motif et un montant, mais aucune catégorie de taxe
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">1.00</cbc:Amount>
</cac:AllowanceCharge>Fragment de la facture corrigée : la remise est au taux normal de 20 dans le schéma TVA
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">1.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>La facture corrigée porte sur sa remise au niveau du document un cac:TaxCategory S à 20 dans le schéma VAT, et la facture en échec n'en a aucun. Le document en échec signale aussi BR-S-08 : sans catégorie, la remise de 1.00 sort de la somme au taux normal, qui devient 56.00 de lignes plus les frais de 3.50, soit 59.50, un écart de 1.00 entier par rapport à la base imposable de 58.50. Rétablir la catégorie ramène cette somme à 58.50 et fait disparaître les deux constats.
Ce que le validateur a signalé
- La facture en erreur signale BR-32 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 à
Invoiceet àCreditNote; lors d'un essai, la version avoir de l'exemple enregistré a signaléBR-32etBR-S-08aux mêmes endroits. - La règle de base imposable qui l'accompagne dépend de la ventilation que la remise aurait dû réduire. Ici, c'est la ventilation au taux normal, donc
BR-S-08. - Ajouter la catégorie ne suffit pas pour la catégorie
S: la remise a aussi besoin d'un taux supérieur à zéro, ce que vérifieBR-S-06.
Règles liées
- BR-S-08 soustrait de la base imposable les remises au niveau du document au taux normal, et échoue lorsque la remise en question n'a pas de catégorie
- BR-CL-17 vérifie que le code de catégorie, une fois fourni, figure dans la liste UNTDID 5305
- BR-CO-21 exige un motif sur la même remise au niveau du document
- BR-CO-11 additionne les remises au niveau du document dans le total des remises
- 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-24.1 : source vérifiée le 2026-09-24, explication mise à jour le 2026-09-24.
La définition officielle de BR-32 (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.

