HomeError code lexicon › BR-CO-24
BR-CO-24 Field BG-28 Calculation and consistency rules (BR-CO)

Fix BR-CO-24: Invoice line charge reason (BT-144/BT-145) missing

[BR-CO-24]-Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason c

BR-CO-24 in your own invoice? Upload the file and find every error in seconds.

What does BR-CO-24 mean?

Every charge on line level must carry a reason, either as text or as a code. That explains the charge.

Common causes of BR-CO-24

How to fix BR-CO-24

  1. Find the faulty spot in the XML. Open the XML of the invoice and go to field BG-28 along this XPath://ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge
  2. Apply the fix. Every Invoice line charge (BG-28) needs a reason. In the line's 'ram:SpecifiedTradeAllowanceCharge' element (ChargeIndicator=true), add either a reason text 'ram:Reason' (BT-144) or a reason code 'ram:ReasonCode' (BT-145) from UNTDID 7161. At least one of the two must be set.
  3. Validate again. Save the file and validate it again to check that BR-CO-24 is no longer reported.
Concrete fix

Every Invoice line charge (BG-28) needs a reason. In the line's 'ram:SpecifiedTradeAllowanceCharge' element (ChargeIndicator=true), add either a reason text 'ram:Reason' (BT-144) or a reason code 'ram:ReasonCode' (BT-145) from UNTDID 7161. At least one of the two must be set.

XPath//ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeAllowanceCharge

Before / after: the XML example

This is the spot in question before and after the fix (Cross Industry Invoice, ZUGFeRD/Factur-X).

Wrong
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
  <ram:ActualAmount>5.00</ram:ActualAmount>
</ram:SpecifiedTradeAllowanceCharge>
Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
  <ram:ActualAmount>5.00</ram:ActualAmount>
  <ram:ReasonCode>PC</ram:ReasonCode>
  <ram:Reason>Verpackung</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>

Frequent questions about BR-CO-24

Is a reason code enough, or do I also need the reason text?
One of the two is enough: reason code (BT-145) or reason text (BT-144). You may give both. If you set both, BR-CO-08 requires them to name the same type of charge.
Which codes apply to invoice line charges?
BT-145 uses the code list UNTDID 7161, for example 'PC' for packing or 'FC' for freight cost.

Related error codes

Check BR-CO-24 automatically

Instead of digging through the XML by hand you can validate your ZUGFeRD or XRechnung file online – upload the PDF or the XML and you get every error with rule ID, affected field, fix and XPath, as a readable report or as JSON through the API.

Find every error automatically instead of searching by hand

Upload your ZUGFeRD, Factur-X or XRechnung file – you get every violation back with rule ID, field, fix and XPath.

Validate online for free
Check invoice