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.
| Term | Meaning | UBL element |
|---|---|---|
| BT-95 | Document level allowance VAT category code | cac:AllowanceCharge[cbc:ChargeIndicator = false]/cac:TaxCategory/cbc:ID |
| BT-96 | Document level allowance VAT rate | cac: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
- Check that the discount reduces intra-community items only. If so, keep category
K. - Set
cbc:Percentin the allowance'scac:TaxCategoryto0, betweencbc:IDandcac:TaxScheme. - 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.
- Change the default on the discount tax code so that a
Kallowance 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
- The failing invoice reports BR-IC-06. The corrected document passes every layer with no findings.Download the failing XMLDownload the corrected XML
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
InvoiceandCreditNote. Converted to a credit note, the failing invoice reported the same rule at the firstcac:AllowanceChargewhen tried. - Reported by the EN 16931 layer, once for each
Kallowance whose rate is not zero. - A
Kallowance also requires both VAT identifiers underBR-IC-03. Reverse-charge allowances have the same zero-rate requirement underBR-AE-06.
Related rules
- BR-IC-05 is the zero-rate rule for the K lines the discount reduces
- BR-IC-07 applies the same rate of 0 to a K document charge
- BR-AE-06 is the reverse-charge counterpart for document allowances
- BR-IC-03 requires the seller and buyer VAT identifiers whenever a K allowance is present
- Browse every rule in the reference
- Background: Understanding EN 16931 validation errors
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.

