# BR-24 L’importo netto della riga di fattura deve essere presente su ogni riga

Ai sensi della regola EN 16931 BR-24, ogni riga di fattura (BG-25) deve indicare l’importo netto di riga (BT-131 / LineExtensionAmount). Tale importo rappresenta il totale imponibile della riga escluso IVA, calcolato tenendo conto di quantità, prezzo unitario, quantità base e di eventuali sconti o maggiorazioni di riga.

## Descrizione del problema

> **ERRORE**: Regola di business della norma EN 16931 (CEN)

## Contesto e significato

È una regola di base della norma EN 16931. La somma degli importi netti di riga (BT-131) deve essere pari a BT-106 (BR-CO-10). In UBL 2.1 cbc:LineExtensionAmount è già obbligatorio in ogni cac:InvoiceLine, quindi un valore assente o vuoto viene segnalato prima come errore di schema XML; BR-24 compare soprattutto nelle righe CII senza ram:LineTotalAmount, ad esempio quando vengono esportati solo prezzo unitario e quantità.

## Soluzione

Nel gestionale ERP assicurati che per ogni riga venga calcolato ed esportato l’importo netto. In UBL 2.1 compila <cbc:LineExtensionAmount currencyID="EUR">150.00</cbc:LineExtensionAmount> dentro <cac:InvoiceLine>. In CII compila <ram:LineTotalAmount> sotto <ram:SpecifiedTradeSettlementLineMonetarySummation>.

- [Valida XML](/it/xrechnung-validator?source=resource&rule=BR-24)
- [Converti fattura](/it/pdf-to-xrechnung?source=resource&rule=BR-24)

## Esempi validi

- Riga fattura con quantità 5, prezzo unitario 20.00 EUR e BT-131 = 100.00 EUR
- Riga fattura con quantità 10, prezzo unitario 10.00 EUR, sconto 10% (10.00 EUR) e BT-131 = 90.00 EUR

## Esempi non validi

- Riga CII con prezzo e quantità ma senza ram:LineTotalAmount sotto ram:SpecifiedTradeSettlementLineMonetarySummation
- In UBL un cac:InvoiceLine senza cbc:LineExtensionAmount o con valore vuoto è già un errore di schema XML, segnalato prima di BR-24

## Esempi di codice

### XML valido
```
<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>
```

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

## Campi interessati

- [BT-131 Importo netto della riga di fattura](/resources/xrechnung/bt-131-invoice-line-net-amount)
- [BG-25 Riga di fattura](/resources/xrechnung/bt-126-invoice-line-identifier)
- [BT-106 Somma degli importi netti delle righe](/resources/xrechnung/bt-106-sum-of-invoice-line-net-amount)

## Regole correlate

- [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)

## Strumenti di validazione

- [Validatore KoSIT ufficiale](https://github.com/itplr-kosit/validator): Esegui il validatore ufficiale KoSIT con la configurazione XRechnung per controllare le regole EN 16931 e XRechnung.
- [Converti PDF in XRechnung](/pdf-to-xrechnung): Individua gli errori di validazione durante la conversione e verifica ogni correzione.

## Risorse correlate

- [Specifiche ufficiali](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Tutti gli errori di validazione](/resources/kosit-validator-errors): Panoramica delle regole di validazione EN 16931, XRechnung e Peppol spiegate qui.
