# BR-E-01 Une opération exonérée exige exactement une ventilation de TVA exonérée

Une facture qui contient une ligne (BG-25), une remise au niveau du document (BG-20) ou des frais au niveau du document (BG-21) dont le code de catégorie de TVA (BT-151, BT-95 ou BT-102) est « Exonéré de TVA » (E) doit contenir exactement une ventilation de TVA (BG-23) dont le code de catégorie (BT-118) est « Exonéré de TVA ».

## Description du problème

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

## Contexte et importance

La ventilation de TVA doit reprendre chaque catégorie utilisée sur les lignes, remises et frais, afin que la base exonérée puisse être contrôlée. En pratique, l’erreur survient quand un logiciel récapitule les lignes exonérées dans une ventilation S à 0 % ou crée une ventilation E par ligne.

## Solution

Ajoutez un seul cac:TaxSubtotal (BG-23) de catégorie E qui regroupe toutes les lignes, remises et frais exonérés : base imposable (BT-116), montant de TVA 0,00 (BT-117), taux 0 (BT-119) et motif d’exonération (BT-120 ou BT-121). Ne créez pas plusieurs ventilations E.

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

## Exemples valides

- Lignes de catégorie E et une seule ventilation BG-23 avec BT-118 = E

## Exemples invalides

- Lignes de catégorie E, mais la ventilation ne contient qu’une catégorie S
- Deux ventilations BG-23 distinctes avec BT-118 = E

## Exemples de code

### XML valide
```
<cac:TaxTotal>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>E</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cbc:TaxExemptionReasonCode>VATEX-EU-132</cbc:TaxExemptionReasonCode>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
```

### XML invalide
```
<cac:TaxTotal>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">60.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>E</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cbc:TaxExemptionReasonCode>VATEX-EU-132</cbc:TaxExemptionReasonCode>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">40.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>E</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cbc:TaxExemptionReasonCode>VATEX-EU-132</cbc:TaxExemptionReasonCode>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
```

## Champs concernés

- [BT-151 Code de catégorie de TVA de l’article facturé](/resources/xrechnung/bt-151-invoice-line-vat-category-code)
- [BT-95 Code de catégorie de TVA de la remise au niveau du document](/resources/xrechnung/bt-95-document-level-allowance-vat-category-code)
- [BT-102 Code de catégorie de TVA des frais au niveau du document](/resources/xrechnung/bt-102-document-level-charge-vat-category-code)
- [BT-118 Code de catégorie de TVA](/resources/xrechnung/bt-118-vat-category-code)
- [BG-23 Ventilation de TVA](/resources/xrechnung/bt-116-vat-category-taxable-amount)

## Règles associées

- [BR-E-05](/resources/kosit-validator-errors/br-e-05-exempt-vat-rate-must-be-zero)
- [BR-E-08](/resources/kosit-validator-errors/br-e-08-exempt-taxable-amount-sum)
- [BR-E-10](/resources/kosit-validator-errors/br-e-10-exempt-breakdown-reason-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.
