fatal UBL auto-fix
A Peppol BIS Billing 3.0 rule (OpenPeppol): an extra requirement for invoices sent over the Peppol network, for example electronic addresses (BT-34, BT-49), the business process (BT-23) or code values. This is an error: the invoice is rejected until it is fixed.
Automatic fix: 9 € per file (excl. VAT where applicable). A malformed Peppol specification identifier (BT-24) is replaced by the canonical one; with the target-profile parameter an XRechnung invoice can be re-targeted to Peppol BIS Billing 3 (remaining profile rules are then reported). The result page shows which errors the repair removes and whether the corrected file then passes — before you pay. Many files? Pilot and Repair API.
[PEPPOL-EN16931-R004]-Specification identifier MUST begin with the value 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0' and follow the format rules for the identifier.
A malformed Peppol specification identifier (BT-24) is replaced by the canonical one; with the target-profile parameter an XRechnung invoice can be re-targeted to Peppol BIS Billing 3 (remaining profile rules are then reported).
This rule is in the deterministic set of our repair engine (UBL 2.1; measured 2026-10-23: XRechnung 15 broken test invoices accepted after repair, 45 valid invoices unchanged; Peppol BIS Billing 3: 10 official examples unchanged, 40 mutated invoices: 36 accepted after repair, 4 rejected as expected — one documented limit, two with the repair parameter switched off, one where no address could be derived; profile conversion of 33 XRechnung test invoices to Peppol: 30 accepted). For UN/CEFACT CII (Factur-X / ZUGFeRD EN 16931 XML, XRechnung CII) the engine repairs the totals chain, VAT breakdown, rounding, decimals and element order (measured 2026-10-24: 53 valid CEN and XRechnung CII invoices unchanged; 28 broken invoices: 27 accepted after repair, 1 rejected as expected because a VAT exemption reason cannot be derived). Single files: 9 € on the result page; many files: the Repair API — see Pricing.
| Syntax | Severity | Context (XPath) | Test (XPath) |
|---|---|---|---|
| Peppol-UBL | fatal | ubl-creditnote:CreditNote | ubl-invoice:Invoice | starts-with(normalize-space(cbc:CustomizationID/text()), 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0') and not(contains(normalize-space(cbc:CustomizationID/text()), '::')) |
Source: Peppol BIS Billing 3.0 Schematron, UBL (OpenPeppol, docs.peppol.eu validation artefacts 3.0.21).