Aller au contenu

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

PEPPOL-EN16931-R044 : Marquer l'ajustement au niveau du prix comme remise, ou sortir une majoration du prix

Seule une remise peut figurer dans cac:Price/cac:AllowanceCharge, dont le cbc:ChargeIndicator doit donc être false. Une majoration va dans le prix net ou des frais de ligne.

Peppol BIS BillingErreur : le document n'est pas valideLignes et prixRemises et frais

Sur cette page

La réponse courte

PEPPOL-EN16931-R044 échoue lorsque le cac:AllowanceCharge situé dans le cac:Price d'une ligne a un cbc:ChargeIndicator autre que false. Cet élément n'existe que pour porter la remise sur le prix de l'article et le prix brut. Si l'entrée est une remise, mettez l'indicateur à false, comme le fait la facture corrigée.

Une véritable majoration du prix unitaire ne peut pas être envoyée à cet endroit. Supprimez l'élément au niveau du prix et soit incluez la majoration dans le prix net, soit envoyez-la comme frais sur la ligne avec son propre motif.

Ce que la règle vérifie

Chaque cac:Price/cac:AllowanceCharge est contrôlé, sur les lignes de facture comme d'avoir. Après suppression des espaces autour de la valeur, son cbc:ChargeIndicator doit valoir exactement false.

true échoue, tout comme 0. Lors d'un essai, le schéma a accepté 0 dans l'élément au niveau du prix, mais cette règle l'a rejeté, car elle compare du texte et non des valeurs booléennes ; 1 a été rejeté de la même manière.

Les montants ne sont pas examinés ici. La facture en échec satisfait toujours PEPPOL-EN16931-R046, qui soustrait le montant du prix brut quel que soit l'indicateur.

Les entrées placées directement sur la ligne ou sous la racine du document, où les frais sont autorisés, sont hors du champ de cette règle ; leur graphie est contrôlée par PEPPOL-EN16931-R043.

TermeSignificationÉlément UBL
-Indicateur de la remise sur le prixcac:InvoiceLine/cac:Price/cac:AllowanceCharge/cbc:ChargeIndicator
BT-147Remise sur le prix de l'articlecac:InvoiceLine/cac:Price/cac:AllowanceCharge/cbc:Amount
BT-148Prix brut de l'articlecac:InvoiceLine/cac:Price/cac:AllowanceCharge/cbc:BaseAmount

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 :

  • L'indicateur est déduit du signe d'un ajustement de prix, et un ajustement positif est interprété comme des frais.
  • Une routine commune qui écrit chaque cac:AllowanceCharge reçoit le mauvais indicateur pour celui du niveau du prix.
  • La liste de prix source contient un prix de base et une majoration, et le mapping modélise la majoration comme des frais sur le prix.
  • Les booléens sont écrits 1 et 0 dans tout le document.

Comment corriger le document

  1. Ouvrez la ligne nommée dans le constat et examinez cac:Price/cac:AllowanceCharge.
  2. Si cbc:Amount fait descendre le prix brut de cbc:BaseAmount jusqu'au prix net de cbc:PriceAmount, il s'agit d'une remise. Écrivez false et ne changez rien d'autre.
  3. S'il s'agit d'un ajout au prix, supprimez le cac:AllowanceCharge au niveau du prix. Ensuite, soit envoyez le prix net avec la majoration incluse dans cbc:PriceAmount, soit conservez le prix de base et ajoutez directement dans la ligne un cac:AllowanceCharge avec un cbc:ChargeIndicator à true, un motif et le montant de la majoration pour toute la ligne.
  4. Avec les frais de ligne, recalculez cbc:LineExtensionAmount comme quantité fois prix plus les frais, ce que contrôle PEPPOL-EN16931-R120. Lors d'un essai sur la ligne enregistrée, un prix de 10, une quantité de 2 et des frais de ligne de 5.00 pour un montant net de ligne de 25.00 ont été validés sans erreur.

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 remise sur le prix de 2.5 est marquée comme des frais

<cac:Price>
  <cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
  <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:Amount currencyID="GBP">2.5</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">15</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

Fragment de la facture corrigée : les mêmes chiffres, avec l'indicateur à false

<cac:Price>
  <cbc:PriceAmount currencyID="GBP">12.5</cbc:PriceAmount>
  <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="GBP">2.5</cbc:Amount>
    <cbc:BaseAmount currencyID="GBP">15</cbc:BaseAmount>
  </cac:AllowanceCharge>
</cac:Price>

Seul l'indicateur du cac:AllowanceCharge au niveau du prix diffère : true dans la facture en échec, false dans la facture corrigée. Le document en échec ne signale que PEPPOL-EN16931-R044, car les chiffres étaient déjà ceux d'une remise : 15 moins 2.5 donne le prix net de 12.5. Lors d'un essai avec une véritable majoration, un prix brut de 10 et les mêmes 2.5 marqués comme des frais, PEPPOL-EN16931-R046 a aussi été signalée, puisqu'elle attend 10 moins 2.5.

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 à cac:InvoiceLine et à cac:CreditNoteLine ; lors d'un essai, un avoir dont la remise sur le prix était marquée true n'a signalé que cette règle.
  • Il s'agit d'une restriction Peppol. L'étape EN 16931 a passé dans l'exemple enregistré.
  • Aucun total ne dépend de l'élément au niveau du prix. Le montant net de la ligne est calculé à partir de cbc:PriceAmount : supprimer l'élément laisse donc tous les montants inchangés.

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 PEPPOL-EN16931-R044 (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.