Skip to content

Ironfang Finance - Rule reference

BR-E-07: Set the VAT rate of an exempt document-level charge to 0

A document-level charge in category E, such as a fee that follows an exempt service, must carry a VAT rate of exactly 0.

EN 16931Fatal: the document is invalidVATAllowances and charges

On this page

The short answer

BR-E-07 fails when a charge, an cac:AllowanceCharge with cbc:ChargeIndicator of true, is in category E with a cbc:Percent other than 0. The administration fee of 2.50 in the recorded example carries 20; set its cbc:Percent to 0.

Only the tax determination can say whether a fee shares the exemption of the service it belongs to. If it does, its rate is 0; if the fee is taxable in its own right, it needs category S at 20 and a place in a Standard rated breakdown.

What the rule checks

The rule checks each charge tax category with cbc:ID of E under the VAT scheme and reports at that cac:TaxCategory. It is not tied to the document root: when tried, a charge placed inside the exempt line with its own cac:TaxCategory of E at 20 was reported too, along with the UBL-CR-558 warning.

Zero is the only accepted value, compared as a number. Leaving cbc:Percent out of the exempt fee reported this rule alone when tried.

The charge rate plays no part in the exempt breakdown. Its taxable amount of 27.50 adds the fee of 2.50 to the exempt line of 25.00 under BR-E-08, whatever rate the fee carries.

TermMeaningUBL element
BT-102Document level charge VAT category codecac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:ID
BT-103Document level charge VAT ratecac:AllowanceCharge[cbc:ChargeIndicator = true]/cac:TaxCategory/cbc:Percent

How an integration ends up here

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

  • Fees and surcharges are set up as items at the Standard rate, and the category is overridden to E on exempt contracts while the rate is not.
  • The charge is generated by a billing rule with no tax code of its own, which borrows the seller's default rate.
  • The rate element is dropped for charges whose rate field is empty.

How to fix it

  1. Check with the tax determination that the charge shares the exemption. If it does, set cbc:Percent in its cac:TaxCategory to 0.
  2. Keep the charge in the exempt breakdown: 25.00 + 2.50 = 27.50 in the recorded example, with a tax amount of 0.00.
  3. If the charge is taxable, change its category to S at 20, take its 2.50 out of the exempt taxable amount, add it to a Standard rated breakdown with its tax, and update the VAT total, the total with VAT and the amount due.
  4. Give fee items their own tax code in the source system, so that their category and rate always travel together.

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 administration fee of 2.50 at a rate of 20

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Administration fee</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">2.50</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>20</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

Fragment of the corrected invoice: the exempt administration fee at 0

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Administration fee</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">2.50</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>E</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

Only the cbc:Percent of the administration fee differs: 20 in the failing invoice, 0 in the corrected one. The failing document reports only BR-E-07. The exempt breakdown of 27.50, the charge total of 2.50 and the amount due of 27.50 are identical in both documents.

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 credit note with the fee at 20 reported the same rule when tried.
  • Reported by the EN 16931 layer as a fatal finding for each exempt charge whose rate is not 0.
  • Zero rated and reverse-charge charges have the same requirement under BR-Z-07 and BR-AE-07. An exempt charge also needs a seller tax identifier in the document under BR-E-04.

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-07 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.