HomeError code lexicon › BR-CL-20
BR-CL-20 Field BT-105 Code list rules (BR-CL)

Fix BR-CL-20: Charge reason code invalid (UNCL 7161)

[BR-CL-20]-Coded charge reasons MUST belong to the UNCL 7161 code list

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

What does BR-CL-20 mean?

If a charge carries a reason code, that code must come from UNCL 7161 - the code list for charge reasons.

Common causes of BR-CL-20

How to fix BR-CL-20

  1. Find the faulty spot in the XML. Open the XML of the invoice and go to field BT-105 along this XPath://ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ReasonCode
  2. Apply the fix. Code the charge reason (BT-105 on document level, BT-145 on invoice line level) with a code from UNCL 7161, e.g. 'FC' (freight cost), 'PC' (packing), 'AA' (advertising), 'AAA' (telecommunication), 'ABK' (miscellaneous). Free text belongs in ram:Reason, not in ram:ReasonCode.
  3. Validate again. Save the file and validate it again to check that BR-CL-20 is no longer reported.
Concrete fix

Code the charge reason (BT-105 on document level, BT-145 on invoice line level) with a code from UNCL 7161, e.g. 'FC' (freight cost), 'PC' (packing), 'AA' (advertising), 'AAA' (telecommunication), 'ABK' (miscellaneous). Free text belongs in ram:Reason, not in ram:ReasonCode.

XPath//ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ReasonCode

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>15.00</ram:ActualAmount>
  <ram:ReasonCode>VERSAND</ram:ReasonCode>
  <ram:Reason>Versandkosten</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator><udt:Indicator>true</udt:Indicator></ram:ChargeIndicator>
  <ram:ActualAmount>15.00</ram:ActualAmount>
  <ram:ReasonCode>FC</ram:ReasonCode>
  <ram:Reason>Versandkosten</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>

Frequent questions about BR-CL-20

How do UNCL 7161 and UNCL 5189 differ?
UNCL 7161 codes charges (ChargeIndicator=true, BT-105/BT-145), UNCL 5189 codes allowances (ChargeIndicator=false, BT-98/BT-140). Do not mix up the lists.
What if no matching code exists?
Use 'ABK' (miscellaneous) as the charge reason and describe the case in the text field ram:Reason (BT-104).

Related error codes

Check BR-CL-20 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