# BR-O-08 La base de la ventilation O doit être égale à la somme de ses lignes, remises et frais

Dans une ventilation de TVA (BG-23) où le code de catégorie de TVA (BT-118) est « non soumis à la TVA » (O), le montant imposable de la catégorie (BT-116) doit être égal à la somme des montants nets des lignes (BT-131) diminuée de la somme des montants de remise au niveau du document (BT-92) augmentée de la somme des montants de frais au niveau du document (BT-99) relevant de la catégorie O.

## Description du problème

> **ERREUR**: Règle EN 16931 sur la catégorie de TVA

## Contexte et importance

Cette règle EN 16931 maintient la base de la ventilation O cohérente avec les lignes, remises et frais de catégorie O, afin que le récapitulatif soit contrôlable. En pratique, l’écart apparaît quand une remise ou des frais au niveau du document de catégorie O ne sont pas repris dans BT-116.

## Solution

Calculez BT-116 comme Σ BT-131 − Σ BT-92 + Σ BT-99 limité aux lignes, remises et frais de catégorie O, et inscrivez-le dans le TaxableAmount du TaxSubtotal O.

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

## Exemples valides

- Lignes O nettes 100,00, aucune remise ni frais O → BT-116 = 100,00

## Exemples invalides

- Lignes O nettes 100,00 mais BT-116 déclaré à 90,00

## Exemples de code

### XML valide
```
<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
  <cac:TaxCategory><cbc:ID>O</cbc:ID><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>
</cac:TaxSubtotal>
```

### XML invalide
```
<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="EUR">90.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
  <cac:TaxCategory><cbc:ID>O</cbc:ID><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>
</cac:TaxSubtotal>
```

## Champs concernés

- [BT-116 Montant imposable de la catégorie de TVA](/resources/xrechnung/bt-116-vat-category-taxable-amount)
- [BT-131 Montant net de la ligne de facture](/resources/xrechnung/bt-131-invoice-line-net-amount)
- [BT-92 Montant de remise au niveau du document](/resources/xrechnung/bt-92-document-level-allowance-amount)
- [BT-99 Montant de frais au niveau du document](/resources/xrechnung/bt-99-document-level-charge-amount)

## Règles associées

- [BR-O-01](/resources/kosit-validator-errors/br-o-01-not-subject-vat-breakdown-required)
- [BR-O-09](/resources/kosit-validator-errors/br-o-09-not-subject-tax-amount-zero)
- [BR-CO-18](/resources/kosit-validator-errors/br-co-18-vat-breakdown-required)

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