Sur cette page
La réponse courte
BR-48 échoue pour chaque cac:TaxSubtotal dont la catégorie de taxe TVA n'a pas de cbc:Percent, sauf si la catégorie est O. Ajoutez cbc:Percent au cac:TaxCategory de la ventilation, juste après cbc:ID, avec le taux en pourcentage : 20 pour 20%, et 0 pour le taux zéro, l'exonération et les autres catégories qui n'appliquent pas de TVA.
La catégorie O est la seule exception. Une livraison ou prestation hors du champ d'application de la TVA n'a pas de taux à indiquer : sa ventilation peut donc omettre l'élément.
Ce que la règle vérifie
La règle s'exécute sur chaque cac:TaxSubtotal d'un cac:TaxTotal et lit le cac:TaxCategory dont le schéma fiscal est VAT. Elle est satisfaite lorsque cette catégorie a un élément cbc:Percent, ou lorsque son cbc:ID est O.
Zéro est un taux comme un autre. Une ventilation exonérée sans cbc:Percent a été signalée par cette seule règle lors d'un essai ; la correction consiste alors à écrire 0, pas à omettre l'élément.
L'exception permet seulement que le taux soit absent. Une ventilation de catégorie O portant un cbc:Percent de 0 a elle aussi été acceptée lors d'un essai.
Un cbc:Percent vide n'est pas un nombre. Lors d'un essai, il a échoué à l'étape XSD, si bien que cette règle et les autres règles métier n'ont jamais été évaluées.
Les taux des lignes ne sont pas lus. Lorsque le taux a été retiré d'une ligne au taux normal à la place, les constats ont été BR-S-05 et BR-S-08 lors d'un essai, et non cette règle.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-119 | Taux de la catégorie de TVA | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:Percent |
| BT-118 | Code de catégorie de TVA | cac: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 taux nuls sont traités comme une absence de taux et supprimés, si bien que les ventilations au taux zéro et exonérées perdent
cbc:Percent. - Le récapitulatif de TVA n'est regroupé que par catégorie, et le taux n'est pas reporté dans la ventilation.
- L'exception pour
Oest appliquée à toutes les catégories qui n'appliquent pas de TVA, ce qui retire aussi le taux des ventilations exonérées ou en autoliquidation. - Le taux est conservé sous forme de texte, comme
Standard, et l'export l'abandonne lorsqu'il ne peut pas l'écrire sous forme de nombre.
Comment corriger le document
- Pour chaque ventilation, prenez le taux des lignes, remises et frais qu'elle couvre. Une ventilation regroupe les éléments par catégorie et par taux : il y en a donc exactement un.
- Écrivez-le dans
cbc:Percentà l'intérieur ducac:TaxCategoryde la ventilation, aprèscbc:IDet avant un éventuel motif d'exonération, sous forme de pourcentage :20, et non0.2ou20%. - Pour
Z,E,AE,KetG, écrivez0. N'omettez l'élément que pourO. - Recalculez le
cbc:TaxAmountde la ventilation à partir de la base imposable et du taux, carBR-CO-17les contrôle ensemble.
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 au taux normal n'indique aucun taux
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>Fragment de la facture corrigée : le taux de 20 suit le code de catégorie
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>La facture corrigée a <cbc:Percent>20</cbc:Percent> après le code de catégorie dans la ventilation ; rien d'autre ne diffère. Le document en échec signale aussi BR-CO-17 et BR-S-09, qui vérifient tous deux les 5.00 de taxe comme base imposable x taux / 100 et ne peuvent pas arriver à 5.00 sans taux. BR-CO-17 traite un taux manquant comme un taux nul et attend une taxe qui s'arrondit à rien ; BR-S-09 n'a aucune réponse sans taux. Rétablir le taux fait disparaître les trois constats.
Ce que le validateur a signalé
- La facture en erreur signale BR-48, BR-CO-17 et BR-S-09. 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 àCreditNoteen UBL. Lors d'un essai, un avoir dont le taux avait été retiré de la ventilation a signalé les trois mêmes règles. - Signalé par l'étape EN 16931 ; l'étape Peppol accepte l'exemple enregistré.
- Une ventilation dont le schéma fiscal n'est pas
VATn'a pas de taux de TVA pour cette règle : lors d'un essai, une ventilation relevant deGSTa échoué ici malgré soncbc:Percent, en même temps queBR-47etBR-CO-17.
Règles liées
- BR-CO-17 vérifie le montant de taxe de la ventilation par rapport au taux et est signalé avec cette règle
- BR-S-09 est le calcul de la taxe au taux normal, qui a lui aussi besoin du taux
- BR-47 exige le code de catégorie qui décide si le taux peut être omis
- BR-O-05 va dans l'autre sens pour les lignes : une ligne de catégorie O ne doit pas porter de taux
- 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-48 (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.

