# BR-CL-19 Le code de motif de remise doit provenir de la liste UNCL5189

Lorsqu’un motif de remise est codé (BT-98 au niveau du document, BT-140 au niveau de la ligne), le code doit appartenir au sous-ensemble de la liste UNCL5189 retenu par la norme EN 16931.

## Description du problème

> **ERREUR**: Règle de liste de codes EN 16931 (BR-CL)

## Contexte et importance

Les remises ont leur propre liste de codes numériques (UNCL5189), distincte de celle des charges (UNCL7161, BR-CL-20) ; la norme EN 16931 admet 19 de ces codes. La règle échoue lorsqu’un code de charge tel que FC est repris sur une remise, lorsqu’un texte comme « REMISE » figure dans le champ code, ou lorsque l’indicateur ChargeIndicator est erroné, si bien qu’une charge est contrôlée avec la liste des remises. Exemple : une remise sur volume utilise le code 95 avec le motif « Remise sur volume ».

## Solution

Définissez le code de motif de remise sur une valeur UNCL5189 admise, par exemple 95 (remise), 100 (rabais spécial) ou 105 (chiffre d’affaires annuel) ; indiquez tout autre motif en texte libre (BT-97 ou BT-139). En UBL, le code est cbc:AllowanceChargeReasonCode dans un cac:AllowanceCharge dont cbc:ChargeIndicator vaut false ; en CII, ram:ReasonCode dans un ram:SpecifiedTradeAllowanceCharge.

- [Valider le XML](/fr/xrechnung-validator?source=resource&rule=BR-CL-19)
- [Convertir la facture](/fr/pdf-to-xrechnung?source=resource&rule=BR-CL-19)

## Exemples valides

- BT-98 = 95 — remise
- BT-140 = 100 — rabais spécial au niveau de la ligne

## Exemples invalides

- BT-98 = FC — code de charge (UNCL7161) sur une remise
- BT-98 = REMISE — texte libre au lieu d’un code

## Exemples de code

### XML valide
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
</cac:AllowanceCharge>
```

### XML invalide
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
</cac:AllowanceCharge>
```

## Champs concernés

- [BT-98 Code du motif de la remise au niveau du document](/resources/xrechnung/bt-98-document-level-allowance-reason-code)
- [BT-140 Code du motif de la remise sur ligne de facture](/resources/xrechnung/bt-140-invoice-line-allowance-reason-code)

## Règles associées

- [BR-CL-20](/resources/kosit-validator-errors/br-cl-20-uncl7161-charge-reason)

## Outils de validation

- [Validateur KoSIT officiel](https://github.com/itplr-kosit/validator): Exécutez le validateur officiel du KoSIT avec la configuration XRechnung pour contrôler les règles EN 16931 et XRechnung.
- [Convertir un PDF en XRechnung](/pdf-to-xrechnung): Repérez les erreurs de validation pendant la conversion et vérifiez chaque correction.

## Ressources associées

- [Spécification officielle](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Suite de tests](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Toutes les erreurs de validation](/resources/kosit-validator-errors): Vue d’ensemble des règles de validation EN 16931, XRechnung et Peppol expliquées ici.
