errorbusinessEN 16931

BR-16:Invoice line must have an identifier

Fix: Add a unique ID to each invoice line.

Each invoice line must have a unique line identifier (ID).

Severity
Fatal
Rule set
EN 16931
Country
All EU
Fix type
BLOCKED

Engine Classification

Financial or legal field · Modification blocked by policy

Reason: Line identifiers must be unique and consistent with your accounting system. Automatic assignment could break document references and audit trails.

What is BR-16?

BR-16 is a fatal validation rule defined in the EN 16931 specification. It validates the ID element under Invoice > InvoiceLine in the UBL invoice XML.

When this rule fires, the invoice is rejected by Peppol access points and never reaches the buyer.

Target path: XPath: /Invoice/cac:InvoiceLine/cbc:ID

This error requires manual correction — financial fields are protected by policy.

Why This Error Matters

Invoice rejected. Without line items, there is no description of goods/services being invoiced.

BR-16 is a hard failure — the invoice must be corrected and re-sent before it can reach the recipient.

Validator Behavior

  • ·Causes invoice rejection
  • ·Error returned: BR-16
  • ·Specification: EN 16931

How to Fix It

1.

Number lines

Use sequential numbers (1, 2, 3...) or your internal line references

2.

Ensure uniqueness

Each line must have a different ID within the invoice

3.

Keep consistent

Line IDs should match your internal order/invoice line numbers

Before / After

Failing XML
<Invoice>
  <!-- cac:InvoiceLine is missing -->
</Invoice>
Corrected XML
<Invoice>
  <cac:InvoiceLine>valid-value</cac:InvoiceLine>
</Invoice>

Technical Reference

XPathXPath: /Invoice/cac:InvoiceLine/cbc:ID
SpecEN 16931
StrategyBLOCKED: Cannot create invoice line items automatically. Line items contain product/service details, quantities, and prices that only exist in your source system. Re-export with line items included.

Code Example

<cac:InvoiceLine>\n  <cbc:ID>1</cbc:ID>\n  <cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>\n  <!-- rest of line -->\n</cac:InvoiceLine>

Common Causes

  • ·Header-only invoice exported without line details
  • ·InvoiceLine elements failed to export from source
  • ·Summary invoice created without itemization
  • ·Export template missing InvoiceLine section entirely
  • ·Line items filtered out due to zero-value or invalid data

Seeing this in production? The API handles BR-16 automatically. See the fix response →

Commonly Seen In

All invoicing software

Frequently Asked Questions

Each invoice line must have a unique line identifier (ID).

Add a unique ID to each invoice line. This error involves a protected field — Invoice Navigator flags it in your pipeline so your team can correct it at the source.

Yes, BR-16 is a critical error that will cause invoice rejection. It must be fixed before submission to ensure your invoice is accepted by the recipient's system.

BR-16 involves a financial or legal field that cannot be auto-modified by policy. Invoice Navigator detects and flags this error immediately, but the correction must be made manually in your ERP or invoicing software.

BR-16 is commonly seen in exports from All invoicing software. These software packages sometimes generate invoices that need adjustment to meet full compliance standards.

Related Errors

Related Content

Last updated: 7 April 2026

Share this guide:

Validate your invoice

Drop your XML here to check for BR-16

Detect BR-16 before submission

This error involves a financial field that can't be auto-modified. We'll flag it with a clear diagnosis so you can fix it at the source.