# BR-CO-22 Toeslag op documentniveau vereist een reden of redencode

Elke toeslag op documentniveau (BG-21) moet een reden voor de toeslag (BT-104) of een redencode (BT-105) bevatten, of beide.

## Probleembeschrijving

> **FOUT**: Reken- en consistentieregel van EN 16931 (BR-CO)

## Context en betekenis

Elke toeslag op documentniveau (UBL: cac:AllowanceCharge met cbc:ChargeIndicator = true) heeft een reden in tekst of een redencode nodig, zodat de koper ziet waarvoor hij extra betaalt. De fout ontstaat vaak wanneer verzend-, verpakkings- of administratiekosten alleen als bedrag worden geëxporteerd.

## Oplossing

Voeg voor elke toeslag op documentniveau een reden (BT-104) en/of een redencode (BT-105) uit UNCL 7161 toe: cbc:AllowanceChargeReason / cbc:AllowanceChargeReasonCode in UBL, ram:Reason / ram:ReasonCode in ram:SpecifiedTradeAllowanceCharge in CII.

- [XML valideren](/nl/xrechnung-validator?source=resource&rule=BR-CO-22)
- [Factuur converteren](/nl/pdf-to-xrechnung?source=resource&rule=BR-CO-22)

## Geldige voorbeelden

- Toeslag op documentniveau met BT-105 = FC en BT-104 = "Vrachtkosten"

## Ongeldige voorbeelden

- Toeslagbedrag 15,00 zonder BT-104 en zonder BT-105

## Codevoorbeelden

### Geldig XML
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Freight charge</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">15.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>
```

### Ongeldig XML
```
<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:Amount currencyID="EUR">15.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>
```

## Betrokken velden

- [BG-21 Toeslagen op documentniveau](/resources/xrechnung/bt-99-document-level-charge-amount)
- [BT-104 Reden toeslag op documentniveau](/resources/xrechnung/bt-104-document-level-charge-reason)
- [BT-105 Redencode toeslag op documentniveau](/resources/xrechnung/bt-105-document-level-charge-reason-code)

## Gerelateerde regels

- [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)
- [BR-CO-24](/resources/kosit-validator-errors/br-co-24-line-charge-reason-required)

## Validatietools

- [Officiële KoSIT-validator](https://github.com/itplr-kosit/validator): Draai de officiële KoSIT-validator met de XRechnung-configuratie om EN 16931- en XRechnung-regels te controleren.
- [PDF naar XRechnung converteren](/pdf-to-xrechnung): Vind validatiefouten tijdens de conversie en controleer elke correctie.

## Gerelateerde bronnen

- [Officiële specificatie](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Testsuite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Alle validatiefouten](/resources/kosit-validator-errors): Overzicht van de hier uitgelegde validatieregels uit EN 16931, XRechnung en Peppol.
