# BR-16 At least one invoice line is required

An invoice shall have at least one Invoice line (BG-25) describing a billed item, service or charge.

## Problem Description

An invoice shall have at least one Invoice line (BG-25) describing a billed item, service or charge.

> **ERROR**: XRechnung 3.0

## Context and Significance

This is a core EN16931 rule; an invoice without lines cannot convey what is being billed, so at least one line is mandatory.

## Solution

Include at least one cac:InvoiceLine element with its identifier, quantity, price and net amount.

- validate
- convert

## Valid Examples

- Document contains one or more cac:InvoiceLine elements

## Invalid Examples

- The invoice has header and totals but no cac:InvoiceLine at all

## Code Examples

### Valid XML
```
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
</cac:InvoiceLine>
```

### Invalid XML
```
<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="EUR">0.00</cbc:LineExtensionAmount>
  <cbc:PayableAmount currencyID="EUR">0.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
```

## Affected Fields

- [BG-25 Invoice line](/resources/xrechnung)

## Related Rules

- [BR-21](/resources/kosit-validator-errors/br-21-invoice-line-identifier-required)
- [BR-12](/resources/kosit-validator-errors/br-12-sum-of-line-net-amount-required)

## Validation Tools

- [Official KoSIT Validator](https://erechnungsvalidator.service-bw.de/): Validate your XRechnung files against all BR-DE rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Automatic validation error fixes when converting.

## Related Resources

- [Official Specification](https://xeinkauf.de/xrechnung/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Complete Error List](/resources/kosit-validator-errors): Overview of all German XRechnung validation rules.
