Sur cette page
La réponse courte
PEPPOL-EN16931-CL002 échoue lorsque cbc:AllowanceChargeReasonCode dans une remise dont le cbc:ChargeIndicator vaut exactement false n'est pas l'un des 19 codes de la liste Peppol pour l'UNTDID 5189. Dans l'exemple enregistré, la remise de ligne était envoyée sous la forme 095 ; le code est 95, sans zéros de remplissage.
La liste Peppol et celle que BR-CL-19 contrôle à l'étape EN 16931 sont identiques, si bien qu'un code erroné est normalement signalé par les deux. Elles diffèrent par les remises qu'elles examinent : cette règle ne voit qu'un indicateur écrit exactement sous la forme du texte false.
Ce que la règle vérifie
La remise est reconnue par le texte de cbc:ChargeIndicator, comparé exactement à false. Lors d'un essai, false entouré d'espaces, que le schéma accepte, a sorti la remise du champ de cette règle : un code erroné y a été signalé par BR-CL-19 seul.
Un indicateur 0 est lui aussi un booléen valide pour le schéma, mais pas le texte false. Lors d'un essai avec le code 095, il a signalé BR-CL-19 et PEPPOL-EN16931-R043, qui n'accepte que true ou false, mais pas cette règle.
Le code est débarrassé de ses espaces avant la comparaison, et le reste doit être exactement égal à un code de la liste ; un zéro en tête donne une autre valeur, comme le montre 095.
L'emplacement du constat indique quelle remise porte le code : dans l'exemple enregistré, le premier cac:AllowanceCharge de la première ligne de facture.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-98 | Code du motif de la remise au niveau du document | cac:AllowanceCharge/cbc:AllowanceChargeReasonCode |
| BT-140 | Code du motif de la remise sur la ligne de facture | cac: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 :
- Les codes sont formatés sur une largeur fixe de trois chiffres pour que
100à105s'alignent avec les autres, ce qui transforme95en095. - Les codes sont enregistrés comme des nombres et écrits avec un format d'affichage qui les complète.
- Un code de frais ou un type de remise interne est écrit sur une remise.
- Une correspondance commune aux remises et aux frais attribue un code UNTDID 7161 à une remise.
Comment corriger le document
- Servez-vous de l'emplacement du constat pour retrouver la remise et la réduction dont elle provient.
- Prenez le code dans la liste Peppol pour l'UNTDID 5189 et écrivez-le comme du texte, sans zéros en tête :
95Discount,100Special rebate,41Bonus for works ahead of schedule. - Écrivez
cbc:ChargeIndicatorsous la forme du simple textefalsesur chaque remise, pour que les deux étapes appliquent les mêmes contrôles. - Si aucun code ne convient, envoyez seulement
cbc:AllowanceChargeReason.
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 : le code de motif de la remise de ligne est complété en 095
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note, quantity, amounts and order line reference omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>095</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example discount</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">2.00</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">40.00</cbc:BaseAmount>
</cac:AllowanceCharge>
<!-- line charge, item and price omitted from this fragment -->
</cac:InvoiceLine>Fragment de la facture corrigée : le code de motif est 95, Discount
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<!-- note, quantity, amounts and order line reference omitted from this fragment -->
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example discount</cbc:AllowanceChargeReason>
<cbc:MultiplierFactorNumeric>5</cbc:MultiplierFactorNumeric>
<cbc:Amount currencyID="GBP">2.00</cbc:Amount>
<cbc:BaseAmount currencyID="GBP">40.00</cbc:BaseAmount>
</cac:AllowanceCharge>
<!-- line charge, item and price omitted from this fragment -->
</cac:InvoiceLine>Seul le code de motif de la remise de ligne diffère : 095 dans la facture en échec, 95 dans la facture corrigée. Le document en échec signale aussi BR-CL-19, le contrôle du même code par rapport à la même liste à l'étape EN 16931, sur le même élément.
Ce que le validateur a signalé
- La facture en erreur signale BR-CL-19 et PEPPOL-EN16931-CL002. 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 à
InvoiceetCreditNote; lors d'un essai,095sur la remise d'une ligne d'avoir a signalé cette règle etBR-CL-19. - Une règle Peppol BIS Billing 3.0. Avec l'indicateur écrit
false, elle ne se déclenche jamais sansBR-CL-19, puisque les listes concordent, alors queBR-CL-19peut se déclencher seule quand l'indicateur est écrit autrement. - Les frais sont contrôlés par rapport à l'UNTDID 7161 par
PEPPOL-EN16931-CL003, la règle correspondante pour un indicateurtrue.
Règles liées
- BR-CL-19 contrôle les codes de motif de remise par rapport à la même liste à l'étape EN 16931
- PEPPOL-EN16931-CL003 est le contrôle Peppol des codes de motif de frais
- PEPPOL-EN16931-R043 exige que l'indicateur vaille true ou false
- Parcourir toutes les règles de la référence
- Contexte (en anglais) : How Peppol invoice validation actually works
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 PEPPOL-EN16931-CL002 (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.

