# BR-CL-18 Le code de catégorie de TVA de la ligne doit provenir de la liste UNCL5305

Le code de catégorie de TVA de l’article facturé (BT-151) doit être l’un des codes UNCL5305 admis par la norme EN 16931 : S, Z, E, AE, K, G, O, L, M ou B.

## Description du problème

> **ERREUR**: Règle de liste de codes EN 16931 (BR-CL)

## Contexte et importance

Chaque ligne de facture a besoin d’une catégorie de TVA (BR-CO-4) qui la rattache à une ventilation de la TVA. En CII, cette règle contrôle chaque ram:ApplicableTradeTax/ram:CategoryCode et couvre donc aussi la ventilation de la TVA de l’en-tête (BT-118). La règle échoue lorsque les données de ligne d’un ERP ou d’une boutique en ligne contiennent des codes en minuscules (« s »), un « 0 » pour un code de TVA manquant, ou une lettre intuitive mais fausse comme « N » pour « non soumis ». L signifie IGIC (îles Canaries), et non « taux bas ». Exemple : une ligne au taux zéro utilise Z, une ligne hors champ de la TVA utilise O.

## Solution

Définissez BT-151 sur une catégorie admise (S, Z, E, AE, K, G, O, L, M ou B), identique à celle d’une ventilation de la TVA de même catégorie et de même taux. En UBL, le code figure dans cac:Item/cac:ClassifiedTaxCategory/cbc:ID ; en CII, dans ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode.

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

## Exemples valides

- BT-151 = S — ligne au taux normal
- BT-151 = O — ligne hors champ d’application de la TVA

## Exemples invalides

- BT-151 = s — minuscule ; les codes distinguent majuscules et minuscules
- BT-151 = N — pas une catégorie UNCL5305
- BT-151 = 0 — valeur numérique, pas un code de catégorie

## Exemples de code

### XML valide
```
<cac:Item>
  <cac:ClassifiedTaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:ClassifiedTaxCategory>
</cac:Item>
```

### XML invalide
```
<cac:Item>
  <cac:ClassifiedTaxCategory>
    <cbc:ID>N</cbc:ID>
    <cbc:Percent>19</cbc:Percent>
    <cac:TaxScheme>
      <cbc:ID>VAT</cbc:ID>
    </cac:TaxScheme>
  </cac:ClassifiedTaxCategory>
</cac:Item>
```

## Champs concernés

- [BT-151 Code de catégorie de TVA de l’article facturé](/resources/xrechnung/bt-151-invoice-line-vat-category-code)

## Règles associées

- [BR-CL-17](/resources/kosit-validator-errors/br-cl-17-uncl5305-document-tax-category)
- [BR-CO-4](/resources/kosit-validator-errors/br-co-4-each-invoice-line-must-have-vat-category-code)
- [BR-E-01](/resources/kosit-validator-errors/br-e-01-exempt-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.
