Error codes · Peppol BIS 3.0
Buyer electronic address (EndpointID) MUST be provided
This is the rejection, word for word: „[PEPPOL-EN16931-R010] PEPPOL-EN16931-R010 fires when the buyer party in your invoice has no cbc:EndpointID element. The buyer electronic address (BT-49) is what the Peppol network uses to route the document to the right receiver, so Access Points reject the invoice outright when it is absent. This is the single most common Peppol routing error, because most ERP systems store the buyer participant ID in customer master data rather than deriving it from the invoice itself.“
The Peppol Schematron rule PEPPOL-EN16931-R010 has context cac:AccountingCustomerParty/cac:Party and asserts test="cbc:EndpointID" with flag="fatal". XPath: /Invoice/cac:AccountingCustomerParty/cac:Party/cbc:EndpointID (or /CreditNote/... for credit notes). The element itself is not enough: the schemeID attribute is mandatory and must carry a code from the CEF Electronic Address Scheme (EAS) code list — for example 0088 (GLN), 0106 (Dutch KvK-linked EAS), 0190 (Dutch OIN), 0192 (Norwegian org. no.), 9930 (DE VAT), 9944 (NL VAT). A missing or non-EAS schemeID does not trigger R010 but will fail the companion code-list rule instead, so both must be correct before the invoice passes.
<cac:AccountingCustomerParty>
<cac:Party>
<!-- cbc:EndpointID is missing -->
<cac:PartyName>
<cbc:Name>Voorbeeld Retail B.V.</cbc:Name>
</cac:PartyName>
</cac:Party>
</cac:AccountingCustomerParty><cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0190">123456789012345678</cbc:EndpointID>
<cac:PartyName>
<cbc:Name>Voorbeeld Retail B.V.</cbc:Name>
</cac:PartyName>
</cac:Party>
</cac:AccountingCustomerParty>