# BR-24 Le montant net de ligne de facture doit être présent sur chaque ligne

En vertu de la règle EN 16931 BR-24, chaque ligne de facture (BG-25) doit comporter le montant net de la ligne (BT-131 / LineExtensionAmount). Ce montant représente le total hors TVA de la ligne, calculé à partir de la quantité, du prix unitaire, de la quantité de base et des remises et frais de ligne : montant net = (prix unitaire ÷ quantité de base) × quantité facturée − remises de ligne + frais de ligne.

## Description du problème

> **ERREUR**: Règle métier de la norme EN 16931 (CEN)

> **Où BR-24 est contrôlée**
>
> Un validateur contrôle une facture électronique par étapes. D’abord, le fichier doit être un XML bien formé conforme au schéma UBL ou CII (XSD). Viennent ensuite les règles métier de l’EN 16931 : règles de base BR, calculs BR-CO, listes de codes BR-CL, décimales BR-DEC et règles par catégorie de TVA comme BR-S. Puis les règles nationales ou de réseau sélectionnées par BT-24 : BR-DE pour XRechnung, PEPPOL-EN16931 pour Peppol BIS Billing. Le rapport liste chaque règle en échec : une erreur signifie rejet, des avertissements seuls signifient toujours acceptation. BR-24 : règle de base EN 16931, étape « Règles EN 16931 ».

## Contexte et importance

Il s’agit d’une règle de base de la norme EN 16931. La somme des montants nets de ligne (BT-131) doit être égale à BT-106 (BR-CO-10). En UBL 2.1, cbc:LineExtensionAmount est déjà obligatoire dans chaque cac:InvoiceLine : une valeur absente ou vide est d’abord signalée comme erreur de schéma XML. BR-24 apparaît surtout sur des lignes CII sans ram:LineTotalAmount, par exemple lorsque seuls le prix unitaire et la quantité sont exportés.

## Solution

Dans votre ERP, vérifiez que le montant net de chaque ligne est calculé et exporté. En UBL 2.1, renseignez <cbc:LineExtensionAmount currencyID="EUR">150.00</cbc:LineExtensionAmount> dans <cac:InvoiceLine>. En CII, renseignez <ram:LineTotalAmount> sous <ram:SpecifiedTradeSettlementLineMonetarySummation>.

- [Valider le XML](/fr/xrechnung-validator?source=resource&rule=BR-24)
- [Convertir la facture](/fr/pdf-to-xrechnung?source=resource&rule=BR-24)

## Exemples valides

- Ligne de facture avec quantité 5, prix unitaire 20.00 EUR et BT-131 = 100.00 EUR
- Ligne de facture avec quantité 10, prix unitaire 10.00 EUR, remise 10 % (10.00 EUR) et BT-131 = 90.00 EUR

## Exemples invalides

- Ligne CII avec prix et quantité mais sans ram:LineTotalAmount sous ram:SpecifiedTradeSettlementLineMonetarySummation
- En UBL, un cac:InvoiceLine sans cbc:LineExtensionAmount ou avec une valeur vide est déjà une erreur de schéma XML, signalée avant BR-24

## Exemples de code

### XML valide
```
<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 invalide
```
<ram:IncludedSupplyChainTradeLineItem>
  <ram:SpecifiedLineTradeDelivery>
    <ram:BilledQuantity unitCode="H87">2</ram:BilledQuantity>
  </ram:SpecifiedLineTradeDelivery>
  <ram:SpecifiedLineTradeSettlement>
    <ram:SpecifiedTradeSettlementLineMonetarySummation/>
  </ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
```

## Champs concernés

- [BT-131 Montant net de ligne de facture](/resources/xrechnung/bt-131-invoice-line-net-amount)
- [BG-25 Ligne de facture](/resources/xrechnung/bt-126-invoice-line-identifier)
- [BT-106 Somme des montants nets des lignes](/resources/xrechnung/bt-106-sum-of-invoice-line-net-amount)

## Règles associées

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

## Outils de validation

- [Validateur KoSIT officiel](https://github.com/itplr-kosit/validator): Exécutez le validateur officiel du KoSIT avec la configuration XRechnung pour contrôler les règles EN 16931 et XRechnung.
- [Convertir un PDF en XRechnung](/pdf-to-xrechnung): Repérez les erreurs de validation pendant la conversion et vérifiez chaque correction.

## Ressources associées

- [Spécification officielle](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Suite de tests](https://github.com/itplr-kosit/xrechnung-testsuite)
- [Toutes les erreurs de validation](/resources/kosit-validator-errors): Vue d’ensemble des règles de validation EN 16931, XRechnung et Peppol expliquées ici.
