BR-CO-24: Invoice line charge without reason (BT-144 or BT-145)
Official message
[BR-CO-24] Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.
[BR-CO-24] Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.
[BR-CO-24] Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.
- 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?
Each invoice line charge (BG-28) shall contain a reason as text (BT-144), as code (BT-145) or both. At least one invoice line charge lacks both.
Typical causes
Only amount and tax information were entered for the invoice line charge.
The reason is only given in a note on the invoice or the line, not at the allowance or charge itself.
How to fix the error
State the reason as text (BT-144, e.g. "Packaging") and/or an appropriate code from code list UNTDID 7161 (BT-145).
If both are given, they must indicate the same type (BR-CO-08).
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, expert view ("Experte"), section "Rechnungspositionen (BG-25)" (invoice lines), tab "Zu-/Abschläge (BG-27/28)" of the line, fill in the field "Begründung (BT-139/144)" (reason) and/or select a code next to it for the entry "Zuschlag (BG-28)" (charge), then validate the invoice again.
Example
Wrong
<ram:SpecifiedLineTradeSettlement>
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>3.00</ram:ActualAmount>
...
</ram:SpecifiedTradeAllowanceCharge>
...
</ram:SpecifiedLineTradeSettlement>
Correct
<ram:SpecifiedLineTradeSettlement>
<ram:SpecifiedTradeAllowanceCharge>
<ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
<ram:ActualAmount>3.00</ram:ActualAmount>
<ram:Reason>Packaging</ram:Reason>
...
</ram:SpecifiedTradeAllowanceCharge>
...
</ram:SpecifiedLineTradeSettlement>
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-000223
Context: //ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge/ram:ChargeIndicator[udt:Indicator = 'true']
(../ram:Reason) or (../ram:ReasonCode)
Related validation rules
- BR-CO-03: Value added tax point date (BT-7) and tax point date code (BT-8) are mutually exclusive
- BR-CO-04: Invoiced item VAT category code (BT-151) is missing
- BR-CO-05: Document level allowance reason code (BT-98) and allowance reason (BT-97) must indicate the same type
- BR-CO-06: Document level charge reason code (BT-105) and charge reason (BT-104) must indicate the same type
- BR-CO-07: Invoice line allowance reason code (BT-140) and allowance reason (BT-139) must indicate the same type
- BR-CO-08: Invoice line charge reason code (BT-145) and charge reason (BT-144) must indicate the same type
Last updated:
Explanation of the validation rule, not legal or tax advice.