Sur cette page
La réponse courte
BR-S-07 échoue sur chaque ensemble de frais dont la cac:TaxCategory a un cbc:ID égal à S sous le schéma VAT mais aucun cbc:Percent positif. Écrivez le taux normal auquel les frais sont imposés ; les frais de transport de l'exemple enregistré avaient entièrement perdu leur taux, et la facture corrigée indique 20.
Sans taux, les frais ne peuvent être rattachés à aucune ventilation au taux normal, si bien que la base imposable à 20 ne tombe plus juste non plus.
Ce que la règle vérifie
La règle parcourt chaque cac:TaxCategory égale à S sous le schéma VAT dans un cac:AllowanceCharge dont le cbc:ChargeIndicator vaut true, y compris dans une ligne de facture : lors d'un essai, des frais de ligne avec leur propre catégorie S à 0 ont signalé cette règle sur cac:InvoiceLine[1]/cac:AllowanceCharge[1]/cac:TaxCategory[1], avec l'avertissement UBL-CR-558.
Un cbc:Percent absent n'est pas supérieur à zéro et échoue donc, comme dans l'exemple enregistré. Les frais de transport au taux 0 ont échoué de la même façon lors d'un essai, là encore avec BR-S-08.
Un cbc:Percent vide n'arrive jamais jusque-là. Lors d'un essai, <cbc:Percent></cbc:Percent> sur les frais de transport a été rejeté par l'étape XSD, et les étapes EN 16931 et Peppol ont été sautées.
La comparaison se fait seulement avec zéro. Un taux de frais écrit sous forme de fraction, 0.2, a passé cette règle lors d'un essai, et BR-S-08 a signalé à la place la ventilation à 20, car les frais n'étaient plus à ce taux.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-102 | Code de catégorie de TVA des charges ou frais au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID |
| BT-103 | Taux de TVA des charges ou frais au niveau du document | cac:AllowanceCharge[cbc:ChargeIndicator = true]/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 :
- Le module d'expédition ou de transporteur qui ajoute le transport enregistre une catégorie de taxe mais aucun taux, et l'export n'écrit que la catégorie.
- Les taux ne sont recherchés que pour les articles, et des frais au niveau du document n'ont pas de fiche article où en trouver un.
- Les frais sont exportés avec
cbc:Percentà 0 parce que la redevance est considérée comme hors TVA, alors que la catégorie resteS. - Un champ de taux vide dans la source est supprimé par le sérialiseur au lieu d'être signalé, si bien que la lacune atteint le document.
Comment corriger le document
- Retrouvez les frais à partir de l'emplacement du constat,
cac:AllowanceCharge[1]dans l'exemple enregistré. L'index compte chaquecac:AllowanceChargesous la racine, remises et frais ensemble. - Établissez le taux de TVA des frais à partir de leur code de taxe. Les frais de transport au taux normal de l'exemple enregistré sont imposés à
20. - Écrivez le taux dans
cbc:Percent, juste aprèscbc:IDdans lacac:TaxCategorydes frais et avantcac:TaxScheme. - Si les frais ne sont pas réellement au taux normal, donnez-leur la catégorie applicable, avec le taux qu'exige cette catégorie, et déplacez-les vers cette ventilation.
- Vérifiez que la ventilation au taux normal pour ce taux inclut les frais dans sa base imposable, ce que contrôle
BR-S-08.
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 : les frais de transport indiquent S mais aucun taux
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">7.50</cbc:Amount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:AllowanceCharge>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="GBP">32.50</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="GBP">6.50</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 : les frais de transport sont au taux normal de 20
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="GBP">7.50</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 en échec n'a pas de cbc:Percent dans la cac:TaxCategory des frais de transport ; la facture corrigée y a 20, et rien d'autre ne diffère. BR-S-08 est signalé également : des frais sans taux ne comptent pas à 20, si bien que le contenu au taux normal à ce taux se réduit à la ligne de 25.00, face à une base imposable de 32.50. Rétablir le taux lève les deux constats.
Ce que le validateur a signalé
- La facture en erreur signale BR-S-07 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. Un avoir tiré de l'exemple enregistré a signaléBR-S-07etBR-S-08lors d'un essai. - L'étape EN 16931 la signale comme fatale, sur la
cac:TaxCategorydes frais, pour chaque ensemble de frais fautif. - Des frais sans aucune
cac:TaxCategorysont interceptés parBR-37à la place. Les frais au taux zéro exigent un taux d'exactement 0 selonBR-Z-07. - Les remises sont couvertes de la même manière par
BR-S-06.
Règles liées
- BR-S-06 est la même exigence pour les remises au niveau du document au taux normal
- BR-S-08 ajoute les frais à la base imposable de leur taux, et a échoué en même temps que cette règle dans l'exemple enregistré
- BR-37 exige que tous frais au niveau du document portent une catégorie de TVA
- BR-S-04 exige un identifiant TVA du vendeur dès que des frais au niveau du document sont au taux normal
- 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-07 (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.

