# PEPPOL-EN16931-R001 Business process identifier (ProfileID) must be provided

Under Peppol rule PEPPOL-EN16931-R001, every invoice and credit note in Peppol BIS Billing 3.0 must contain the business process identifier in BT-23 (cbc:ProfileID). R001 checks only that the element is present; a value that is not an approved Peppol process identifier triggers PEPPOL-EN16931-R007 instead. For standard billing the value is "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0". Peppol access points and Service Metadata Publishers (SMP) use this identifier to check that the recipient accepts the process.

## Problem Description

> **ERROR**: Peppol BIS Billing 3.0 rule (OpenPeppol)

## Context and Significance

The sending Peppol access point validates the invoice before transmission and refuses an invoice without ProfileID, so it never reaches the recipient. The ProfileID must also match a process the recipient has registered in the SMP. The error usually appears when a generator writes only the CustomizationID (BT-24) and not BT-23, for example when an XRechnung export is reused for Peppol.

## Solution

In your XML generator, set BT-23 to urn:fdc:peppol.eu:2017:poacc:billing:01:1.0. In UBL 2.1, add <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID> directly under <Invoice> or <CreditNote>, right after cbc:CustomizationID. Peppol BIS Billing 3.0 is exchanged as UBL 2.1, and the Peppol validation artefacts check the UBL syntax.

- [Validate XML](/en/xrechnung-validator?source=resource&rule=PEPPOL-EN16931-R001)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&rule=PEPPOL-EN16931-R001)

## Valid Examples

- BT-23 = "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0" (Official Peppol BIS Billing 3.0 ProfileID)

## Invalid Examples

- Invoice header completely omits the cbc:ProfileID element
- Invoice header contains only cbc:CustomizationID (BT-24) and no cbc:ProfileID (BT-23)
- BT-23 = "urn:cen.eu:en16931:2017" is present but not an approved Peppol process: reported by PEPPOL-EN16931-R007, not R001

## Code Examples

### Valid XML
```
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
```

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

## Affected Fields

- [BT-23 Business process type](/resources/xrechnung/bt-23-business-process-type-identifier)
- [BT-24 Specification identifier](/resources/xrechnung/bt-24-specification-identifier)

## Related Rules

- [BR-01](/resources/kosit-validator-errors/br-01-specification-identifier-required)

## Validation Tools

- [Official KoSIT Validator](https://github.com/itplr-kosit/validator): Run the official KoSIT validator with the XRechnung configuration to check EN 16931 and XRechnung rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Find validation errors during conversion and review each correction.

## Related Resources

- [Official Specification](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-peppol/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [All validation errors](/resources/kosit-validator-errors): Overview of the EN 16931, XRechnung and Peppol validation rules explained here.
