Sur cette page
La réponse courte
BR-DEC-20 échoue lorsque le cbc:TaxAmount à l'intérieur d'un cac:TaxSubtotal a plus de deux chiffres après le point décimal. Arrondissez le montant de taxe de cette ventilation de la TVA à deux décimales et écrivez-le sans aucune de plus.
Le constat pointe sur le cac:TaxSubtotal : avec plusieurs catégories de TVA, contrôlez donc celle indiquée dans l'emplacement du constat. UBL-DT-01 est signalé en même temps sur son cbc:TaxAmount.
Ce que la règle vérifie
La règle s'exécute sur chaque cac:TaxSubtotal à l'intérieur d'un cac:TaxTotal et compte les caractères après le point décimal dans son cbc:TaxAmount. Deux ou moins passent.
Chaque ventilation est soumise à la limite, quels que soient sa catégorie ou son taux. Lors d'un essai, une ventilation au taux zéro avec un montant de taxe de 0.000 a échoué de la même manière que celle au taux normal.
La base d'imposition de la même ventilation relève de BR-DEC-19, et le total de TVA au-dessus des ventilations est laissé au seul UBL-DT-01. Lors d'un essai où la ventilation au taux normal et le total de TVA étaient tous deux écrits 11.700, cette règle a été signalée une fois et UBL-DT-01 deux fois.
Seule la forme écrite est testée. Lors d'un essai, 11.704 a signalé cette règle et UBL-DT-01 et rien d'autre, car le contrôle du total de TVA arrondit la somme des ventilations et les contrôles de taux admettent une marge ; 11.705 s'arrondit à 11.71 et a aussi entraîné BR-CO-14.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-117 | Montant de la TVA de la catégorie | cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount |
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 TVA par catégorie est calculée comme la base d'imposition multipliée par le taux et écrite sans arrondi, ou arrondie mais écrite par un formateur réglé sur trois décimales.
- La ventilation est construite en additionnant des montants de TVA de ligne conservés avec trois ou quatre décimales.
- Un moteur fiscal renvoie des montants à sa précision interne, et le mapping les transmet tels quels.
Comment corriger le document
- Calculez chaque montant de taxe de ventilation à partir de sa base d'imposition et de son taux, et arrondissez-le une seule fois à deux décimales.
- Écrivez la valeur arrondie, avec deux décimales au plus et sans espaces, dans
cbc:TaxAmountà l'intérieur de cecac:TaxSubtotal. - Additionnez les montants arrondis des ventilations pour obtenir le total de TVA, afin que
BR-CO-14concorde, et écrivez ce total lui aussi avec deux décimales.
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 indique sa taxe sous la forme 11.700
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">58.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">11.700</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<!-- tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>
<!-- zero-rated breakdown omitted from this fragment -->
</cac:TaxTotal>Fragment de la facture corrigée : le même montant de taxe écrit 11.70
<cac:TaxTotal>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">58.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">11.70</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<!-- tax scheme omitted from this fragment -->
</cac:TaxCategory>
</cac:TaxSubtotal>
<!-- zero-rated breakdown omitted from this fragment -->
</cac:TaxTotal>Dans la facture en échec, la ventilation au taux normal indique sa taxe sous la forme 11.700 ; la facture corrigée indique 11.70, et le total de TVA au-dessus vaut 11.70 dans les deux. Comme la valeur ne change pas, BR-CO-14 et les autres contrôles de TVA passent toujours. Deux constats sont signalés : BR-DEC-20 sur le premier cac:TaxSubtotal, et UBL-DT-01 sur son cbc:TaxAmount. Ce dernier impose deux décimales à tout élément nommé comme un montant, en excluant seulement les prix des articles et les montants de remise au niveau du prix ; un montant de taxe de ventilation ne peut donc pas enfreindre l'une sans enfreindre l'autre.
Ce que le validateur a signalé
- La facture en erreur signale BR-DEC-20 et UBL-DT-01. 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. Lors d'un essai, un avoir avec11.700dans la même ventilation a signalé les deux mêmes règles. - La règle ne lit que le texte : elle ignore dans quelle devise le montant est exprimé, et cela lui est indifférent.
- Pour le total de TVA lui-même, la version épinglée n'a pas d'équivalent opérationnel de cette règle ; c'est pourquoi un zéro de remplissage sur ce montant ne signale que
UBL-DT-01.
Règles liées
- UBL-DT-01 signale le montant de taxe de la ventilation à côté de cette règle, et couvre seul le total de TVA au-dessus
- BR-CO-14 additionne les montants de taxe des ventilations pour contrôler le total de TVA
- BR-CO-17 contrôle chaque montant de taxe de ventilation par rapport à sa base d'imposition et à son 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-DEC-20 (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.

