Skip to content

BR-06Add the seller name as the supplier RegistrationName

The supplier party needs a non-empty cbc:RegistrationName inside cac:PartyLegalEntity. A trading name in cac:PartyName does not count.

EN 16931Fatal: the document is invalidCore fieldsParties and addresses

The short answer

BR-06 fails when cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName is missing or empty. Put the seller's registered legal name there.

The rule reads that one path. A name written to cac:PartyName/cbc:Name, which is the seller trading name, leaves it failing.

What the rule checks

The rule takes the supplier cbc:RegistrationName and fails when there is no such element or when it holds only whitespace. It does not look anywhere else in the party for a name, and it cannot tell a real name from a placeholder: any visible text passes.

Missing versus empty: the UBL schema makes both cac:PartyLegalEntity and the cbc:RegistrationName inside it optional, so the XSD layer does not stop a document that leaves either out. Such a document reports BR-06 on its own. When the element is present but empty, as in the recorded example, PEPPOL-EN16931-R008 is reported as well.

The finding is located at the document root, not at the supplier party, because the rule is evaluated once per document. The rule id is what tells you it is the seller name and not the buyer name.

TermMeaningUBL element
BT-27Seller namecac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName

How an integration ends up here

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

  • The source system holds a single display name and the mapping sends it to cac:PartyName/cbc:Name only.
  • The legal name comes from a company settings record that has not been completed for this tenant or legal entity.
  • The serialiser writes cac:PartyLegalEntity for the company registration number and leaves the name out, or writes it as an empty element when the value is null.
  • A multi-company setup resolves the selling entity at export time and the lookup finds nothing for this document.

How to fix it

  1. Locate the registered legal name of the selling entity in the source data, the name under which it is registered and not a brand or a department.
  2. Write it to cbc:RegistrationName inside the supplier cac:PartyLegalEntity, ahead of any cbc:CompanyID there.
  3. If there is also a trading name, keep it in cac:PartyName/cbc:Name in addition. It is a separate field and does not replace the legal name.
  4. Stop the export when the legal name is unknown. Do not fill the element with a placeholder; the name identifies who issued the invoice.

Validate your corrected invoice

Before and after

These are fragments, not complete documents. The complete synthetic documents they come from are linked below.

Supplier party of the failing invoice: the legal entity is there but its name is empty

<cac:AccountingSupplierParty>
  <cac:Party>
    <!-- endpoint, postal address and tax scheme omitted from this fragment -->
    <cac:PartyLegalEntity>
      <cbc:RegistrationName></cbc:RegistrationName>
      <cbc:CompanyID>12345678</cbc:CompanyID>
    </cac:PartyLegalEntity>
  </cac:Party>
</cac:AccountingSupplierParty>

Supplier party of the corrected invoice: the registered name is filled in

<cac:AccountingSupplierParty>
  <cac:Party>
    <!-- endpoint, postal address and tax scheme omitted from this fragment -->
    <cac:PartyLegalEntity>
      <cbc:RegistrationName>Example Supplier Ltd</cbc:RegistrationName>
      <cbc:CompanyID>12345678</cbc:CompanyID>
    </cac:PartyLegalEntity>
  </cac:Party>
</cac:AccountingSupplierParty>

Only the supplier cbc:RegistrationName differs: empty in the failing invoice, Example Supplier Ltd in the corrected one. The failing document also reports PEPPOL-EN16931-R008, which objects to any element that has neither content nor children, and the empty name is such an element. Supplying the name clears both.

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 alike; the supplier party has the same structure in both, and the recorded credit note with an empty seller name reports the same two rules.
  • The rule concerns the seller only. It does not read the payee or the tax representative, which are separate parties in the document.

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

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