Reference
Markdown exportBR-47 VAT category code must be present in every VAT breakdown
Under EN 16931 rule BR-47, each VAT breakdown group (BG-23) must specify the VAT category code in BT-118 (TaxCategory ID) from the subset of UNTDID 5305 allowed by the standard (BR-CL-17 in UBL / BR-CL-18 in CII): "S" for standard rate (also used for reduced rates, with the rate in BT-119), "Z" for zero rate, "E" for exempt, "AE" for reverse charge, "K" for intra-community supply, "G" for export outside the EU, "O" for services outside the scope of tax, "L" for the Canary Islands general indirect tax (IGIC), "M" for the Ceuta and Melilla tax (IPSI) and "B" for split payment (Italy only). Each VAT breakdown groups the taxable amount (BT-116) and VAT amount (BT-117) for one category and rate.
Problem Description
ERROR
EN 16931 core business rule (CEN)
Context and Significance
This is an EN 16931 core rule. Without BT-118 neither the recipient nor the tax authority can assign the taxable amount and VAT amount to a category, and the category rules (BR-S, BR-AE, BR-E and so on) cannot be applied. The error often appears when an export writes only the percentage in cac:TaxCategory. A code outside the allowed list, such as "AA" for a reduced rate, does not trigger BR-47 but fails BR-CL-17 (UBL) or BR-CL-18 (CII).
Solution
In your ERP accounting and tax configuration, ensure that every VAT breakdown entry in TaxTotal includes the tax category code. In UBL 2.1 syntax, populate <cac:TaxSubtotal><cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>19.00</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory></cac:TaxSubtotal> under <cac:TaxTotal>. In UN/CEFACT CII syntax, populate <ram:CategoryCode>S</ram:CategoryCode> within <ram:ApplicableTradeTax> under <ram:ApplicableHeaderTradeSettlement>.
Quick actions
Valid Examples
- VAT breakdown BG-23 with BT-118 = "S" (Standard VAT rate 19%)
- VAT breakdown BG-23 with BT-118 = "AE" (Reverse charge supply)
Invalid Examples
- cac:TaxSubtotal declares taxable amount and tax amount but omits cbc:ID inside cac:TaxCategory
- CII ram:ApplicableTradeTax with ram:TypeCode VAT, ram:BasisAmount and ram:CalculatedAmount but no ram:CategoryCode
Code Examples
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19.00</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal><cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:Percent>19.00</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>