# BR-CO-22

> Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both.

Checked against Peppol BIS Billing 3.0 2026.5

Canonical: https://einvoicecheck.eu/rules/br-co-22

## Official rule text

Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both.

## Why did my invoice fail BR-CO-22?

Each document-level charge (BG-21) must contain a charge reason as free text (BT-104) or a coded reason (BT-105), or both. Every surcharge added to the invoice total must be explained so the buyer knows what the extra amount is for.

## Common causes

- Document-level cac:AllowanceCharge (ChargeIndicator=true) with an amount but no AllowanceChargeReason and no AllowanceChargeReasonCode.
- Charge reason held only in an internal description not mapped to UBL.
- Reason code element present but empty.
- Freight/handling charge generated with amount only.

## How do I fix it?

```
Add a reason to the charge, e.g. <cac:AllowanceCharge><cbc:ChargeIndicator>true</cbc:ChargeIndicator><cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode><cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>...</cac:AllowanceCharge>.
```
