Sur cette page
La réponse courte
BR-45 échoue pour chaque cac:TaxSubtotal qui n'a pas d'enfant cbc:TaxableAmount. Ajoutez-le comme premier enfant de la ventilation, avec le total net pour cette catégorie et ce taux : les montants nets des lignes, plus les frais au niveau du document, moins les remises au niveau du document, dans la devise du document.
Attendez-vous à ce que les règles de calcul de la ventilation échouent à côté. Elles partent de la base imposable et ne peuvent pas réussir tant qu'elle manque.
Ce que la règle vérifie
La règle s'exécute sur chaque cac:TaxSubtotal d'un cac:TaxTotal et est satisfaite lorsqu'un élément cbc:TaxableAmount est présent. L'emplacement du constat est la ventilation à laquelle il manque.
UBL traite l'élément comme facultatif : une base imposable manquante passe donc l'étape XSD et est signalée d'abord ici. Un cbc:TaxableAmount vide est un cas différent : ce n'est pas un montant valide, et lors d'un essai il a échoué à l'étape XSD, si bien que ni cette règle ni les autres règles métier ne se sont exécutées.
N'importe quelle valeur satisfait cette règle, zéro compris. Lors d'un essai, une base imposable de 0.00 sur une ventilation à 20% avec 5.00 de taxe a satisfait BR-45 et a tout de même signalé BR-CO-17, BR-S-08 et BR-S-09.
La catégorie ne change rien pour cette règle. Une ventilation exonérée sans base imposable l'a signalée lors d'un essai, avec BR-E-08, le contrôle de la base imposable exonérée.
| Terme | Signification | Élément UBL |
|---|---|---|
| BG-23 | Ventilation de la TVA | cac:TaxTotal/cac:TaxSubtotal |
| BT-116 | Base imposable de la catégorie de TVA | cac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount |
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 ventilation est construite à partir d'un récapitulatif de TVA qui ne stocke que le taux et la taxe, et le montant net par taux n'est jamais reporté.
- La base imposable est facultative dans le mapping et est omise lorsqu'elle n'a pas de valeur, par exemple sur une ventilation créée par un ajustement manuel de TVA.
- Une base imposable de zéro est traitée comme une absence de valeur et supprimée par le sérialiseur.
Comment corriger le document
- Pour chaque
cac:TaxSubtotal, lisez sa catégorie et son taux danscac:TaxCategory. - Additionnez le
cbc:LineExtensionAmountdes lignes de cette catégorie et de ce taux, ajoutez les frais au niveau racine et soustrayez les remises au niveau racine de la même catégorie et du même taux, en arithmétique décimale. - Écrivez le résultat en tant que
cbc:TaxableAmount, avec la devise du document danscurrencyID, comme premier enfant de la ventilation et avantcbc:TaxAmount. - Vérifiez le
cbc:TaxAmountde la ventilation par rapport au chiffre rétabli, carBR-CO-17et la règle de la catégorie le comparent à base imposable x taux / 100.
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 de la TVA a un montant de taxe mais pas de base imposable
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<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>
</cac:TaxTotal>Fragment de la facture corrigée : la base imposable de 25.00 ouvre la ventilation
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">5.00</cbc:TaxAmount>
<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>
</cac:TaxTotal>La facture corrigée a <cbc:TaxableAmount currencyID="GBP">25.00</cbc:TaxableAmount> au début de la ventilation ; rien d'autre ne diffère. Le document en échec signale trois autres règles, toutes parce que le chiffre de base a disparu. BR-CO-17 et BR-S-09 multiplient la base imposable par le taux pour vérifier les 5.00 de taxe, et sans base imposable il n'y a pas de produit à comparer. BR-S-08 compare la base imposable au taux normal avec la ligne de 25.00 et ne trouve aucun montant du côté de la ventilation. Rétablir l'élément fait disparaître les quatre constats.
Ce que le validateur a signalé
- La facture en erreur signale BR-45, BR-CO-17, BR-S-08 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 sans base imposable a signalé les quatre mêmes règles. - Signalé par l'étape EN 16931 ; l'étape Peppol accepte l'exemple enregistré.
- Les règles de calcul qui l'accompagnent dépendent de la catégorie de la ventilation :
BR-S-08etBR-S-09pour le taux normal,BR-E-08pour l'exonération, et les règles correspondantes pour les autres catégories. - Le total de taxe dans une devise de comptabilisation de la TVA n'a pas de ventilation : il n'a donc pas de base imposable et n'est pas contrôlé ici.
Règles liées
- BR-CO-17 vérifie le montant de taxe de chaque ventilation par rapport à la base imposable et au taux
- BR-S-08 vérifie la base imposable au taux normal par rapport aux lignes, aux remises et aux frais
- BR-S-09 refait le calcul de la taxe pour les ventilations au taux normal
- BR-E-08 vérifie la base imposable exonérée et accompagne cette règle sur une ventilation exonérée
- 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-45 (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.

