# BR-22 La quantité facturée doit être présente sur chaque ligne de facture

En vertu de la règle EN 16931 BR-22, chaque ligne de facture (BG-25) doit mentionner la quantité facturée dans BT-129 (InvoicedQuantity). La quantité facturée est la base indispensable au calcul du montant net de la ligne.

## Description du problème

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

> **Où BR-22 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-22 : règle de base EN 16931, étape « Règles EN 16931 ».

## Contexte et importance

L’absence de BT-129 empêche la vérification du calcul de la ligne et déclenche l’erreur Schematron BR-22.

## Solution

Dans votre ERP, vérifiez que la quantité facturée est renseignée pour chaque ligne. En UBL 2.1, insérez <cbc:InvoicedQuantity unitCode="H87">5.00</cbc:InvoicedQuantity> sous <cac:InvoiceLine>. En CII, renseignez <ram:BilledQuantity unitCode="H87"> sous <ram:SpecifiedLineTradeDelivery>.

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

## Exemples valides

- Ligne de facture avec BT-129 = 5 et unitCode = « H87 » (5 pièces)
- Ligne de facture avec BT-129 = 12.5 et unitCode = « KGM » (12,5 kg)

## Exemples invalides

- cac:InvoiceLine spécifie le montant net et le prix mais omet cbc:InvoicedQuantity
- Ligne CII avec ram:SpecifiedLineTradeDelivery mais sans ram:BilledQuantity ; en UBL, un <cbc:InvoicedQuantity/> vide est déjà une erreur de schéma XML

## Exemples de code

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

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

## Champs concernés

- [BT-129 Quantité facturée](/resources/xrechnung/bt-129-invoice-line-quantity)
- [BG-25 Ligne de facture](/resources/xrechnung/bt-126-invoice-line-identifier)
- [BT-130 Code unité de mesure de la quantité facturée](/resources/xrechnung/bt-130-invoice-line-quantity-unit-of-measure-code)

## Règles associées

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

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