e-invoice validator

Peppol errors

PEPPOL-EN16931-R001 / R004 / R007: the two identifiers at the top of the invoice

The official rule

Business process MUST be provided (R001). Specification identifier MUST begin with the value 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0' (R004). Business process MUST have an approved identifier (R007).

Rule pages: PEPPOL-EN16931-R001 PEPPOL-EN16931-R004 PEPPOL-EN16931-R007

What it means

The first two elements of the invoice declare what it is. cbc:CustomizationID says which specification it follows and cbc:ProfileID says which business process it belongs to. A plain EN 16931 invoice, or one written for a national format, carries other values, or no ProfileID at all.

Common causes

Example

Wrong:

<cbc:CustomizationID>urn:cen.eu:en16931:2017</cbc:CustomizationID>
<cbc:ID>F2026-0101</cbc:ID>

Right:

<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>F2026-0101</cbc:ID>

How to fix it

  1. Copy both values from the example above, as they are.
  2. Keep the order: cbc:CustomizationID, cbc:ProfileID, then cbc:ID.
  3. Validate with the Peppol rule set selected. Rule sets are often chosen from CustomizationID itself, so a wrong value there can hide every other Peppol error until it is fixed.

Automatic repair sets both when you ask for the Peppol profile (R007, a ProfileID with an unknown value, is left for you to check).

Check your invoice against the Peppol rules

Paste the UBL XML: you get every error at once (UBL schema, EN 16931, Peppol BIS 3.0), with the fix for each one. Free, 3 checks a day, no account. The file is not stored.

Frequently asked questions

What does 01 in the ProfileID mean?

It is the Peppol billing process: urn:fdc:peppol.eu:2017:poacc:billing:01:1.0 is the value in the official Peppol BIS Billing 3.0 examples.

Why did fixing the CustomizationID produce new errors?

Because the Peppol rules now really run on the invoice. Errors such as a missing EndpointID were there before, just not checked.

Is there a separate Belgian CustomizationID?

This validator checks the standard Peppol BIS Billing 3.0 identifier. If your access point or buyer asks for something else, follow what they require.

Other Peppol errors