Error codes · Peppol BIS 3.0

PEPPOL-EN16931-R008Fixable here

Document must not contain empty elements

This is the rejection, word for word: „[PEPPOL-EN16931-R008] PEPPOL-EN16931-R008 fires when your invoice XML contains empty elements — tags with no text content and no children. Peppol requires that if an element is present, it must have a value. This is one of the most frequent Peppol errors because many ERP systems emit optional fields as empty tags rather than omitting them entirely.“

The Peppol Schematron rule PEPPOL-EN16931-R008 asserts not(*[not(node())]) on every element in the document, effectively rejecting any element that has neither text content nor child elements. Self-closing tags like <cbc:Note/> and open/close pairs like <cbc:OrderReference></cbc:OrderReference> both count as empty. Whitespace-only content (spaces, tabs, newlines) also fails because Schematron treats normalize-space() as empty. The rule fires per empty element, so a single invoice can produce many R008 messages.

What to have readyDelivery country
What we doRemove every empty element from the invoice XML. Either populate the element with a real value or delete the tag entirely. Invoice Navigator auto-fixes R008 with 0.95 confidence by stripping all empty and whitespace-only elements while preserving structure.
If you enter it yourself in your invoicing software
Before
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
  <cbc:ID>INV-2026-0842</cbc:ID>
  <cbc:IssueDate>2026-08-12</cbc:IssueDate>
  <cbc:Note/>
  <cbc:BuyerReference></cbc:BuyerReference>
  <cac:OrderReference>
    <cbc:ID/>
  </cac:OrderReference>
  <cbc:AccountingCost>   </cbc:AccountingCost>
</Invoice>
After
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
  <cbc:ID>INV-2026-0842</cbc:ID>
  <cbc:IssueDate>2026-08-12</cbc:IssueDate>
  <cbc:BuyerReference>CC-2410-DE-04</cbc:BuyerReference>
  <cac:OrderReference>
    <cbc:ID>PO-2026-000442</cbc:ID>
  </cac:OrderReference>
  <!-- empty cbc:Note and cbc:AccountingCost removed -->
</Invoice>
What the finding looks likeExample
FindingValue missing · PEPPOL-EN16931-R008
Location/Invoice/cbc:DocumentCurrencyCode
From youDelivery country
ThenPassed
ProofSHA-256 and /verify link after the check