BR-44: Invoice line charge reason (BT-144/BT-145) is missing
Official message
[BR-44] Each Invoice line charge (BG-28) shall have an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145).
[BR-44] Each Invoice line charge shall have an Invoice line charge reason or an invoice line allowance reason code.
[BR-44] Each Invoice line charge (BG-28) shall have an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145).
- Severity
- Error The invoice is invalid and may be rejected by the recipient.
- Applies to
- EN 16931 (CII), EN 16931 (UBL), Factur-X / ZUGFeRD EN 16931
- Affected fields
- BG-28, BT-144, BT-145
What does this mean?
Every charge on an invoice line (BG-28) must have a reason: as text (Invoice line charge reason, BT-144) or as a code (Invoice line charge reason code, BT-145). Both are missing for at least one line charge.
Typical causes
The line charge was output with its amount only.
The reason only appears in the item description or a line note.
How to fix the error
State a reason as text for every line charge, e.g. "Express surcharge", and/or a code from the UNTDID 7161 list. If both are given, they must have the same meaning.
CII: ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:Reason or ram:ReasonCode, UBL: cac:InvoiceLine/cac:AllowanceCharge/cbc:AllowanceChargeReason or cbc:AllowanceChargeReasonCode.
Generate and validate the invoice again.
In E-Rechnungsfreund
In the invoice form ("Experte" view), section "Rechnungspositionen (BG-25)" (invoice lines), tab "Zu-/Abschläge (BG-27/28)" (line allowances and charges) of the line, fill in the field "Begründung (BT-139/144)" (reason) and/or select a reason in the code selection next to it for every entry "Zuschlag (BG-28)" (charge).
Example
Wrong
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator>
<udt:Indicator>true</udt:Indicator>
</ram:ChargeIndicator>
<ram:ActualAmount>15.00</ram:ActualAmount>
</ram:SpecifiedTradeAllowanceCharge>
Correct
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator>
<udt:Indicator>true</udt:Indicator>
</ram:ChargeIndicator>
<ram:ActualAmount>15.00</ram:ActualAmount>
<ram:Reason>Express surcharge</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
For developers: test expression per syntax
EN 16931 (CII) (CII)
Context: //ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'true']
(../ram:Reason) or (../ram:ReasonCode)
EN 16931 (UBL) (UBL)
Context: //cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()] | //cac:CreditNoteLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()]
exists(cbc:AllowanceChargeReason) or exists(cbc:AllowanceChargeReasonCode)
Factur-X / ZUGFeRD EN 16931 (CII)
Technical ID in the source: FX-SCH-A-000221
Context: //ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'true']
(../ram:Reason) or (../ram:ReasonCode)
Related validation rules
Last updated:
Explanation of the validation rule, not legal or tax advice.