BR-16An Invoice shall have at least one Invoice line (BG-25)

Official rule text

The invoice must contain at least one invoice line (BG-25). A document consisting only of header and total data is not permitted.

Severity
Error
Applies to
CII, UBL
Rule set
v2026-08-31
Checked on

Written and checked against the official KoSIT rule set by Dmytro Yalanskyi, NormAPI.

Why does BR-16 happen?

Appears when the generator builds lines from an item list and that list is empty — typically flat-fee or instalment invoices that are managed internally without line items.

What the validator checks

The expression the official KoSIT rule set evaluates — not paraphrased, but read from the Schematron file it ships. UBL and CII address different document trees, so the same rule reads differently in each.

UBL
exists(cac:InvoiceLine) or exists(cac:CreditNoteLine)
CII
//ram:IncludedSupplyChainTradeLineItem

Source: rule set v2026-08-31

How do you fix BR-16?

Emit exactly one line even for a flat amount: cac:InvoiceLine in UBL, ram:IncludedSupplyChainTradeLineItem in CII. That single line then has to be complete in itself — a line identifier (BR-21), quantity 1 (BR-22), the unit code C62 for “one” (BR-23), a net amount (BR-24), an item name (BR-25) and a net price (BR-26). Create the line and leave those six out and you have traded one error for six.

In the XML

A UBL fragment. The CII path is named above — same change, different element names.

Fails
<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
  <cbc:PayableAmount currencyID="EUR">1190.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Fixed
<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
  <cbc:PayableAmount currencyID="EUR">1190.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">1</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cbc:Name>Pauschale</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">1000.00</cbc:PriceAmount>
  </cac:Price>
</cac:InvoiceLine>

Related rules

NormAPI provides technical validation, not tax or legal advice.