# BR-CO-21 Nachlass auf Dokumentebene benötigt Grund oder Grundcode

Jeder Nachlass auf Dokumentebene (BG-20) muss einen Nachlassgrund auf Dokumentebene (BT-97) oder einen Code des Nachlassgrunds (BT-98) enthalten, oder beides.

## Problembeschreibung

> **FEHLER**: EN-16931-Rechen- und Konsistenzregel (BR-CO)

## Kontext und Bedeutung

Diese EN-16931-Regel verlangt, dass jeder Nachlass auf Dokumentebene als Text oder Code begründet ist, damit der Käufer den Abzug nachvollziehen und buchen kann. Der Fehler entsteht oft, wenn das ERP nur einen Nachlassbetrag oder -prozentsatz ohne Beschreibung exportiert, etwa einen Gesamtrabatt, der als reiner Betrag erfasst wurde.

## Lösung

Ergänzen Sie für jeden Nachlass auf Dokumentebene einen Grund (BT-97) und/oder einen Grundcode (BT-98) aus UNCL 5189: cbc:AllowanceChargeReason / cbc:AllowanceChargeReasonCode in UBL, ram:Reason / ram:ReasonCode in ram:SpecifiedTradeAllowanceCharge in CII.

- [XML validieren](/de/xrechnung-validator?source=resource&rule=BR-CO-21)
- [Rechnung konvertieren](/de/pdf-to-xrechnung?source=resource&rule=BR-CO-21)

## Gültige Beispiele

- Nachlass auf Dokumentebene mit BT-98 = 95 und BT-97 = "Mengenrabatt"

## Ungültige Beispiele

- Nachlassbetrag 10,00 ohne BT-97 und ohne BT-98

## Code-Beispiele

### Gültiges XML
```
<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>
```

### Ungültiges XML
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <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>
```

## Betroffene Felder

- [BG-20 Nachlässe auf Dokumentebene](/resources/xrechnung/bt-92-document-level-allowance-amount)
- [BT-97 Grund des Nachlasses auf Dokumentebene](/resources/xrechnung/bt-97-document-level-allowance-reason)
- [BT-98 Code des Nachlassgrunds auf Dokumentebene](/resources/xrechnung/bt-98-document-level-allowance-reason-code)

## Verwandte Regeln

- [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)

## Validierungstools

- [Offizieller KoSIT Validator](https://github.com/itplr-kosit/validator): Führen Sie den offiziellen KoSIT-Validator mit der XRechnung-Konfiguration aus, um EN-16931- und XRechnung-Regeln zu prüfen.
- [PDF zu XRechnung konvertieren](/pdf-to-xrechnung): Validierungsfehler beim Konvertieren erkennen, prüfen und gezielt beheben.

## Verwandte Ressourcen

- [Offizielle Spezifikation](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Testsuite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Alle Validierungsfehler](/resources/kosit-validator-errors): Übersicht der hier erklärten Validierungsregeln aus EN 16931, XRechnung und Peppol.
