Skip to main content

BR-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

Valid XML
<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>
Invalid XML
<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>

Affected Fields

Validation Tools