HomeError code lexicon › BR-CO-5
BR-CO-5 Field BT-98 Calculation and consistency rules (BR-CO)

Fix BR-CO-5: Allowance reason and reason code contradict each other (BT-97/BT-98)

[BR-CO-5]-Document level allowance reason code (BT-98) and Document level allowance reason (BT-97) shall indicate the same type of

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

What does BR-CO-5 mean?

The reason text and the reason code of a document level allowance must name the same type. Otherwise the entry is ambiguous.

Common causes of BR-CO-5

How to fix BR-CO-5

  1. Find the faulty spot in the XML. Open the XML of the invoice and go to field BT-98 along this XPath://ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge
  2. Apply the fix. The reason code (BT-98) and the reason text (BT-97) of a document level allowance must name the same type of allowance. In 'ram:SpecifiedTradeAllowanceCharge' (ChargeIndicator=false), make sure that 'ram:ReasonCode' (BT-98, UNTDID 5189) and 'ram:Reason' (BT-97) match in meaning.
  3. Validate again. Save the file and validate it again to check that BR-CO-5 is no longer reported.
Concrete fix

The reason code (BT-98) and the reason text (BT-97) of a document level allowance must name the same type of allowance. In 'ram:SpecifiedTradeAllowanceCharge' (ChargeIndicator=false), make sure that 'ram:ReasonCode' (BT-98, UNTDID 5189) and 'ram:Reason' (BT-97) match in meaning.

XPath//ram:ApplicableHeaderTradeSettlement/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>false</udt:Indicator></ram:ChargeIndicator>
  <ram:ReasonCode>95</ram:ReasonCode>
  <ram:Reason>Frachtzuschlag</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>
Correct
<ram:SpecifiedTradeAllowanceCharge>
  <ram:ChargeIndicator><udt:Indicator>false</udt:Indicator></ram:ChargeIndicator>
  <ram:ReasonCode>95</ram:ReasonCode>
  <ram:Reason>Rabatt</ram:Reason>
</ram:SpecifiedTradeAllowanceCharge>

Frequent questions about BR-CO-5

Where do the allowance codes for BT-98 come from?
From the code list UNTDID 5189, for example '95' for discount or '100' for special rebate. The reason text (BT-97) must describe the same type.
Must the text match the code name word for word?
No, you may word it freely. What counts is that text and code mean the same type of allowance and do not contradict each other.

Related error codes

Check BR-CO-5 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