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 / VAT BREAKDOWN) must specify the VAT category code in BT-118 (TaxCategory ID) from the UNTDID 5305 code list: "S" for standard rate, "AA" for lower rate, "E" for exempt, "AE" for reverse charge, "Z" for zero-rated, "G" for export outside EU, "K" for intra-community supply, "L" for Canary Islands / Ceuta / Melilla, or "O" for services outside scope of tax. The VAT breakdown categorizes total taxable amounts (BT-116) and VAT amounts (BT-117) by tax rate category for tax return reporting.
Problem Description
Under EN 16931 rule BR-47, each VAT breakdown group (BG-23 / VAT BREAKDOWN) must specify the VAT category code in BT-118 (TaxCategory ID) from the UNTDID 5305 code list: "S" for standard rate, "AA" for lower rate, "E" for exempt, "AE" for reverse charge, "Z" for zero-rated, "G" for export outside EU, "K" for intra-community supply, "L" for Canary Islands / Ceuta / Melilla, or "O" for services outside scope of tax. The VAT breakdown categorizes total taxable amounts (BT-116) and VAT amounts (BT-117) by tax rate category for tax return reporting.
ERROR
XRechnung 3.0
Context and Significance
Without BT-118 in BG-23, tax authorities cannot categorize VAT taxable amounts and tax amounts, resulting in Schematron validation error BR-47.
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
- cac:TaxCategory element instantiated without cbc:ID (<cac:TaxCategory><cbc:Percent>19.00</cbc:Percent></cac:TaxCategory>)
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>