Aller au contenu

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

BR-CL-19 : Utiliser un code de motif de remise de la liste UNTDID 5189

Un code de motif de remise doit être l'un des codes UNTDID 5189 autorisés dans Peppol, comme 95 pour Discount (remise). Un mot comme DISCOUNT n'est pas un code.

EN 16931Erreur : le document n'est pas valideListes de codesRemises et frais

Sur cette page

La réponse courte

BR-CL-19 échoue lorsque cbc:AllowanceChargeReasonCode sur une remise (cbc:ChargeIndicator à false) n'est pas l'un des 19 codes du sous-ensemble UNTDID 5189 : 41, 42, 60, 62 à 68, 70, 71, 88, 95, 100 et 102 à 105. Remplacez la valeur par le code qui décrit la remise, ou supprimez le code et décrivez la remise dans cbc:AllowanceChargeReason.

L'étape Peppol répète le contrôle sous le nom PEPPOL-EN16931-CL002 : un code inconnu échoue donc aux deux étapes. Une remise simple correspond à 95 ; l'exemple enregistré avait le mot DISCOUNT à la place.

Ce que la règle vérifie

Chaque cbc:AllowanceChargeReasonCode d'un cac:AllowanceCharge qui se lit comme une remise est contrôlé, où qu'il se trouve : au niveau du document, sur une ligne et, comme l'a montré un essai, également dans cac:Price.

Les espaces de début et de fin sont ignorés, et la valeur restante doit être exactement égale à un code de la liste. Lors d'un essai, 95 entouré d'espaces a été accepté.

Seule la liste des remises compte. Un code de frais comme CG, valide sur des frais, a été rejeté sur la remise au niveau du document lors d'un essai.

L'ensemble autorisé est un sous-ensemble Peppol de l'UNTDID 5189 : un code qui existe dans la liste UNTDID complète mais pas dans le sous-ensemble échoue donc quand même.

Un élément de code vide ne correspond à rien et échoue, avec PEPPOL-EN16931-R008 pour l'élément vide.

Le texte à côté du code est libre et n'est pas comparé au code. Lors d'un essai, le code 95 à côté du texte Freight a été accepté, car BR-CO-05, le contrôle de concordance, réussit toujours dans cette version.

TermeSignificationÉlément UBL
BT-98Code du motif de la remise au niveau du documentcac:AllowanceCharge/cbc:AllowanceChargeReasonCode
BT-140Code du motif de la remise sur la ligne de facturecac:InvoiceLine/cac:AllowanceCharge/cbc:AllowanceChargeReasonCode (cac:CreditNoteLine in a credit note)

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'intégration écrit son propre nom de type de remise, comme DISCOUNT ou PROMO, dans l'élément de code au lieu d'un code UNTDID.
  • Un code de frais est réutilisé pour une remise, ou les codes de remise et de frais partagent une même table de correspondance.
  • Le code provient d'une numérotation interne qui utilise elle aussi des nombres, si bien qu'une valeur comme 1 ou 10 paraît plausible mais ne figure pas dans la liste.
  • Un code est ajouté à chaque remise, y compris à celles dont la source n'a pas de type de motif, et une valeur de remplissage comble le manque.

Comment corriger le document

  1. Lisez l'emplacement du constat pour voir quelle remise porte le code : une remise sous la racine, une remise sur une ligne, ou la remise sur le prix.
  2. Déterminez la nature de la remise à partir de son enregistrement source et trouvez l'entrée correspondante dans le sous-ensemble UNTDID 5189 que Peppol publie pour BIS Billing 3.0. 95 est Discount et 100 est Special rebate.
  3. Écrivez ce code dans cbc:AllowanceChargeReasonCode. Conservez votre propre libellé, si vous le voulez sur le document, dans cbc:AllowanceChargeReason.
  4. Si aucun code ne convient, supprimez cbc:AllowanceChargeReasonCode et gardez le texte. Une remise avec seulement du texte est valide ; une remise sans l'un ni l'autre fait échouer BR-CO-21 ou BR-CO-23.
  5. Tenez la correspondance entre vos types de remise et les codes UNTDID dans une table de l'intégration, distincte de la correspondance des frais.

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 au niveau du document a le mot DISCOUNT comme code de motif

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>DISCOUNT</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">1.00</cbc:Amount>
  <!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>

Fragment de la facture corrigée : le code de motif est 95, Discount

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Example document discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">1.00</cbc:Amount>
  <!-- tax category omitted from this fragment -->
</cac:AllowanceCharge>

La facture en échec a DISCOUNT dans le code de motif de la remise au niveau du document ; la facture corrigée a 95, le code UNTDID 5189 pour Discount. Le document en échec signale aussi PEPPOL-EN16931-CL002, la copie Peppol de ce contrôle de liste de codes, sur le même élément, et la même correction efface les deux constats. Le texte du motif est identique dans les deux documents.

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, ainsi qu'aux remises sur cac:InvoiceLine et cac:CreditNoteLine. Lors d'un essai, DISCOUNT sur la remise de ligne, et sur la remise au niveau du document d'un avoir, a signalé cette règle et PEPPOL-EN16931-CL002 ensemble.
  • Un code de motif sur la remise sur le prix dans cac:Price est également contrôlé, mais même un code valide y a entraîné les avertissements UBL-CR-633 et UBL-CR-669 lors d'un essai. Il vaut mieux envoyer une remise sur le prix sans code.
  • Les frais utilisent une autre liste, UNTDID 7161, que contrôle BR-CL-20. La liste applicable dépend de cbc:ChargeIndicator.

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-CL-19 (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.