Account
English

PEPPOL-EN16931-R004: Specification identifier is not the Peppol BIS Billing 3.0 identifier

Peppol BIS Billing 3.0 rule · Error · UBL / CII

StandardPeppol BIS Billing 3.0 (OpenPeppol)SeverityError: the invoice is rejectedSyntaxUBL, CIIApplies toInvoices and credit notes sent over the Peppol network (UBL) and, because XRechnung embeds the Peppol rule set, every XRechnung as well.

Official rule text

[PEPPOL-EN16931-R004] Specification identifier MUST have the value 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0'.

Why this error occurs

A document validated as Peppol BIS Billing 3.0 must carry the BIS specification identifier in BT-24. The rule requires cbc:CustomizationID (UBL) or ram:GuidelineSpecifiedDocumentContextParameter/ram:ID (CII) to start with urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0. It fails when the plain EN 16931 identifier, a national CIUS identifier (XRechnung, Factur-X) or an older BIS 2 value is used, usually because the sending software is configured for a different target format.

How to fix it

Set cbc:CustomizationID / ram:GuidelineSpecifiedDocumentContextParameter/ram:ID to urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 exactly, without whitespace. National extensions that build on BIS may append their own identifier after this prefix (the test uses starts-with). If you intend to send an XRechnung over the Peppol network, keep the XRechnung identifier and validate against the XRechnung rule set instead of Peppol BIS.

Example (valid)

<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>

What the validator checks

Checked element (context):

UBL

ubl-creditnote:CreditNote | ubl-invoice:Invoice

Test (XPath):

starts-with(normalize-space(cbc:CustomizationID/text()), 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0')

CII

rsm:ExchangedDocumentContext

Test (XPath):

starts-with(normalize-space(ram:GuidelineSpecifiedDocumentContextParameter/ram:ID/text()), 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0')

Check your invoice

Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.

Check your invoice →

Same check via API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Related rules

Frequently asked questions

What does PEPPOL-EN16931-R004 mean?

PEPPOL-EN16931-R004 is a peppol bis billing 3.0 rule: Specification identifier MUST have the value 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0'.

Will my invoice be rejected because of PEPPOL-EN16931-R004?

Yes. PEPPOL-EN16931-R004 is flagged "fatal"; validators (KoSIT, Peppol access points, the German ZRE/OZG-RE portals) reject the invoice until it is fixed.

Which formats does PEPPOL-EN16931-R004 apply to?

Invoices and credit notes sent over the Peppol network (UBL) and, because XRechnung embeds the Peppol rule set, every XRechnung as well. Syntax: UBL and CII.

Source: Peppol BIS Billing 3.0.20 (November 2025). Catalogue generated from the official schematron on 2026-10-14.