BR-23: what it means and how to fix it
Each invoice line must have a unit of measure code for its quantity.
| Rule | BR-23 |
|---|---|
| Standard | EN 16931-1, the European standard for electronic invoices |
| Severity | Error (the invoice is not conformant) |
| Concerns | BT-130: Invoiced quantity unit of measure code |
How to fix it
Add a UN/ECE Recommendation 20 unit code: C62 (piece), HUR (hour), DAY, KGM, LTR, MTR …
Where the field is in the XML
| Term | CII (XRechnung-CII, ZUGFeRD, Factur-X) | UBL (XRechnung-UBL, Peppol) |
|---|---|---|
| BT-130 Invoiced quantity unit of measure code | ram:SpecifiedLineTradeDelivery/ram:BilledQuantity/@unitCode | cac:InvoiceLine/cbc:InvoicedQuantity/@unitCode |
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-23 mean?
Each invoice line must have a unit of measure code for its quantity. It is a rule of EN 16931-1, the European standard for electronic invoices.
How do I fix BR-23?
Add a UN/ECE Recommendation 20 unit code: C62 (piece), HUR (hour), DAY, KGM, LTR, MTR …
Is BR-23 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.