What it means
A Peppol invoice may not contain empty elements: every element must hold a value or child elements. An empty tag such as <cbc:Note/> or <cac:PartyName></cac:PartyName> is not allowed.
Why it matters
Peppol BIS Billing 3.0 adds this rule to EN 16931 so that every access point and receiver can process the invoice the same way. The sending or receiving access point rejects an invoice that fails it, so it never reaches the buyer.
How to fix it
Leave optional fields out entirely rather than sending them empty. In your invoicing software, clear unused fields so they are not exported, or ask your software provider to stop writing empty tags. If you build the XML yourself, only write an element when you have a value for it.
The rule as published
Document MUST not contain empty elements. Where Factur-X 1.09 BASIC, Factur-X 1.09 EN 16931, Factur-X 1.09 EXTENDED, ZUGFeRD 2.5 BASIC, ZUGFeRD 2.5 EN 16931, ZUGFeRD 2.5 EXTENDED run it, the rule reads:
Document MUST not contain empty elements. (still status warning) Where this rule applies
| Rule set | Version |
|---|---|
| XRechnung 3.0 (UBL) | 3.0.2 |
| XRechnung 3.0 (UBL credit note) | 3.0.2 |
| XRechnung 3.0 (CII) | 3.0.2 |
| Peppol BIS Billing 3.0 (invoice) | 2026.5 |
| Peppol BIS Billing 3.0 (credit note) | 2026.5 |
| Factur-X 1.09 BASIC | 1.0.9-2 |
| Factur-X 1.09 EN 16931 | 1.0.9-2 |
| Factur-X 1.09 EXTENDED | 1.0.9-2 |
| ZUGFeRD 2.5 BASIC | 2.5.2 |
| ZUGFeRD 2.5 EN 16931 | 2.5.2 |
| ZUGFeRD 2.5 EXTENDED | 2.5.2 |
Check your file
Drop your e-invoice to see whether PEPPOL-EN16931-R008 still fails, and which other rules do.
Related rules
- PEPPOL-EN16931-R010 The buyer's electronic address is required
- PEPPOL-EN16931-R020 The seller's electronic address is required
- PEPPOL-EN16931-R040 A percentage discount or charge must add up
- PEPPOL-EN16931-R041 A percentage needs a base amount
- PEPPOL-EN16931-R042 A base amount needs a percentage
- PEPPOL-EN16931-R043 The charge indicator must be true or false