Skip to content

Ironfang Finance - Rule reference

UBL-CR-187: Remove HeadOfficeParty from the seller's legal registration

Warning: EN 16931 has no place for cac:HeadOfficeParty in the seller's legal registration. The document stays valid; remove it.

EN 16931Warning: the document stays validParties and addresses

On this page

The short answer

UBL-CR-187 is a warning raised when cac:HeadOfficeParty appears in the seller's legal registration (cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity). EN 16931 has no business term for it, so remove the element and everything inside it.

The warning on its own does not make the document invalid, though other rules still check what is there. Removing the element keeps the XML inside the EN 16931 model, which is what a receiver maps the invoice from.

What the rule checks

The rule checks one thing: whether cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cac:HeadOfficeParty exists. What it contains is not read.

It runs once against the whole document, so it is reported once however many times the document has the element, and the finding points at the document root rather than at the element: look for cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cac:HeadOfficeParty in the XML.

Everything inside cac:HeadOfficeParty goes with it; no other UBL-CR rule names a position inside it.

TermMeaningUBL element
-HeadOfficeParty (UBL only, no business term)cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cac:HeadOfficeParty
BT-30Seller's legal registrationcac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity

How an integration ends up here

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

  • A whole cac:HeadOfficeParty structure is copied from a master record or another document type, including parts EN 16931 does not use.
  • A general UBL 2.1 library writes every element and attribute it has a value for, whether or not EN 16931 uses it.
  • A mapping built for another UBL-based document, such as an order, a despatch advice or a national profile, is reused for Peppol BIS Billing.

How to fix it

  1. Stop writing cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cac:HeadOfficeParty, with everything inside it.
  2. If you need the information, keep it in your own records: EN 16931 has no business term for it, so a receiver has no agreed place to read it from.
  3. Validate again: the warning goes. If the element was the only thing in its parent, remove the parent too: Peppol refuses empty elements (PEPPOL-EN16931-R008).

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 invoice with the warning: HeadOfficeParty in the seller's legal registration

<cac:PartyLegalEntity>
  <cbc:RegistrationName>Example Supplier Ltd</cbc:RegistrationName>
  <cbc:CompanyID>12345678</cbc:CompanyID>
  <cac:HeadOfficeParty>
    <cbc:MarkCareIndicator>true</cbc:MarkCareIndicator>
  </cac:HeadOfficeParty>
</cac:PartyLegalEntity>

Fragment of the corrected invoice: the same lines without it

<cac:PartyLegalEntity>
  <cbc:RegistrationName>Example Supplier Ltd</cbc:RegistrationName>
  <cbc:CompanyID>12345678</cbc:CompanyID>
</cac:PartyLegalEntity>

The invoice with the warning has <cac:HeadOfficeParty> in the seller's legal registration, and the corrected invoice is the same document without it. It reports only this warning and is valid on every layer, so it would be accepted as it stands.

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 recorded example is an invoice.
  • The warning comes from the EN 16931 layer's rules for the UBL syntax. In the recorded example the schema layer passes: the element is valid UBL 2.1 and is only outside the EN 16931 model.

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

The official definition of UBL-CR-187 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.