Account
English

PEPPOL-EN16931-R001: Business process identifier (BT-23) is missing

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-R001] Business process MUST be provided.

Why this error occurs

Peppol BIS Billing 3.0 requires every invoice and credit note to state the business process it belongs to. The rule checks for cbc:ProfileID (UBL) or ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID in rsm:ExchangedDocumentContext (CII). Access points use the process identifier together with the document type to route and validate the message. It is usually missing because software exports plain EN 16931 documents where the element is optional.

How to fix it

In UBL add cbc:ProfileID directly after cbc:CustomizationID with the value urn:fdc:peppol.eu:2017:poacc:billing:01:1.0. In CII add ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID with the same value as the first child of rsm:ExchangedDocumentContext, before the guideline parameter. The format must follow PEPPOL-EN16931-R007 (process number 01 for standard billing).

Example (valid)

<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>

What the validator checks

Checked element (context):

UBL

ubl-creditnote:CreditNote | ubl-invoice:Invoice

Test (XPath):

cbc:ProfileID

CII

rsm:ExchangedDocumentContext

Test (XPath):

ram:BusinessProcessSpecifiedDocumentContextParameter/ram:ID

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-R001 mean?

PEPPOL-EN16931-R001 is a peppol bis billing 3.0 rule: Business process MUST be provided.

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

Yes. PEPPOL-EN16931-R001 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-R001 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.