# PEPPOL-EN16931-R001 Profile ID must match Peppol BIS Billing 3.0

Under the Peppol BIS Billing 3.0 specification (based on European standard EN 16931-1), every electronic invoice transmitted across the OpenPeppol four-corner network must declare the standard Business Process Profile Identifier in BT-23 (ProfileID). For standard commercial invoices and credit notes, this value must exactly match the official Peppol URN: "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0". Peppol Access Points (APs) and Service Metadata Publishers (SMPs) use this identifier to look up recipient participant capabilities, match routing profiles, and execute Schematron validation during network ingestion.

## Problem Description

Under the Peppol BIS Billing 3.0 specification (based on European standard EN 16931-1), every electronic invoice transmitted across the OpenPeppol four-corner network must declare the standard Business Process Profile Identifier in BT-23 (ProfileID). For standard commercial invoices and credit notes, this value must exactly match the official Peppol URN: "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0". Peppol Access Points (APs) and Service Metadata Publishers (SMPs) use this identifier to look up recipient participant capabilities, match routing profiles, and execute Schematron validation during network ingestion.

> **ERROR**: XRechnung 3.0

## Context and Significance

An absent or non-matching ProfileID causes transmitting Access Points to reject the message immediately during AS4 transmission packaging, halting delivery before reaching the recipient.

## Solution

In your XML generator or e-invoicing export module, set BT-23 to the official Peppol billing profile URN: urn:fdc:peppol.eu:2017:poacc:billing:01:1.0. In UBL 2.1 syntax, populate <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID> directly under the root <Invoice> or <CreditNote> element. In UN/CEFACT CII syntax, populate <ram:BusinessProcessSpecifiedDocumentContextParameter><ram:ID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ram:ID></ram:BusinessProcessSpecifiedDocumentContextParameter>.

- validate
- convert

## 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
- BT-23 = "urn:cen.eu:en16931:2017" (Base CEN standard identifier used instead of the Peppol process profile URN)
- BT-23 = "billing:01:1.0" (Incomplete URN prefix missing the official Peppol namespace)

## Code Examples

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

### Invalid XML
```
<!-- Missing cbc:ProfileID (BT-23) in invoice header -->
<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://erechnungsvalidator.service-bw.de/): Validate your XRechnung files against all BR-DE rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Automatic validation error fixes when converting.

## Related Resources

- [Official Specification](https://xeinkauf.de/xrechnung/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Complete Error List](/resources/kosit-validator-errors): Overview of all German XRechnung validation rules.
