# BR-CO-4 Chaque ligne de facture doit comporter un code de catégorie de TVA

Chaque ligne de facture (BG-25) doit porter un code de catégorie de TVA pour l’article facturé (BT-151), faute de quoi la ligne ne peut pas être rattachée à la ventilation de la TVA.

## Description du problème

> **ERREUR**: Règle de calcul et de cohérence EN 16931 (BR-CO)

> **Où BR-CO-04 est contrôlée**
>
> Un validateur contrôle une facture électronique par étapes. D’abord, le fichier doit être un XML bien formé conforme au schéma UBL ou CII (XSD). Viennent ensuite les règles métier de l’EN 16931 : règles de base BR, calculs BR-CO, listes de codes BR-CL, décimales BR-DEC et règles par catégorie de TVA comme BR-S. Puis les règles nationales ou de réseau sélectionnées par BT-24 : BR-DE pour XRechnung, PEPPOL-EN16931 pour Peppol BIS Billing. Le rapport liste chaque règle en échec : une erreur signifie rejet, des avertissements seuls signifient toujours acceptation. BR-CO-04 : règle de calcul EN 16931, étape « Règles EN 16931 ».

## Contexte et importance

Sans code de catégorie par ligne, le validateur ne peut pas rattacher la ligne à la ventilation de la TVA (BG-23), et tous les contrôles de catégorie (BR-S, BR-Z, BR-E, BR-AE, etc.) perdent leur base. En UBL, le code figure dans cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID ; en CII, dans ram:SpecifiedLineTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode. Cas typique : une ligne de frais de port ou de gestion pour laquelle l’ERP n’envoie aucun code de TVA.

## Solution

Ajoutez BT-151 à chaque ligne (par exemple « S » pour le taux normal, « Z » pour le taux zéro, « AE » pour l’autoliquidation). En UBL, cac:ClassifiedTaxCategory doit aussi contenir cac:TaxScheme/cbc:ID = VAT ; sinon le validateur ne trouve pas le code.

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

## Exemples valides

- Ligne 1 BT-151 = « S », BT-152 = 20
- Ligne 2 BT-151 = « Z » (taux zéro), BT-152 = 0

## Exemples invalides

- Ligne sans élément ClassifiedTaxCategory
- Ligne avec BT-151 vide
- Ligne UBL avec cac:ClassifiedTaxCategory/cbc:ID = « S » mais sans cac:TaxScheme/cbc:ID = VAT

## 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-18](/resources/kosit-validator-errors/br-cl-18-uncl5305-line-tax-category)
- [BR-S-1](/resources/kosit-validator-errors/br-s-01-standard-rated-items-require-standard-rated-vat-breakdown)
- [BR-CO-17](/resources/kosit-validator-errors/br-co-17-vat-category-tax-amount-must-match-base-times-rate)

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