# BR-CO-05 Le motif et le code de la remise doivent concorder

Le code du motif de remise au niveau du document (BT-98) et le motif de remise au niveau du document (BT-97) doivent désigner le même type de remise.

## Description du problème

> **ERREUR**: Règle de calcul et de cohérence EN 16931 (BR-CO)

## Contexte et importance

Cette règle de la norme EN 16931 exige que le motif en texte libre et le code de motif désignent la même remise, mais son sens n’est pas contrôlable par machine. Les artefacts de validation EN 16931 pour UBL et CII utilisés par le validateur KoSIT ne contiennent pour BR-CO-05 qu’un contrôle factice toujours satisfait : BR-CO-05 n’apparaît donc jamais dans un rapport de validation. L’incohérence reste une erreur de contenu : l’acheteur comptabilise la remise d’après le code (BT-98) et lit le motif (BT-97). Une paire contradictoire, par exemple le code 95 (remise) avec « Pénalité de retard de livraison », entraîne une vérification manuelle ou une contestation de la remise.

## Solution

Alignez le motif en texte libre (BT-97) sur le code de motif (BT-98) pour qu’ils décrivent la même remise, par exemple le code 95 (remise) avec le motif « Remise sur volume ». Choisissez d’abord le code UNCL 5189, puis un texte conforme à sa signification.

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

## Exemples valides

- BT-98 = 95 (remise) avec BT-97 = « Remise sur volume »

## Exemples invalides

- BT-98 = 95 (remise) avec BT-97 = « Pénalité de retard de livraison »

## Exemples de code

### XML valide
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Volume discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
```

### XML invalide
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Late delivery penalty</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
```

## Champs concernés

- [BT-97 Motif de remise au niveau du document](/resources/xrechnung/bt-97-document-level-allowance-reason)
- [BT-98 Code du motif de remise au niveau du document](/resources/xrechnung/bt-98-document-level-allowance-reason-code)

## Règles associées

- [BR-CO-06](/resources/kosit-validator-errors/br-co-06-charge-reason-code-match)
- [BR-CO-21](/resources/kosit-validator-errors/br-co-21-document-allowance-reason-required)

## 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.
