# BR-47 Le code de catégorie de TVA doit être présent dans chaque ventilation de TVA

En vertu de la règle EN 16931 BR-47, chaque groupe de ventilation de TVA (BG-23) doit indiquer dans BT-118 (TaxCategory ID) un code de catégorie de TVA issu du sous-ensemble UNTDID 5305 autorisé par la norme (BR-CL-17 en UBL / BR-CL-18 en CII), notamment : « S » pour le taux normal (y compris les taux réduits, le taux figurant dans BT-119), « Z » pour le taux zéro, « E » pour l’exonération, « AE » pour l’autoliquidation, « K » pour la livraison intracommunautaire, « G » pour l’exportation hors UE, « O » pour les opérations hors champ de la TVA, « L » et « M » pour les îles Canaries (IGIC) et Ceuta/Melilla (IPSI), « B » pour le paiement scindé (Italie uniquement). Chaque ventilation regroupe la base imposable (BT-116) et le montant de TVA (BT-117) d’une catégorie et d’un taux.

## 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. Sans BT-118 dans BG-23, ni le destinataire ni l’administration fiscale ne peuvent rattacher la base imposable et le montant de TVA à une catégorie, et les règles par catégorie (BR-S, BR-AE, BR-E…) ne peuvent pas s’appliquer. L’erreur survient souvent lorsqu’un export n’écrit que le pourcentage dans cac:TaxCategory. Un code hors de la liste autorisée, comme « AA » pour un taux réduit, ne déclenche pas BR-47 mais échoue sur BR-CL-17 (UBL) ou BR-CL-18 (CII).

## Solution

Dans la configuration fiscale de votre ERP, assurez-vous que chaque ventilation de TVA dans TaxTotal comporte le code de catégorie fiscale. En UBL 2.1, renseignez <cac:TaxSubtotal><cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>19.00</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory></cac:TaxSubtotal> sous <cac:TaxTotal>. En CII, renseignez <ram:CategoryCode> sous <ram:ApplicableHeaderTradeSettlement><ram:ApplicableTradeTax>.

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

## Exemples valides

- Ventilation de TVA BG-23 avec BT-118 = « S » (taux normal de TVA à 19 %)
- Ventilation de TVA BG-23 avec BT-118 = « AE » (opération en autoliquidation)

## Exemples invalides

- cac:TaxSubtotal déclare la base et le montant de taxe mais omet cbc:ID dans cac:TaxCategory
- ram:ApplicableTradeTax (CII) avec ram:TypeCode VAT, ram:BasisAmount et ram:CalculatedAmount mais sans ram:CategoryCode

## Exemples de code

### XML valide
```
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
  <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.00</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
```

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

## Champs concernés

- [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)
- [BT-116 Montant imposable par catégorie de TVA](/resources/xrechnung/bt-116-vat-category-taxable-amount)
- [BT-117 Montant de taxe par catégorie de TVA](/resources/xrechnung/bt-117-vat-category-tax-amount)

## Règles associées

- [BR-CO-17](/resources/kosit-validator-errors/br-co-17-vat-category-tax-amount-must-match-base-times-rate)
- [BR-48](/resources/kosit-validator-errors/br-48-vat-breakdown-category-rate-required)
- [BR-CL-17](/resources/kosit-validator-errors/br-cl-17-uncl5305-document-tax-category)
- [BR-CL-18](/resources/kosit-validator-errors/br-cl-18-uncl5305-line-tax-category)

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