PEPPOL-EN16931-R001fatal

How to fix PEPPOL-EN16931-R001

Business process MUST be provided.

What this rule checks

Every Peppol BIS 3.0 invoice must include a business process identifier (BT-23, mapped to cbc:ProfileID). This element tells the Peppol network which business process the document belongs to (e.g. billing, ordering). Without it, the access point cannot route the document to the correct process handler on the receiver's side.

How to fix it

Add cbc:ProfileID with the appropriate Peppol process identifier, e.g. 'urn:fdc:peppol.eu:2017:poacc:billing:01:1.0'.

Common causes

  • The cbc:ProfileID element is missing from the invoice header.
  • The element is present but empty.
  • The ProfileID was confused with CustomizationID and omitted.
  • An older template was used that did not include the ProfileID field.

Example: before (broken)

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
  <!-- cbc:ProfileID is missing -->
  <cbc:ID>INV-2024-001</cbc:ID>
</Invoice>

Example: after (fixed)

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <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>INV-2024-001</cbc:ID>
</Invoice>

Related rules

Validate your invoice

Upload your corrected invoice to check it passes PEPPOL-EN16931-R001 and all other EN 16931 and Peppol BIS 3.0 rules. Free, instant, no signup.