# BR-CO-21 La remise au niveau du document exige un motif ou un code de motif

Chaque remise au niveau du document (BG-20) doit contenir un motif de remise (BT-97) ou un code de motif de remise (BT-98), ou les deux.

## Description du problème

Chaque remise au niveau du document (BG-20) doit contenir un motif de remise (BT-97) ou un code de motif de remise (BT-98), ou les deux.

> **ERREUR**: XRechnung 3.0

## Contexte et importance

Cette règle du noyau EN16931 garantit que chaque déduction est justifiée afin que les acheteurs et les auditeurs comprennent pourquoi le montant a été soustrait.

## Solution

Pour chaque remise au niveau du document, ajoutez un AllowanceChargeReason (BT-97) et/ou un AllowanceChargeReasonCode (BT-98).

- validate
- convert

## Exemples valides

- Remise au niveau du document avec BT-98 = 95 et BT-97 = "Remise sur volume"

## Exemples invalides

- Montant de remise 10,00 sans BT-97 ni BT-98

## 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:AllowanceCharge>
```

### XML invalide
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:Amount currencyID="EUR">10.00</cbc:Amount>
</cac:AllowanceCharge>
```

## Champs concernés

- [BG-20 Remises au niveau du document](/resources/xrechnung)
- [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-05](/resources/kosit-validator-errors/br-co-05-allowance-reason-code-match)
- [BR-CO-22](/resources/kosit-validator-errors/br-co-22-document-charge-reason-required)
- [BR-CO-23](/resources/kosit-validator-errors/br-co-23-line-allowance-reason-required)

## Outils de validation

- [Validateur KoSIT officiel](https://erechnungsvalidator.service-bw.de/): Validez vos fichiers XRechnung par rapport à toutes les règles BR-DE.
- [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://xeinkauf.de/xrechnung/)
- [Suite de tests](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Toutes les erreurs de validation](/resources/kosit-validator-errors): Aperçu de toutes les règles de validation XRechnung en Allemagne.
