# BR-22 Invoiced quantity must be present on every invoice line

Under EN 16931 rule BR-22, each invoice line (BG-25 / INVOICE LINE) must specify the invoiced quantity in BT-129 (InvoicedQuantity). The invoiced quantity represents the number of units of goods delivered or service units rendered. A missing quantity prevents arithmetic computation of the line net extension amount and the verification of total invoice economics.

## Problem Description

> **ERROR**: EN 16931 core business rule (CEN)

## Context and Significance

Omission of BT-129 prevents verification of line item pricing and triggers Schematron validation error BR-22.

## Solution

In your ERP billing module, ensure that every line item has a non-empty invoiced quantity. In UBL 2.1 syntax, populate <cbc:InvoicedQuantity unitCode="H87">5.00</cbc:InvoicedQuantity> under <cac:InvoiceLine>. In UN/CEFACT CII syntax, populate <ram:BilledQuantity unitCode="H87">5.00</ram:BilledQuantity> under <ram:IncludedSupplyChainTradeLineItem><ram:SpecifiedLineTradeDelivery>.

- [Validate XML](/en/xrechnung-validator?source=resource&rule=BR-22)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&rule=BR-22)

## Valid Examples

- Invoice line with BT-129 = 5 and unitCode = "H87" (5 pieces)
- Invoice line with BT-129 = 12.5 and unitCode = "KGM" (12.5 kg)

## Invalid Examples

- cac:InvoiceLine element specifies line extension amount and price but omits cbc:InvoicedQuantity
- CII line item with ram:SpecifiedLineTradeDelivery but no ram:BilledQuantity; in UBL an empty <cbc:InvoicedQuantity/> is already an XML schema error

## Code Examples

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

### Invalid XML
```
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
</cac:InvoiceLine>
```

## Affected Fields

- [BT-129 Invoiced quantity](/resources/xrechnung/bt-129-invoice-line-quantity)
- [BG-25 Invoice line](/resources/xrechnung/bt-126-invoice-line-identifier)
- [BT-130 Invoiced quantity unit of measure code](/resources/xrechnung/bt-130-invoice-line-quantity-unit-of-measure-code)

## Related Rules

- [BR-23](/resources/kosit-validator-errors/br-23-invoice-line-unit-code-must-be-present)
- [BR-24](/resources/kosit-validator-errors/br-24-invoice-line-net-amount-must-be-present)
- [BR-CL-23](/resources/kosit-validator-errors/br-cl-23-unece-rec20-unit-code)

## Validation Tools

- [Official KoSIT Validator](https://github.com/itplr-kosit/validator): Run the official KoSIT validator with the XRechnung configuration to check EN 16931 and XRechnung rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Find validation errors during conversion and review each correction.

## Related Resources

- [Official Specification](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [All validation errors](/resources/kosit-validator-errors): Overview of the EN 16931, XRechnung and Peppol validation rules explained here.
