← All rule codes

UBL-CR-646

Warning EN 16931 (UBL)

Official rule text

[UBL-CR-646]-A UBL invoice should not include the InvoiceLine SubInvoiceLine

What it means

cac:SubInvoiceLine (sub-lines nested under an invoice or credit note line) is valid UBL 2.1 but sits outside the EN 16931 semantic model, so the CEN artefacts flag it as a warning like the other UBL-CR 'not part of the data model' rules. Anything you put there is invisible to EN 16931 consumers and may be dropped in conversion.

How to fix it

Flatten sub-lines into regular top-level cac:InvoiceLine elements (BG-25) and remove every cac:SubInvoiceLine; if you need line grouping, BT-132 (order line reference) or item attributes are the model-compatible options.

Business terms involved: BG-25

🇫🇷 En français

cac:SubInvoiceLine (sous-lignes imbriquées sous une ligne de facture ou d'avoir) est valide en UBL 2.1 mais hors du modèle sémantique EN 16931 : les artefacts CEN le signalent en warning, comme les autres règles UBL-CR « not part of the data model ». Ce que vous y mettez est invisible pour les consommateurs EN 16931 et risque d'être perdu à la conversion.

Correction : Aplatissez les sous-lignes en cac:InvoiceLine de premier niveau (BG-25) et supprimez tout cac:SubInvoiceLine ; pour regrouper des lignes, la référence de ligne de commande (BT-132) ou les attributs d'article restent compatibles avec le modèle.

Seeing UBL-CR-646 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.