Sur cette page
La réponse courte
BR-CL-20 échoue lorsque cbc:AllowanceChargeReasonCode sur des frais (cbc:ChargeIndicator à true) n'est pas un code de l'UNTDID 7161, la liste des frais et services. Mettez à sa place le code du service facturé, par exemple FC (Freight service) là où l'exemple enregistré écrivait FREIGHT, ou supprimez le code et décrivez les frais dans cbc:AllowanceChargeReason.
PEPPOL-EN16931-CL003 contrôle le même élément par rapport à la même liste à l'étape Peppol : les deux règles sont donc signalées, et les deux disparaissent ensemble.
Ce que la règle vérifie
La règle couvre chaque cbc:AllowanceChargeReasonCode d'un cac:AllowanceCharge qui se lit comme des frais, au niveau du document et sur les lignes. Lors d'un essai, FREIGHT sur les frais de ligne de la facture d'exemple complète a été signalé à cac:InvoiceLine[1]/cac:AllowanceCharge[2].
Les espaces qui entourent la valeur sont retirés, et le reste est comparé en tenant compte de la casse. Lors d'un essai, fc en minuscules a échoué et FC a été accepté.
Un seul code par élément. FC DL a été rejeté lors d'un essai, puisque toute valeur contenant un espace intérieur échoue.
Les codes de remise ne comptent pas ici. Le code UNTDID 5189 95 sur les frais au niveau du document a échoué tout comme un mot.
Un cbc:AllowanceChargeReasonCode vide fait aussi échouer le contrôle de liste et entraîne PEPPOL-EN16931-R008 pour l'élément vide.
Le texte du motif n'est pas lu. BR-CO-06, qui devrait comparer le code et le texte des frais, réussit toujours dans cette version.
| Terme | Signification | Élément UBL |
|---|---|---|
| BT-105 | Code du motif des charges ou frais au niveau du document | cac:AllowanceCharge/cbc:AllowanceChargeReasonCode |
| BT-145 | Code du motif des frais 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 :
- Le type de frais du système source, comme
FREIGHT,POSTAGEouHANDLING, est écrit tel quel dans l'élément de code. - Le code est envoyé en minuscules parce que la table de correspondance a été saisie ainsi ou qu'un formateur met les identifiants en minuscules.
- Une seule table de correspondance sert aux remises et aux frais, si bien qu'un code numérique de remise se retrouve sur des frais.
- Plusieurs services sont facturés comme un seul poste de frais et leurs codes sont réunis en une seule valeur.
Comment corriger le document
- À partir de l'emplacement du constat, identifiez les frais :
cac:AllowanceCharge[2]sous la racine dans l'exemple enregistré, ou une entrée dans une ligne. - Trouvez l'entrée UNTDID 7161 du service dans la liste publiée par Peppol. Quelques entrées de cette liste :
FCFreight service (fret),DLDelivery (livraison),PCPacking (emballage),CGCleaning (nettoyage). - Écrivez le code en majuscules, exactement comme dans la liste, dans
cbc:AllowanceChargeReasonCode, et gardez toute description locale danscbc:AllowanceChargeReason. - Lorsque deux services sont facturés, envoyez deux éléments
cac:AllowanceChargeavec un code chacun, et gardez le total des frais et la ventilation de la TVA cohérents. - Si aucun code ne décrit les frais, omettez le code et envoyez seulement le texte.
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 : les frais au niveau du document ont le mot FREIGHT comme code de motif
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>FREIGHT</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
<!-- percentage, amount, base amount and tax category omitted from this fragment -->
</cac:AllowanceCharge>Fragment de la facture corrigée : le code de motif est CG, un code de la liste UNTDID 7161
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReasonCode>CG</cbc:AllowanceChargeReasonCode>
<cbc:AllowanceChargeReason>Example document charge</cbc:AllowanceChargeReason>
<!-- percentage, amount, base amount and tax category omitted from this fragment -->
</cac:AllowanceCharge>Dans la facture en échec, les frais au niveau du document ont FREIGHT comme code de motif, et dans la facture corrigée CG, qui figure dans la liste. Le document en échec signale aussi PEPPOL-EN16931-CL003, car l'étape Peppol possède sa propre copie du contrôle UNTDID 7161 et rejette le même élément. CG signifie Cleaning (nettoyage) : il ne sert donc qu'à illustrer une valeur valide ; pour des frais de transport, le code correspondant est FC, qui a été accepté au même endroit lors d'un essai.
Ce que le validateur a signalé
- La facture en erreur signale BR-CL-20 et
PEPPOL-EN16931-CL003. 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 aussi bien à
Invoicequ'àCreditNote; lors d'un essai,FREIGHTsur les frais au niveau du document d'un avoir a signalé cette règle etPEPPOL-EN16931-CL003. - Les codes de remise sont contrôlés par rapport à l'UNTDID 5189 par
BR-CL-19. La liste applicable parmi les deux dépend decbc:ChargeIndicator. - Savoir si des frais au niveau du document ont un motif est une autre question, à laquelle répond
BR-CO-22.
Règles liées
- BR-CL-19 est le contrôle de liste de codes pour les codes de motif de remise
- BR-CO-22 exige que des frais au niveau du document aient un code ou un texte de motif
- BR-CO-12 contrôle le total des frais, auquel des frais scindés doivent toujours correspondre
- 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-24.1 : source vérifiée le 2026-09-24, explication mise à jour le 2026-09-24.
La définition officielle de BR-CL-20 (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.

