# BR-48 Le taux de catégorie de la ventilation TVA est requis sauf opérations hors champ de la TVA

Chaque ventilation TVA (BG-23) doit comporter un taux de catégorie TVA (BT-119), sauf si la facture n’est pas soumise à la TVA.

## Description du problème

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

## Contexte et importance

Il s’agit d’une règle de base de la norme EN 16931. Le taux (BT-119) permet de vérifier que le montant de TVA correspond à la base. L’erreur apparaît lorsque le taux est omis pour une catégorie exonérée, en autoliquidation ou à taux zéro : il faut alors indiquer 0. Seule la catégorie O (hors champ d’application de la TVA) ne porte pas de taux.

## Solution

Ajoutez cac:TaxCategory/cbc:Percent (CII : ram:RateApplicablePercent) à chaque sous-total ; utilisez 0 pour les catégories exonérées, à taux zéro ou en autoliquidation, et ne l’omettez que pour la catégorie O (hors champ d’application de la TVA).

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

## Exemples valides

- BT-119 = 19 pour le taux normal
- BT-119 = 0 pour une catégorie exonérée

## Exemples invalides

- Sous-total au taux normal sans taux BT-119

## Exemples de code

### XML valide
```
<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>
```

### XML invalide
```
<cac:TaxSubtotal>
  <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
  <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:TaxSubtotal>
```

## Champs concernés

- [BT-119 Taux de catégorie TVA](/resources/xrechnung/bt-119-vat-category-rate)

## Règles associées

- [BR-45](/resources/kosit-validator-errors/br-45-vat-breakdown-taxable-amount-required)
- [BR-46](/resources/kosit-validator-errors/br-46-vat-breakdown-tax-amount-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.
