# BR-24 Invoice line net amount must be present on every invoice line

Under EN 16931 rule BR-24, every invoice line (BG-25 / INVOICE LINE) must state the invoice line net amount in BT-131 (LineExtensionAmount). The line net amount represents the total price for the line item exclusive of VAT, taking into account the invoiced quantity, unit price, base quantity, and any line-level allowances or charges: LineExtensionAmount = (UnitPrice / BaseQuantity) * InvoicedQuantity - LineAllowances + LineCharges. Accounting and ERP ledgers require this value to book revenue and verify document arithmetic.

## Problem Description

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

## Context and Significance

This is an EN 16931 core rule. The sum of all line net amounts (BT-131) must equal BT-106 (BR-CO-10). In UBL 2.1, cbc:LineExtensionAmount is already mandatory on every cac:InvoiceLine, so a missing or empty value is first reported as an XML schema error; BR-24 itself mainly appears for CII lines without ram:LineTotalAmount, for example when only the unit price and quantity are exported.

## Solution

In your ERP billing module, ensure that every line item calculates and exports the line net total. In UBL 2.1 syntax, populate <cbc:LineExtensionAmount currencyID="EUR">150.00</cbc:LineExtensionAmount> within <cac:InvoiceLine>. In UN/CEFACT CII syntax, populate <ram:LineTotalAmount>150.00</ram:LineTotalAmount> under <ram:SpecifiedLineTradeSettlement><ram:SpecifiedTradeSettlementLineMonetarySummation>.

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

## Valid Examples

- Invoice line with quantity 5, unit price 20.00 EUR, and BT-131 = 100.00 EUR
- Invoice line with quantity 10, unit price 10.00 EUR, 10% line discount (10.00 EUR), and BT-131 = 90.00 EUR

## Invalid Examples

- CII line item with price and quantity but no ram:LineTotalAmount under ram:SpecifiedTradeSettlementLineMonetarySummation
- In UBL, a cac:InvoiceLine without cbc:LineExtensionAmount or with an empty value is already an XML schema error, reported before BR-24

## Code Examples

### Valid XML
```
<ram:IncludedSupplyChainTradeLineItem>
  <ram:SpecifiedLineTradeDelivery>
    <ram:BilledQuantity unitCode="H87">2</ram:BilledQuantity>
  </ram:SpecifiedLineTradeDelivery>
  <ram:SpecifiedLineTradeSettlement>
    <ram:SpecifiedTradeSettlementLineMonetarySummation>
      <ram:LineTotalAmount>100.00</ram:LineTotalAmount>
    </ram:SpecifiedTradeSettlementLineMonetarySummation>
  </ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
```

### Invalid XML
```
<ram:IncludedSupplyChainTradeLineItem>
  <ram:SpecifiedLineTradeDelivery>
    <ram:BilledQuantity unitCode="H87">2</ram:BilledQuantity>
  </ram:SpecifiedLineTradeDelivery>
  <ram:SpecifiedLineTradeSettlement>
    <ram:SpecifiedTradeSettlementLineMonetarySummation/>
  </ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
```

## Affected Fields

- [BT-131 Invoice line net amount](/resources/xrechnung/bt-131-invoice-line-net-amount)
- [BG-25 Invoice line](/resources/xrechnung/bt-126-invoice-line-identifier)
- [BT-106 Sum of invoice line net amount](/resources/xrechnung/bt-106-sum-of-invoice-line-net-amount)

## Related Rules

- [BR-CO-10](/resources/kosit-validator-errors/br-co-10-sum-of-line-net-amounts-must-equal-line-total)
- [PEPPOL-EN16931-R120](/resources/kosit-validator-errors/peppol-en16931-r120-line-net-amount-formula)

## 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.
