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:InvoiceTest (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:ExchangedDocumentContextTest (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.
Same check via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRelated rules
PEPPOL-EN16931-R001Business process identifier (BT-23) is missingPEPPOL-EN16931-R002No more than one note is allowed on document level, unless both the buyer and seller…PEPPOL-EN16931-R003Neither buyer reference nor purchase order reference givenPEPPOL-EN16931-R005VAT accounting currency equals the invoice currencyPEPPOL-EN16931-R006Only one invoiced object is allowed on document levelPEPPOL-EN16931-R007Business process identifier has the wrong formatPEPPOL-EN16931-R008Document contains empty elementsPEPPOL-EN16931-R010Buyer electronic address (BT-49) is missing
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.