# BR-CO-24 Positionszuschlag benötigt Grund oder Grundcode

Jeder Positionszuschlag (BG-28) muss einen Positionszuschlagsgrund (BT-144) oder einen Code des Positionszuschlagsgrunds (BT-145) enthalten, oder beides.

## Problembeschreibung

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

## Kontext und Bedeutung

Diese Regel ist das Gegenstück zu BR-CO-22 auf Positionsebene: Jeder Positionszuschlag (UBL: cac:InvoiceLine/cac:AllowanceCharge mit cbc:ChargeIndicator = true) braucht einen Grund oder Grundcode, z. B. ABL (Zusätzliche Verpackung). Der Fehler entsteht oft, wenn Aufschläge wie Sonderverpackung oder Mindermengenzuschläge nur als Betrag in der Position exportiert werden.

## Lösung

Ergänzen Sie für jeden Positionszuschlag einen Grund (BT-144) und/oder einen Grundcode (BT-145): cbc:AllowanceChargeReason / cbc:AllowanceChargeReasonCode in cac:InvoiceLine/cac:AllowanceCharge in UBL, ram:Reason / ram:ReasonCode in ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge in CII.

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

## Gültige Beispiele

- Positionszuschlag mit BT-145 = ABL und BT-144 = "Sonderverpackung"

## Ungültige Beispiele

- Positionszuschlagsbetrag 3,00 ohne BT-144 und ohne BT-145

## Code-Beispiele

### Gültiges XML
```
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReasonCode>ABL</cbc:AllowanceChargeReasonCode>
    <cbc:AllowanceChargeReason>Special packaging</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">3.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
```

### Ungültiges XML
```
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">3.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
```

## Betroffene Felder

- [BG-28 Positionszuschläge](/resources/xrechnung/bt-141-invoice-line-charge-amount)
- [BT-144 Grund des Positionszuschlags](/resources/xrechnung/bt-144-invoice-line-charge-reason)
- [BT-145 Code des Positionszuschlagsgrunds](/resources/xrechnung/bt-145-invoice-line-charge-reason-code)

## Verwandte Regeln

- [BR-CO-08](/resources/kosit-validator-errors/br-co-08-line-charge-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.
