# BR-06: Add 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.

- Layer: EN 16931
- Severity: fatal (the document is invalid)
- Topics: Core fields, Parties and addresses
- Official definition: https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/BR-06/
- Explanation last updated: 2026-09-20

## 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.

| Term | Meaning | UBL element |
|---|---|---|
| BT-27 | Seller name | `cac: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.

## 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

```xml
<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

```xml
<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

- The failing invoice reports **BR-06** and [PEPPOL-EN16931-R008](https://ironfang.uk/docs/finance/rules/PEPPOL-EN16931-R008.md). The corrected document passes every layer with no findings.
  - [Download the failing XML](https://ironfang.uk/finance/rule-examples/invoice-empty-seller-name.xml)
  - [Download the corrected XML](https://ironfang.uk/finance/rule-examples/invoice-minimal.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 `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.

## Related rules

- [BR-07 is the same check for the buyer name](https://ironfang.uk/docs/finance/rules/BR-07.md)
- [PEPPOL-EN16931-R008 fires as well when the name element is present but empty](https://ironfang.uk/docs/finance/rules/PEPPOL-EN16931-R008.md)
- [PEPPOL-EN16931-R020 requires the seller electronic address in the same party](https://ironfang.uk/docs/finance/rules/PEPPOL-EN16931-R020.md)
- [BR-CO-09 checks the country prefix of the seller VAT identifier](https://ironfang.uk/docs/finance/rules/BR-CO-09.md)

## 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-20.

[The official definition of BR-06](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/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.

## Links

- [This rule as a web page](https://ironfang.uk/docs/finance/rules/BR-06)
- [Free Peppol invoice validator](https://ironfang.uk/tools/peppol-validator)
- [Rule index](https://ironfang.uk/docs/finance/rules.md)
- [Ironfang Finance API docs](https://ironfang.uk/docs/finance)
- The same rule is available to MCP clients as the tool `finance.rule.get` on https://mcp.ironfang.uk/mcp
