Peppol error codes

PEPPOL-EN16931-R001: business process (ProfileID) is missing

Error code PEPPOL-EN16931-R001 means: the invoice does not state the Peppol process it is sent in.

Rule set: Peppol BIS Billing 3.0 · Severity: error (fatal): an Access Point rejects the invoice · Checked against the official rules of May 2026

What does PEPPOL-EN16931-R001 mean?

The validator shows this message (as worded in the official rules):

[PEPPOL-EN16931-R001]-Business process MUST be provided.

Every Peppol invoice must state the business process (BT-23, cbc:ProfileID). For invoices and credit notes under Peppol BIS Billing 3.0 that is urn:fdc:peppol.eu:2017:poacc:billing:01:1.0. In our test, a missing ProfileID also triggered PEPPOL-EN16931-R007: the process must have an approved value.

Common causes

  • A custom XML export omits cbc:ProfileID because it is optional under EN 16931 alone.
  • A template for another network or country was reused.
  • The ProfileID was in the wrong position and was therefore dropped.

How to fix it as the sender

  1. Put cbc:ProfileID directly after cbc:CustomizationID.
  2. Use the value urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 for normal invoices and credit notes.
  3. Validate again. Also check the CustomizationID: see PEPPOL-EN16931-R004.

Received an invoice with this error?

An invoice with this error is not compliant. Ask the supplier for a corrected invoice and do not change the XML yourself.

Example in the XML

❌ Wrong

<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<!-- no ProfileID -->
<cbc:ID>2026-0042</cbc:ID>

✅ Correct

<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>2026-0042</cbc:ID>

Both snippets come from a complete test invoice that we checked with our validator: the wrong version gives exactly this message, the correct version no errors at all.

Good to know

Self-billing has its own process with a different value. In that case, use the value from the self-billing specification.

Check your invoice

Drop your XML into the free validator. You see right away whether this error still occurs, with a link to the explanation for every message.

Official rule

The full rule with its technical test (Schematron) is in the official Peppol documentation:

Related error codes

Frequently asked questions about PEPPOL-EN16931-R001

What is the difference between CustomizationID and ProfileID?

The CustomizationID states which specification the invoice follows. The ProfileID states the business process it is sent in.

Where is the ProfileID in the XML?

At the top of the invoice, as cbc:ProfileID directly after cbc:CustomizationID.

← All Peppol error codes