The short answer
BR-62 fails when cac:AccountingSupplierParty/cac:Party/cbc:EndpointID is written without a schemeID attribute. The identifier alone is ambiguous: 7300010000001 could be a GLN, a national organisation number or something else. Add schemeID with the code of the scheme the seller address was issued under.
What the rule checks
The rule applies to the seller cbc:EndpointID and tests one thing: that the schemeID attribute exists on it. If the seller has no cbc:EndpointID at all the rule has nothing to run on and does not report; Peppol reports the missing element as PEPPOL-EN16931-R020.
The attribute value is not read. schemeID="" satisfies BR-62, and the empty code is then rejected by BR-CL-25 on the EN 16931 layer and PEPPOL-EN16931-CL008 on the Peppol layer.
The element content is not read either. An empty cbc:EndpointID with no attribute reports BR-62 together with PEPPOL-EN16931-R008, the Peppol rule against empty elements.
| Term | Meaning | UBL element |
|---|---|---|
| BT-34 | Seller electronic address | cac:AccountingSupplierParty/cac:Party/cbc:EndpointID |
| BT-34 | Seller electronic address: its scheme identifier attribute | cac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeID |
How an integration ends up here
Possible causes, from the shape of the rule rather than from measured usage:
- The source system stores the electronic address as one string and the mapping writes it as element content without an attribute.
- Scheme and identifier are stored together, for example
0088:7300010000001, and the split that should feedschemeIDis missing or failed for this seller. - The serialiser omits attributes whose value is null, and the scheme column is empty for this seller.
- The code is written to a different attribute, such as
schemeAgencyID. The rule looks only atschemeID, and the stray attribute adds the warningUBL-DT-27.
How to fix it
- Establish which scheme the seller address belongs to. It is a property of the identifier, decided when the seller obtained it:
0088for a GLN, a national code for an organisation or VAT number. Do not pick a code because it validates. - Hold the scheme code as its own field next to the identifier in the seller configuration.
- Write it to the
schemeIDattribute ofcac:AccountingSupplierParty/cac:Party/cbc:EndpointID, spelt exactly that way. - Check the code against the EAS code list before sending;
BR-CL-25tests it as soon as the attribute exists.
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 seller EndpointID has a value and no schemeID
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID>7300010000001</cbc:EndpointID>
<!-- postal address, tax scheme and legal entity omitted from this fragment -->
</cac:Party>
</cac:AccountingSupplierParty>Fragment of the corrected invoice: schemeID names the scheme of the identifier
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0088">7300010000001</cbc:EndpointID>
<!-- postal address, tax scheme and legal entity omitted from this fragment -->
</cac:Party>
</cac:AccountingSupplierParty>The corrected file has schemeID="0088" on the seller cbc:EndpointID; the failing file has the same element and value with no attribute. The failing document reports only BR-62. Its Peppol layer passes: with no schemeID there is no scheme code for the Peppol code list rule to reject.
What the validator reported
- The failing invoice reports BR-62. 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; a credit note with the attribute removed reports the same single finding. - Only the seller party is covered. The buyer
cbc:EndpointIDhas its own rule,BR-63, and a document missing both attributes reports both. - This is an EN 16931 rule, so it is reported on the EN 16931 layer even though, under Peppol, the element it examines is mandatory.
Related rules
- BR-63 is the same attribute check for the buyer electronic address
- BR-CL-25 checks that the schemeID value is a code from the EAS list
- PEPPOL-EN16931-R020 reports a seller Party with no EndpointID at all
- Browse every rule in the reference
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-62 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.
