Sur cette page
La réponse courte
UBL-SR-48 échoue pour chaque ligne dont le cac:Item ne contient pas exactement un cac:ClassifiedTaxCategory. Dans l'exemple enregistré, l'article porte deux fois la même catégorie au taux normal. Supprimez le bloc en trop, afin qu'il reste une catégorie avec son code, son taux et le schéma fiscal VAT.
Une ligne sans aucune catégorie échoue aussi à cette règle, en même temps qu'à BR-CO-04. La correction est alors l'inverse : ajoutez la catégorie dans laquelle la ligne a été imposée.
Ce que la règle vérifie
La règle s'exécute sur chaque cac:InvoiceLine et cac:CreditNoteLine et compte les enfants cac:ClassifiedTaxCategory de son article. Le nombre doit être exactement 1, et le constat est placé sur la ligne.
Chaque catégorie est comptée, quoi qu'elle dise. Lors d'un essai, une seconde catégorie identique à la première, une seconde au taux normal de 5 pour cent et une sous un schéma fiscal autre que VAT ont chacune signalé cette règle et rien d'autre.
Les règles de ventilation de la TVA ne remarquent que certaines secondes catégories. Lors d'un essai, une seconde catégorie au taux zéro a en plus déclenché BR-Z-01, et une catégorie exonérée BR-E-01, car chacune introduisait une catégorie sans ventilation de la TVA correspondante.
Lors d'un essai, retirer l'unique catégorie de la ligne a signalé cette règle avec BR-CO-04, BR-S-01 et BR-S-08.
| Terme | Signification | Élément UBL |
|---|---|---|
| BG-30 | Informations sur la TVA de la ligne | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory in a credit note) |
| BT-151 | Code de catégorie de TVA de l'article facturé | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/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 :
- Le référentiel article contient plusieurs codes fiscaux, comme la TVA et une taxe locale, et l'export écrit un
cac:ClassifiedTaxCategorypour chacun. - La catégorie est écrite une fois à partir du produit et une seconde fois à partir du calcul fiscal, ce qui duplique le bloc.
- Une ligne qui mélange des articles imposés à des taux différents est exportée comme une seule ligne portant les catégories des deux.
Comment corriger le document
- Utilisez l'emplacement du constat pour voir quelle ligne est concernée.
- Gardez un seul
cac:ClassifiedTaxCategorydans son article : la catégorie et le taux de TVA auxquels la ligne a réellement été imposée, sous le schéma fiscalVAT. - Si la ligne couvre vraiment des articles imposés différemment, scindez-la en une ligne par catégorie, afin que chacune tombe dans sa propre ventilation de la TVA.
- Laissez les autres taxes hors de la catégorie de l'article. Elles ne sont pas des informations sur la TVA de la ligne ; si l'une d'elles doit figurer sur la ligne, présentez-la comme des frais de ligne.
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 catégorie au taux normal apparaît deux fois dans l'article
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- quantity and line net amount omitted from this fragment -->
<cac:Item>
<cbc:Name>Example service</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<!-- price omitted from this fragment -->
</cac:InvoiceLine>Fragment de la facture corrigée : une seule catégorie au taux normal de 20 pour cent
<cac:Item>
<cbc:Name>Example service</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>La facture en échec répète le cac:ClassifiedTaxCategory au taux normal de son unique ligne ; la facture corrigée ne l'a qu'une fois. Le doublon est identique, si bien que la ventilation de la TVA, le montant net de ligne et tous les totaux concordent toujours, et UBL-SR-48 est le seul constat, placé sur cac:InvoiceLine[1].
Ce que le validateur a signalé
- La facture en erreur signale UBL-SR-48. 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, une ligne d'avoir avec la catégorie en double a signalé cette règle surcac:CreditNoteLine[1]. - Signalée par l'étape EN 16931 ; l'étape Peppol a validé la facture en échec enregistrée.
- Les remises et frais au niveau du document portent leur catégorie dans
cac:TaxCategory, et non danscac:ClassifiedTaxCategory, et ne sont pas comptés ici.
Règles liées
- BR-CO-04 exige le code de catégorie de TVA dans l'unique catégorie que cette règle autorise
- BR-Z-01 est aussi signalée lorsque la catégorie en trop est au taux zéro et n'a pas de ventilation
- BR-CL-18 vérifie que le code de catégorie de la ligne est un code autorisé
- 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 UBL-SR-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.

