Important submission fields in a UBL invoice

The fields that determine where your invoice goes: EndpointID, CompanyID and their priority.

When sending an e-invoice via Peppol, specific fields in the UBL structure determine where the document is routed to. Correctly filling in these fields is crucial: an error in the routing fields can cause your invoice not to arrive or to end up with the wrong party.

Routing priority

The eConnect PSB uses the following fields to determine the receiver, in descending priority:

PriorityXML pathPurpose1 (highest)cac:AccountingCustomerParty/cac:Party/cbc:EndpointIDPrimary Peppol routing2cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyIDLegal identifier (Chamber of Commerce, OIN)3cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyIDVAT number

The system starts at priority 1 and checks whether the identifier is registered on the Peppol network (via an SMP lookup). If so, the invoice is delivered via Peppol. If not, the next field in the priority order is tried.

EndpointID: the most important field

The EndpointID is the primary routing field in Peppol BIS Billing V3. This field contains the Peppol identifier of the receiver, including the schemeID indicating which type of identifier is used.

<cac:AccountingCustomerParty>
  <cac:Party>
    <cbc:EndpointID schemeID="0106">12345678</cbc:EndpointID>
  </cac:Party>
</cac:AccountingCustomerParty>

In this example, routing is based on Chamber of Commerce number 12345678 (schemeID 0106). The PSB looks up this number in the SMP and delivers the invoice to the associated Access Point.

Important: the EndpointID is mandatory in Peppol BIS Billing V3. An empty value or the absence of this element leads to a validation error. Always use a valid identification number.

Tip: Want to determine exactly which organisation your invoice goes to? Fill in the EndpointID with the identifier the receiver has registered on Peppol. Without an EndpointID, the system falls back to the Chamber of Commerce number from CompanyID.

If the EndpointID is not filled in or the identifier is not found on Peppol, the PSB looks at the CompanyID field within PartyLegalEntity. This typically contains the Chamber of Commerce number or OIN:

<cac:PartyLegalEntity>
  <cbc:CompanyID schemeID="0106">12345678</cbc:CompanyID>
</cac:PartyLegalEntity>
PartyTaxScheme: the VAT number

If the CompanyID also does not yield a Peppol registration, the VAT number from PartyTaxScheme is used as the last routing option via the network:

<cac:PartyTaxScheme>
  <cbc:CompanyID>NL123456789B01</cbc:CompanyID>
</cac:PartyTaxScheme>
Email as fallback

If none of the above identifiers yields a Peppol registration, the invoice can be delivered via email. The platform looks for an email address in the following fields:

  1. cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:ElectronicMail
  2. cac:AccountingCustomerParty/cac:AccountingContact
  3. cac:AccountingCustomerParty/cac:BuyerContact

Multiple email addresses (comma or semicolon separated) are supported and are sent as To + CC.

Sender contact details

The Contact element of the sender (AccountingSupplierParty) is also functionally important. If the supplier's ElectronicMail field is not filled in, eConnect automatically adds [email protected]. This ensures that rejected invoices (Invoice Response messages) still reach the sender and can be forwarded.

Tip: Always fill in your organisation's email address in the supplier contact. This way you receive rejection messages directly in your own mailbox.

Common mistakes
MistakeConsequenceSolutionEndpointID empty or missingValidation error with Peppol BIS V3Always fill in a valid EndpointIDWrong schemeIDInvoice not found on PeppolUse 0106 for Chamber of Commerce, 0190 for OIN"NA" as identifier valueRouting errorAlways use a real identification numberNo email address for receiverNo fallback if Peppol routing failsFill in the ElectronicMail field as email fallback

Unsure which identifier is registered for a specific receiver? Search the organisation in the Peppol Directory or use the queryRecipientParty function in the PSB API.

Download sample files