Skip to content

BR-18: Add the name of the seller tax representative

A cac:TaxRepresentativeParty must carry a name in cac:PartyName/cbc:Name. A blank name fails, and a cbc:RegistrationName does not count.

EN 16931Fatal: the document is invalidParties and addresses

The short answer

BR-18 fails when cac:TaxRepresentativeParty has no cac:PartyName/cbc:Name, or the name is blank. Put the name of the tax representative, the party accountable for VAT on the seller's behalf, in cac:PartyName/cbc:Name as the first child of cac:TaxRepresentativeParty.

Seller and buyer names go in cac:PartyLegalEntity/cbc:RegistrationName; the tax representative name does not. When tried, the name placed in a cac:PartyLegalEntity inside the representative left BR-18 failing and added the warning UBL-CR-335, because the model has no legal entity for this party.

What the rule checks

The rule runs once for each cac:TaxRepresentativeParty and reports at that element, so an invoice without a tax representative is never tested.

It trims the text of cac:PartyName/cbc:Name and fails if nothing remains. When tried, an empty name and a name of three spaces both reported BR-18, together with PEPPOL-EN16931-R008 for the blank element.

Any visible text satisfies it. The rule cannot tell whether the name is the one on the representative appointment.

TermMeaningUBL element
BG-11Seller tax representative partycac:TaxRepresentativeParty
BT-62Seller tax representative namecac:TaxRepresentativeParty/cac:PartyName/cbc:Name

How an integration ends up here

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

  • The representative block is generated from a VAT registration record that holds the VAT number and address of the representative but not its name.
  • A party builder shared with the seller and buyer writes the name only to cac:PartyLegalEntity/cbc:RegistrationName, which is right for them and wrong here.
  • The block is written for every invoice from a seller registered abroad, with empty fields when no representative has been appointed.

How to fix it

  1. Confirm that the seller really has a tax representative for this invoice. If it does not, leave cac:TaxRepresentativeParty out; the group is optional.
  2. Take the representative name from the appointment or registration record, and write it as cac:TaxRepresentativeParty/cac:PartyName/cbc:Name, before cac:PostalAddress.
  3. Complete the rest of the group from the same record: the representative also needs a VAT identifier (BR-56), a postal address (BR-19) and a country code in that address (BR-20).
  4. Do not add a cac:PartyLegalEntity to the representative; it is outside the model and draws a warning.

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 tax representative starts with its address and has no name

<cac:TaxRepresentativeParty>
  <cac:PostalAddress>
    <cbc:StreetName>4 Example Street</cbc:StreetName>
    <!-- rest of the address omitted from this fragment -->
  </cac:PostalAddress>
  <cac:PartyTaxScheme>
    <cbc:CompanyID>GB987654321</cbc:CompanyID>
    <!-- tax scheme omitted from this fragment -->
  </cac:PartyTaxScheme>
</cac:TaxRepresentativeParty>

Fragment of the corrected invoice: PartyName comes first in the tax representative

<cac:TaxRepresentativeParty>
  <cac:PartyName>
    <cbc:Name>Example Fiscal Representative Ltd</cbc:Name>
  </cac:PartyName>
  <cac:PostalAddress>
    <cbc:StreetName>4 Example Street</cbc:StreetName>
    <!-- rest of the address omitted from this fragment -->
  </cac:PostalAddress>
  <cac:PartyTaxScheme>
    <cbc:CompanyID>GB987654321</cbc:CompanyID>
    <!-- tax scheme omitted from this fragment -->
  </cac:PartyTaxScheme>
</cac:TaxRepresentativeParty>

The corrected invoice opens cac:TaxRepresentativeParty with cac:PartyName holding Example Fiscal Representative Ltd; nothing else differs. The failing document reports BR-18 alone, because its representative still has an address with a country code and a VAT identifier.

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

  • The tax representative has the same structure in a CreditNote. When tried, a credit note whose representative had no name reported BR-18 alone.
  • An EN 16931 rule. In the recorded example the name is the only thing wrong, and the Peppol layer has no finding.
  • The seller and buyer name rules, BR-06 and BR-07, read cbc:RegistrationName. A shared party mapping has to switch to cac:PartyName for the representative.

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-24.1: source checked 2026-09-24, explanation last updated 2026-09-24.

The official definition of BR-18 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.