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).
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
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
Number lines
Use sequential numbers (1, 2, 3...) or your internal line references
Ensure uniqueness
Each line must have a different ID within the invoice
Keep consistent
Line IDs should match your internal order/invoice line numbers
Before / After
<Invoice> <!-- cac:InvoiceLine is missing --> </Invoice>
<Invoice> <cac:InvoiceLine>valid-value</cac:InvoiceLine> </Invoice>
Technical Reference
XPath: /Invoice/cac:InvoiceLine/cbc:IDCode 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
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
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.