On this page
The short answer
BR-E-02 fails when a line has VAT category E and the seller party has no cac:PartyTaxScheme/cbc:CompanyID, with no tax representative VAT identifier to stand in for it. Give the seller its tax identifier in cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID: in the recorded example that is the VAT number GB123456789 under the VAT scheme.
An exempt supply does not excuse the seller from identifying itself for tax. A seller whose supplies are all exempt may have no VAT number to give, and the seller tax registration identifier (BT-32), a national tax number sent under a scheme other than VAT, satisfies the rule just as well.
What the rule checks
Only exempt lines start this rule. It looks for a cac:ClassifiedTaxCategory with cbc:ID of E under the VAT scheme, an element that exists only in cac:Item; exempt document-level allowances and charges are left to BR-E-03 and BR-E-04, which test the seller in the same way.
A seller cbc:CompanyID under any tax scheme passes. When tried, the exempt invoice with the seller scheme changed from VAT to TAX validated with no findings.
The only alternative to the seller's own tax scheme is a tax representative with a cbc:CompanyID under VAT. When tried, adding a representative holding GB987654321 to the failing exempt invoice made it valid.
The number must sit in the tax scheme element. When tried, writing GB123456789 into the seller cac:PartyLegalEntity/cbc:CompanyID in place of 12345678 still failed this rule, and so did sending it as cac:PartyIdentification/cbc:ID.
Presence is all that is tested. With an empty seller cbc:CompanyID this rule passed when tried and PEPPOL-EN16931-R008 reported the empty element; with cbc:CompanyID removed and the cac:PartyTaxScheme kept, the rule failed together with UBL-SR-53.
| Term | Meaning | UBL element |
|---|---|---|
| BT-31 | Seller VAT identifier | cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (tax scheme VAT) |
| BT-32 | Seller tax registration identifier | cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (a tax scheme other than VAT) |
| BT-63 | Seller tax representative VAT identifier | cac:TaxRepresentativeParty/cac:PartyTaxScheme/cbc:CompanyID |
| BT-151 | Invoiced item VAT category code | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID (cac:CreditNoteLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID in a credit note) |
How an integration ends up here
Possible causes, from the shape of the rule rather than from measured usage:
- The seller record has no VAT number because the business makes only exempt supplies, and the export writes nothing in its place.
- The export adds the seller
cac:PartyTaxSchemeonly when the document charges VAT, and an exempt invoice charges none. - The seller VAT number is mapped to
cac:PartyLegalEntity/cbc:CompanyIDorcac:PartyIdentification/cbc:ID, neither of which this rule reads. - A national tax number is held for the seller but never mapped, because only the VAT number field was wired to the XML.
How to fix it
- Establish which tax identifier the seller has: a VAT number, a national tax registration number, or a tax representative with a VAT number.
- Write a VAT number, with its country prefix, to
cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyIDwithcac:TaxScheme/cbc:IDofVAT, aftercac:PostalAddressand beforecac:PartyLegalEntity. - Write a tax registration number that is not a VAT number the same way, in a
cac:PartyTaxSchemewhosecac:TaxScheme/cbc:IDis something other thanVAT, such asTAX. The seller may have one tax scheme of each kind, so both can be sent side by side. - For a seller represented for VAT, send
cac:TaxRepresentativePartywith the representative's name, postal address and VAT identifier. - If the seller has none of these, take it to whoever owns the tax setup before issuing the invoice: without one, a document with exempt lines cannot pass this rule.
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, and a seller party with no PartyTaxScheme
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<!-- postal address omitted from this fragment -->
<cac:PartyLegalEntity>
<cbc:RegistrationName>Example Supplier Ltd</cbc:RegistrationName>
<cbc:CompanyID>12345678</cbc:CompanyID>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:ClassifiedTaxCategory>
<cbc:ID>E</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>Fragment of the corrected invoice: the seller VAT identifier between the postal address and the legal entity
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<!-- postal address omitted from this fragment -->
<cac:PartyTaxScheme>
<cbc:CompanyID>GB123456789</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Example Supplier Ltd</cbc:RegistrationName>
<cbc:CompanyID>12345678</cbc:CompanyID>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>The corrected invoice has a seller cac:PartyTaxScheme holding GB123456789 under the VAT scheme; the failing invoice has no seller tax scheme at all. The failing document reports only BR-E-02. Its one exempt line of 25.00 is the only exempt content, so BR-E-03 and BR-E-04 have nothing to check, and the seller legal registration identifier 12345678 keeps BR-CO-26 quiet.
What the validator reported
- The failing invoice reports BR-E-02. 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. An exempt credit note with no seller tax scheme reported this rule alone when tried. - Reported by the EN 16931 layer as one fatal finding at the document root, however many lines are exempt.
- Most VAT categories have a rule of this shape for their lines, such as
BR-S-02for Standard rated, and one seller identifier satisfies them together. The export and intra-community supply rules,BR-G-02andBR-IC-02, are stricter and accept only an identifier under theVATscheme. - Nothing is asked of the buyer here, unlike the reverse-charge rule
BR-AE-02.
Related rules
- BR-E-03 applies the same seller test when an exempt document-level allowance is present
- BR-E-04 applies the same seller test when an exempt document-level charge is present
- BR-S-02 is the Standard rated version of this requirement
- BR-E-05 requires the exempt line itself to carry a VAT rate of 0
- 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-E-02 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.

