# BR-33

> Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).

Checked against Peppol BIS Billing 3.0 2026.5

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

## Official rule text

Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).

## Why did my invoice fail BR-33?

Every Document level allowance (BG-20) must be justified by either a free-text allowance reason (BT-97) or a coded allowance reason (BT-98), and at least one of the two must be present. This documents why the discount was granted so the buyer can reconcile it.

## Common causes

- Allowance added with amount and VAT category but no reason text or reason code
- Reason held only in an internal field that was never mapped to UBL
- Empty cbc:AllowanceChargeReason element emitted instead of a real value

## How do I fix it?

```
Provide a reason and/or reason code: <cac:AllowanceCharge><cbc:ChargeIndicator>false</cbc:ChargeIndicator>...<cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode><cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason></cac:AllowanceCharge>
```
