What does BR-47 mean?
Every VAT breakdown (BG-23) must be defined through a VAT category code (BT-118). The code says how the group is treated for tax, for example standard rate, zero rate or exemption. In the CII structure it sits as ram:CategoryCode in each ram:ApplicableTradeTax at document level. The value comes from the UNCL5305 code list (e.g. S, Z, E, AE, K, G, O).
Common causes of BR-47
- ram:CategoryCode is missing in the ram:ApplicableTradeTax block.
- The code sits only at line level, not in the breakdown.
- Empty element with no value.
- Free text instead of a valid code from UNCL5305.
How to fix BR-47
- Find the faulty spot in the XML. Open the XML of the invoice and go to field BT-118 along this XPath:
//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode - Apply the fix. Add the element ram:CategoryCode with a code from UNCL5305 to every ram:ApplicableTradeTax at document level, e.g. 'S' for standard rate, 'Z' for zero rate, 'E' for exempt, 'AE' for reverse charge.
- Validate again. Save the file and validate it again to check that BR-47 is no longer reported.
Add the element ram:CategoryCode with a code from UNCL5305 to every ram:ApplicableTradeTax at document level, e.g. 'S' for standard rate, 'Z' for zero rate, 'E' for exempt, 'AE' for reverse charge.
//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCodeBefore / after: the XML example
This is the spot in question before and after the fix (Cross Industry Invoice, ZUGFeRD/Factur-X).
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>19.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>100.00</ram:BasisAmount>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>19.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>100.00</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
Frequent questions about BR-47
Which codes are there?
Is the code the same as TypeCode?
Does the code have to match the rate?
Related error codes
Check BR-47 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.