← All rule codes

PEPPOL-EN16931-R008

Error (blocking) Peppol BIS Billing 3.0

Official rule text

Document MUST not contain empty elements.

What it means

Peppol rejects any element with no child elements and no text content: self-closing tags like <cbc:Note/> or elements containing only whitespace, anywhere in the document. Template engines that render every optional field unconditionally are the classic source - each empty element raises its own fatal error.

How to fix it

Omit optional elements entirely when there is no value to put in them; audit your serializer so it skips null/empty fields instead of writing empty tags.

🇫🇷 En français

Peppol rejette tout élément sans élément enfant et sans contenu texte : balises auto-fermées type <cbc:Note/> ou éléments ne contenant que des espaces, n'importe où dans le document. Les moteurs de templates qui rendent tous les champs optionnels sans condition sont la source classique - chaque élément vide lève sa propre erreur fatale.

Correction : Omettez complètement les éléments optionnels sans valeur ; corrigez le sérialiseur pour qu'il saute les champs null/vides au lieu d'écrire des balises vides.

Seeing PEPPOL-EN16931-R008 in a rejection?

Run your file through the free validator to see every violation at once — or let NormDrift watch your reference invoices so the next ruleset release never surprises you.