Skip to content

Warning

UBL-CR-646: Lines should not contain SubInvoiceLine blocks

In short

Warning: worth checking.

UBL-CR-646 means a line has another line nested inside it as cac:SubInvoiceLine, which EN 16931 does not support. List each sub-line as an ordinary line of its own, or fold it into the parent line.

On this page

What it means

This rule checks that no cac:InvoiceLine or cac:CreditNoteLine contains a cac:SubInvoiceLine. UBL lets a line hold smaller lines, for example the parts of a bundle. EN 16931 has a flat list of lines (BG-25) and no nesting. This particular test checks cac:SubInvoiceLine, not cac:SubCreditNoteLine.

Why it matters

EN 16931 does not use cac:SubInvoiceLine within an invoice or credit note line.

How to fix it

Decide what the buyer should see. Either list the parts as ordinary lines, or keep one line for the bundle and describe its contents in the item description. Keep each amount on one line only, so it is not counted twice in the totals. If you build the XML yourself, remove cac:SubInvoiceLine from the lines.

Once the file is corrected, check it again for free: Validate an invoice against EN 16931

Or fix the invoice in a form and download the corrected file, for 1 credit: Fix a rejected e-invoice

The rule as published

A UBL invoice should not include the InvoiceLine SubInvoiceLine

Where this rule applies

Rule set Version
EN 16931 (UBL) 1.3.17
EN 16931 (UBL credit note) 1.3.17
XRechnung 3.0 (UBL) 3.0.2
XRechnung 3.0 (UBL credit note) 3.0.2
Peppol BIS Billing 3.0 (invoice) 2026.5
Peppol BIS Billing 3.0 (credit note) 2026.5
SI-UBL 2.0 / NLCIUS (invoice) 2.0.3.13
SI-UBL 2.0 / NLCIUS (credit note) 2.0.3.13
France CTC (UBL invoice) 1.4.0-04
France CTC (UBL credit note) 1.4.0-04
CIUS-RO UBL Invoice 1.0.9 1.0.9
CIUS-RO UBL Credit Note 1.0.9 1.0.9
Rule text from phive-rules 4.6.4.

Check your file

Drop your e-invoice to see whether UBL-CR-646 still fails, and which other rules do.

Updated 6 November 2026