Skip to content

Ironfang Finance - Rule reference

BR-IC-06: Change the VAT rate on an intra-community discount to 0

A document-level allowance in category K must state a VAT rate of 0; a discount on an intra-community supply does not carry the seller's domestic 20.

EN 16931Fatal: the document is invalidVATAllowances and charges

On this page

The short answer

BR-IC-06 fails when an allowance, cbc:ChargeIndicator of false, has tax category K and a cbc:Percent other than 0. The full pallet discount of 1.25 in the recorded example carries 20, the seller's domestic rate; change it to 0.

Everything else about the discount is already right: it takes the K taxable amount from 25.00 down to 23.75, and the amount due with it.

What the rule checks

Every cac:TaxCategory with cbc:ID of K and scheme VAT inside an allowance is tested, at document level or inside a line, and each failure is located at that cac:TaxCategory. When tried, a K allowance at 20 inside the line was reported under this rule, beside the warning UBL-CR-558.

An allowance without cbc:Percent is reported too. When tried, removing the rate from the pallet discount gave this rule as the only finding.

Charges are outside it: a K freight charge at 19 was reported by BR-IC-07 when tried, not by this rule.

The discount still counts at the wrong rate. With 20 on it, the K taxable amount of 23.75 passed BR-IC-08, so this rule is the recorded example's only finding.

TermMeaningUBL element
BT-95Document level allowance VAT category codecac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID
BT-96Document level allowance VAT ratecac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:Percent

How an integration ends up here

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

  • Document discounts are raised under one tax code that holds the seller's Standard rate, and only the category follows the customer.
  • One discount spans Standard rated and intra-community items, and the rate of the first is used for both.
  • The allowance was entered by hand in an invoicing screen that defaults the rate to 20.

How to fix it

  1. Check that the discount reduces intra-community items only. If so, keep category K.
  2. Set cbc:Percent in the allowance's cac:TaxCategory to 0, between cbc:ID and cac:TaxScheme.
  3. If one discount covers both domestic and intra-community items, split it into one allowance per category, each with its own rate, so that each breakdown receives its share.
  4. Change the default on the discount tax code so that a K allowance is always created at 0.

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: the K pallet discount at 20

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Full pallet discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">1.25</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>K</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 K pallet discount at 0

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReasonCode>95</cbc:AllowanceChargeReasonCode>
  <cbc:AllowanceChargeReason>Full pallet discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="GBP">1.25</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>K</cbc:ID>
    <cbc:Percent>0</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>

The failing invoice gives the full pallet discount a rate of 20 and the corrected invoice gives it 0; nothing else changes. BR-IC-06 is the only finding in the failing document.

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. Converted to a credit note, the failing invoice reported the same rule at the first cac:AllowanceCharge when tried.
  • Reported by the EN 16931 layer, once for each K allowance whose rate is not zero.
  • A K allowance also requires both VAT identifiers under BR-IC-03. Reverse-charge allowances have the same zero-rate requirement under BR-AE-06.

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-IC-06 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.