Aller au contenu

Ironfang Finance - Référence des règles

UBL-SR-48 : Donner à chaque ligne de facture exactement une catégorie de taxe classifiée

L'article d'une ligne de facture a deux éléments cac:ClassifiedTaxCategory ou plus, ou aucun. Gardez-en exactement un : la catégorie de TVA dans laquelle la ligne est imposée.

EN 16931Erreur : le document n'est pas valideTVALignes et prix

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.

TermeSignificationÉlément UBL
BG-30Informations sur la TVA de la lignecac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory in a credit note)
BT-151Code 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:ClassifiedTaxCategory pour 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

  1. Utilisez l'emplacement du constat pour voir quelle ligne est concernée.
  2. Gardez un seul cac:ClassifiedTaxCategory dans son article : la catégorie et le taux de TVA auxquels la ligne a réellement été imposée, sous le schéma fiscal VAT.
  3. 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.
  4. 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é

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 à Invoice et à CreditNote. Lors d'un essai, une ligne d'avoir avec la catégorie en double a signalé cette règle sur cac: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 dans cac:ClassifiedTaxCategory, et ne sont pas comptés ici.

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.