InvoiceValidator.eu

UBL-CR-001

warningEN 16931syntax binding ruleUBL

A UBL invoice should not include extensions

Why it fails

The document carries an ext:UBLExtensions block. This is very common in real traffic: Peppol access points routinely add one to hold a signature, so an invoice you RECEIVED will often have it.

How to fix it

It depends who put it there, and in the common case the answer is 'nothing'. If your access point or signing software added ext:UBLExtensions — typically a SignatureInformation block — leave it alone: it is expected, this is a warning rather than an error, and the invoice is still valid EN 16931. If YOU put business data in there, move it: EN 16931 has no semantics for extensions, so a receiver will not read it. Model it with a real business term instead, or as a note (BT-22) if it is genuinely free text. Note the namespace is ext (CommonExtensionComponents-2), not cac.

What the validator checks

UBL — context /ubl:Invoice | /cn:CreditNote

not(ext:UBLExtensions)

Related rules

Part of UBL-CR — UBL restrictions.

Check your own invoice against UBL-CR-001

…or paste the XML instead

Nothing is stored, and the whole invoice is checked, not just this rule. A PDF only works if it is Factur-X / ZUGFeRD — a PDF with the invoice XML inside it.