HomeError code lexicon › BR-47
BR-47 Field BT-118 EN 16931 core rules (BR)

Fix BR-47: VAT breakdown without VAT category code

[BR-47] Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118)

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

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

How to fix BR-47

  1. 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
  2. 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.
  3. Validate again. Save the file and validate it again to check that BR-47 is no longer reported.
Concrete 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.

XPath//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode

Before / after: the XML example

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

Wrong
<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>
Correct
<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?
From UNCL5305 among others S (standard rate), Z (zero rate), E (exempt), AE (reverse charge), K (intra-community supply), G (export), O (not subject to VAT).
Is the code the same as TypeCode?
No. ram:TypeCode names the tax type (VAT), ram:CategoryCode the category within VAT.
Does the code have to match the rate?
Yes. With S the rate must be greater than 0, with Z exactly 0. Other rules (e.g. BR-S, BR-Z) check this separately.

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.

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