# BR-44

> Each Invoice line charge shall have an Invoice line charge reason or an invoice line allowance reason code.

Checked against Peppol BIS Billing 3.0 2026.5

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

## Official rule text

Each Invoice line charge shall have an Invoice line charge reason or an invoice line allowance reason code.

## Why did my invoice fail BR-44?

Every charge on an invoice line (BG-28) must state why it applies, either as free-text via the Invoice line charge reason (BT-144) or as a coded value via the Invoice line charge reason code (BT-145). This ensures each line-level surcharge (e.g. packaging, freight) is justifiable and machine-processable rather than an unexplained amount.

## Common causes

- A line-level charge (cac:AllowanceCharge with ChargeIndicator=true) was added with only an Amount, no reason text or reason code.
- The reason was placed on document-level allowances/charges instead of on the invoice line's AllowanceCharge.
- Mapping logic populated AllowanceChargeReason for allowances but omitted it for charges.

## How do I fix it?

```
Inside cac:InvoiceLine/cac:AllowanceCharge (with <cbc:ChargeIndicator>true</cbc:ChargeIndicator>) add <cbc:AllowanceChargeReasonCode>ZZZ</cbc:AllowanceChargeReasonCode> or <cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>.
```
