Factur-X avec plusieurs taux de TVA: comment faire
Une facture avec un seul taux de TVA est simple. Dès qu’elle mélange 20 %, 10 %, 5,5 % ou des lignes exonérées, le XML doit contenir une ventilation de TVA: un récapitulatif par taux, avec une base, un montant de TVA et une catégorie. C’est là que les erreurs d’un centime apparaissent. Cet article explique ce que la norme attend, avec un exemple chiffré, et comment éviter les écarts. *Convertir une facture multi-taux: le convertisseur de Factur-X Facile recalcule la ventilation par taux et la compare aux totaux imprimés avant de générer le fichier.*

Ce que le XML attend
Pour chaque couple catégorie de TVA + taux, le XML contient une ligne de ventilation avec:
Une ligne de facture (BG-25) porte aussi sa propre catégorie et son taux.
| Donnée | Référence EN 16931 | Exemple |
|---|---|---|
| :---- | :---- | :---- |
| Catégorie de TVA | BT-118 | S (standard) |
| Taux | BT-119 | 20 |
| Base imposable | BT-116 | 1 000,00 |
| Montant de TVA | BT-117 | 200,00 |
| Motif d’exonération (si exonéré) | BT-120 | Texte du motif |
Exemple chiffré
Une facture avec quatre lignes:
La ventilation attendue:
Total TTC: 1 700,00 + 251,00 \= 1 951,00 €.
<!-- Extrait simplifié du XML : ordre exact des éléments à vérifier avec le XSD -->
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>200.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>1000.00</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>20</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<!-- ... une ligne par taux ... -->
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>0.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:ExemptionReason>Motif de l'exonération</ram:ExemptionReason>
<ram:BasisAmount>100.00</ram:BasisAmount>
<ram:CategoryCode>E</ram:CategoryCode>
<ram:RateApplicablePercent>0</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>| Ligne | Désignation | HT | Taux |
|---|---|---|---|
| :---- | :---- | :---- | :---- |
| 1 | Prestation A | 1 000,00 | 20 % |
| 2 | Prestation B | 400,00 | 10 % |
| 3 | Produit C | 200,00 | 5,5 % |
| 4 | Prestation D | 100,00 | Exonérée |
| Catégorie | Taux | Base | TVA |
|---|---|---|---|
| :---- | :---- | :---- | :---- |
| S | 20 % | 1 000,00 | 200,00 |
| S | 10 % | 400,00 | 40,00 |
| S | 5,5 % | 200,00 | 11,00 |
| E | 0 % | 100,00 | 0,00 |
| Totaux | 1 700,00 | 251,00 |
Le piège des arrondis: TVA par taux, pas ligne par ligne
D’après mes recherches, la règle de calcul BR-CO-17 impose que la TVA d’une catégorie soit égale à la base totale de la catégorie multipliée par le taux, arrondie à deux décimales.
Exemple: trois lignes à 1,12 € HT chacune, TVA 20 %.
Un centime d’écart. Si votre logiciel affiche 0,66 dans le PDF et que le XML doit contenir 0,67, vous obtenez à la fois une erreur de validation et un PDF qui ne dit pas la même chose que le XML (voir XML et PDF qui divergent).
La bonne pratique: calculer la TVA par taux sur la base totale, et générer le PDF et le XML à partir de ce calcul.
| Méthode | Calcul | TVA obtenue |
|---|---|---|
| :---- | :---- | :---- |
| Ligne par ligne, puis somme | 3 × (1,12 × 20 % \= 0,224, arrondi à 0,22) | 0,66 |
| Par taux, sur la base totale | (3 × 1,12 \= 3,36) × 20 % \= 0,672, arrondi | 0,67 |
Les catégories de TVA
[Complétez avec la liste exacte de la spécification; votre outil ne prend peut-être pas en charge toutes les catégories au lancement]
Taux courants en France métropolitaine: 20 %, 10 %, 5,5 % et 2,1 %. Les taux applicables aux départements d’outre-mer sont différents.
| :---- | :---- | :---- |
|---|---|---|
| S | Taux normal ou réduit applicable | Cas le plus courant |
| Z | Taux zéro | Opération soumise à TVA à 0 % |
| E | Exonéré | Motif d’exonération obligatoire |
| AE | Autoliquidation | Cas particuliers (sous-traitance BTP, etc.) |
| K, G, O | Livraison intracommunautaire, exportation, hors champ | Selon le cas |
Les erreurs à éviter
Les erreurs de validation associées sont de la famille BR-CO: voir le guide des codes d’erreur et l’erreur BR-CO-15.
- Un seul taux de TVA appliqué au total alors que les lignes ont des taux différents.
- Une ligne avec deux taux. Une ligne a un taux; séparez-la en deux lignes.
- Un motif d’exonération manquant pour une ligne exonérée.
- Des remises globales qui ne sont pas réparties par taux.
- Un total TVA saisi à la main au lieu d’être la somme des TVA par taux.
Comment Factur-X Facile le gère
Les lignes sont extraites avec leur taux; la ventilation est recalculée par taux; elle est comparée aux totaux imprimés dans le PDF. Un écart est présenté avec les deux valeurs, jamais corrigé en silence: c’est à vous de décider quelle valeur est la bonne, puis de corriger la source.
FAQ
Comment arrondir la TVA ? Par catégorie et taux, sur la base totale, à deux décimales. Vérifiez la règle exacte dans le Schematron.
Faut-il une ligne de ventilation par taux ? Oui, une par couple catégorie et taux présents dans la facture.
Quelle catégorie pour une TVA à 0 % ou une exonération ? Z pour un taux zéro, E pour une exonération avec motif. Les autres catégories répondent à des cas précis.
Puis-je mélanger biens et services avec des taux différents ? Oui, c’est justement le rôle de la ventilation.
Sources à consulter: règles EN 16931 (Schematron officiel); spécification Factur-X (fnfe-mpe.org).
Pour aller plus loin: contrôlez la ventilation de votre fichier avec le validateur Factur-X et, pour les avoirs, lisez faire un avoir en Factur-X.
Ventilation multi-TVA sans erreur arithmétique
Convertissez votre PDF et assurez la conformité stricte avec les règles BR-CO-15 et BR-CO-17.


