BR-21: what it means and how to fix it

Each invoice line must have a line identifier.

RuleBR-21
StandardEN 16931-1, the European standard for electronic invoices
SeverityError (the invoice is not conformant)
ConcernsBT-126: Invoice line identifier

How to fix it

Number the lines (1, 2, 3 …).

Where the field is in the XML

TermCII (XRechnung-CII, ZUGFeRD, Factur-X)UBL (XRechnung-UBL, Peppol)
BT-126
Invoice line identifier
ram:IncludedSupplyChainTradeLineItem/ram:AssociatedDocumentLineDocument/ram:LineIDcac:InvoiceLine/cbc:ID

Check your own file for this rule

Up to 5 MB. Read in memory for this one request and not stored.

From your code

curl -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/xml" \
  --data-binary @invoice.xml "https://agent-data-tools.revmesh2074.workers.dev/einvoice/validate"

The answer lists every broken rule with its number, the field, a message with the figures from your file and the fix. E-invoice API: validate, convert to JSON, and create XRechnung or ZUGFeRD XML from JSON.

Questions

What does BR-21 mean?

Each invoice line must have a line identifier. It is a rule of EN 16931-1, the European standard for electronic invoices.

How do I fix BR-21?

Number the lines (1, 2, 3 …).

Is BR-21 an error or a warning?

An error: a validator reports the invoice as not conformant, and a recipient that validates incoming e-invoices can reject it.

Rule numbers are those of EN 16931-1; the explanation is ours. Not tax or legal advice.