# BR-38

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

Checked against Peppol BIS Billing 3.0 2026.5

Canonical: https://einvoicecheck.eu/rules/br-38

## Official rule text

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

## Why did my invoice fail BR-38?

Every Document level charge (BG-21) must be justified by either a free-text charge reason (BT-104) or a coded charge reason (BT-105), with at least one present. This documents why the additional charge (e.g. freight, packaging) was applied.

## Common causes

- Charge added with amount and VAT category but no reason text or code
- Reason held only internally and never mapped to cbc:AllowanceChargeReason
- Empty reason element emitted rather than a real value

## How do I fix it?

```
Provide a reason and/or reason code: <cac:AllowanceCharge><cbc:ChargeIndicator>true</cbc:ChargeIndicator>...<cbc:AllowanceChargeReasonCode>FC</cbc:AllowanceChargeReasonCode><cbc:AllowanceChargeReason>Freight charge</cbc:AllowanceChargeReason></cac:AllowanceCharge>
```
