Skip to content

Ironfang Finance - Rule reference

BR-E-05: Set the VAT rate of an exempt line to 0

A line whose item VAT category is E must state a VAT rate of exactly 0. A reduced or Standard rate on it fails, and so does a missing rate.

EN 16931Fatal: the document is invalidVATLines and prices

On this page

The short answer

BR-E-05 fails on each line whose cac:Item/cac:ClassifiedTaxCategory has cbc:ID of E and a cbc:Percent that is not 0. The exempt line of the recorded example carries 5; set it to 0.

An exempt line with a rate says two different things. If VAT at 5 really is due on the item, it is not exempt and belongs in category S at 5; if it is exempt, the rate is the error.

What the rule checks

Each cac:ClassifiedTaxCategory with cbc:ID of E under the VAT scheme, in a cac:InvoiceLine or cac:CreditNoteLine item, is checked separately, and the finding points at that element.

The rate has to equal zero as a decimal. When tried, 0.00 on the exempt line passed and 20 failed as 5 does, while a line with its cbc:Percent removed reported this rule alone, so leaving the rate out is no way round it.

Only line rates are read. When tried, the exempt breakdown given a rate of 5 while the line stayed at 0 did not trigger this rule; BR-CO-17 rejected it instead, since 5% of the 25.00 taxable amount is 1.25, too far from a tax amount of 0.00.

Exempt document-level allowances and charges have rate rules of their own, BR-E-06 and BR-E-07, with the same requirement of 0.

TermMeaningUBL element
BT-151Invoiced item VAT category codecac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID in a credit note)
BT-152Invoiced item VAT ratecac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent in a credit note)

How an integration ends up here

Possible causes, from the shape of the rule rather than from measured usage:

  • The rate comes from the item record while the category comes from the customer or contract, and nothing reconciles the two.
  • An item once taxed at the reduced rate was reclassified as exempt, and only its category code was updated.
  • Every line gets a default rate from the seller's settings, and the default is not 0.
  • An empty rate on exempt items is serialised by leaving cbc:Percent out, which fails in the same way.

How to fix it

  1. Check the tax determination for the item. If the supply is exempt, set cbc:Percent in the line's cac:ClassifiedTaxCategory to 0; nothing else on the line changes.
  2. Always write cbc:Percent for exempt lines, as 0, rather than omitting it.
  3. If VAT at 5 is due, change the line category to S and keep the 5, move its net amount out of the exempt breakdown into a Standard rated breakdown at 5, and calculate the tax. Drop the exempt breakdown and its reason if nothing exempt is left.
  4. Correct the item or tax code at source, so that the category and the rate on a line come from one record.

Validate your corrected invoice

Before and after

These are fragments, not complete documents. The complete synthetic documents they come from are linked below.

Fragment of the failing invoice: an exempt line with a rate of 5

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Example service</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>E</cbc:ID>
      <cbc:Percent>5</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <!-- price omitted from this fragment -->
</cac:InvoiceLine>

Fragment of the corrected invoice: the exempt line at 0

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">2</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="GBP">25.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Example service</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>E</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <!-- price omitted from this fragment -->
</cac:InvoiceLine>

Only the cbc:Percent of the exempt line differs: 5 in the failing invoice, 0 in the corrected one. The failing document reports only BR-E-05. Its exempt breakdown keeps the rate of 0 and the taxable amount of 25.00, which BR-E-08 still accepts because it adds up exempt lines whatever their rates, and no tax is charged anywhere.

What the validator reported

Recorded on phive 12.1.0 / phive-rules-peppol 4.5.6 / Saxon-HE 12.10, the engine behind the free validator, using synthetic data. A recorded result is regression evidence for these documents; it is not a certification.

Where it applies

  • Applies to UBL Invoice and CreditNote. An exempt cac:CreditNoteLine at 5 reported the same rule when tried.
  • Reported by the EN 16931 layer as a fatal finding at each exempt cac:ClassifiedTaxCategory whose rate is not 0.
  • Zero rated and reverse-charge lines carry the same requirement under BR-Z-05 and BR-AE-05, while a line not subject to VAT must have no rate at all under BR-O-05.

Scope and source

Written for Peppol BIS Billing 3.0.21 (May 2026), EN 16931 1.3.16, as applied to UBL 2.1 Invoice and CreditNote documents. Other profiles, syntaxes and releases can define this identifier differently. Guidance version 2026-09-28.1: source checked 2026-09-28, explanation last updated 2026-09-28.

The official definition of BR-E-05 carries the normative wording and test. This page is our explanation of it, not a copy.

Guidance does not change the engine verdict. Fixing this finding does not mean the document passes every layer, and validation does not certify legal or tax compliance or transmit a document over Peppol.