En bref
- Les principales catégories de TVA EN16931 (UNTDID 5305) :
S,Z,E,AE,K,G,L,M,O. S(Standard rated) : opération soumise à un taux positif, y compris un taux réduit applicable.Z(Zero rated) : taux 0 % légal.E(Exempt) : opération exonérée.AE(Reverse charge) : autoliquidation (BTP, intra-UE B2B services).K: livraison intra-UE biens.G: export hors UE.- Chaque catégorie a ses propres règles Schematron (
BR-S-*,BR-Z-*,BR-AE-*, etc.) — choisir la bonne catégorie conditionne le bon sous-arbre. - Pour autoliquidation : catégorie
AE, taux 0 et motif d’exonération codé ou textuel ;VATEX-EU-AEest le code VATEX correspondant.
Ce que l’erreur veut dire
Les catégories de TVA EN16931 (UNTDID 5305) déterminent la sémantique fiscale de chaque ligne et conditionnent les règles Schematron. Les 7 codes les plus utilisés (S, Z, E, AE, K, G, O) couvrent la majorité des cas, mais les listes alignées Peppol peuvent contenir d’autres codes pour certains contextes territoriaux (L, M, etc.). Confondre deux catégories rend inapplicable la bonne grappe de règles — par exemple, Z déclenche les règles BR-Z-*, pas BR-AE-*.
Catégorie TVA et code VATEX : quelle différence ?
La catégorie TVA (S, Z, E, AE, G, K…) et le motif d’exonération codé VATEX sont deux informations distinctes. Dans la ventilation TVA, BT-118 porte la catégorie, BT-121 le motif codé et BT-120 le motif textuel.
La liste VATEX publiée par OpenPeppol donne notamment ces correspondances :
| Code VATEX | Signification | Catégorie associée |
|---|---|---|
VATEX-EU-AE | Autoliquidation | AE |
VATEX-EU-G | Exportation hors de l’Union européenne | G |
VATEX-EU-IC | Livraison intracommunautaire | K |
Ce tableau est un extrait, pas la liste complète des codes VATEX. Un code VATEX ne remplace pas la catégorie TVA. Les obligations précises dépendent de la catégorie et du profil appliqué : pour l’autoliquidation, BR-AE-10 prévoit un code de motif ou un texte indiquant l’autoliquidation.
Quand cette erreur arrive
Confusions classiques : (a) Z utilisé pour autoliquidation au lieu de AE ; (b) E utilisé pour autoliquidation au lieu de AE ; (c) S à 0 % utilisé au lieu de Z ; (d) export hors UE marqué Z au lieu de G ; (e) intra-UE B2B biens marqué S au lieu de K.
Exemple XML : catégorie incohérente avec une autoliquidation confirmée
Les fragments suivants représentent une ventilation TVA sous ApplicableHeaderTradeSettlement, limitée au type CII TradeTaxType. Ils ne constituent pas une facture complète validée. Dans ce cas, la qualification d’autoliquidation est établie par les données métier : un validateur XML ne peut pas la déduire du seul taux nul. La catégorie Z peut passer ses propres contrôles tout en décrivant mal cette opération.
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>0.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>1000.00</ram:BasisAmount>
<ram:CategoryCode>Z</ram:CategoryCode> <!-- ❌ devrait être AE pour une autoliquidation -->
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
Exemple XML corrigé (autoliquidation AE + VATEX-EU-AE)
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>0.00</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:ExemptionReason>Reverse charge</ram:ExemptionReason>
<ram:BasisAmount>1000.00</ram:BasisAmount>
<ram:CategoryCode>AE</ram:CategoryCode>
<ram:ExemptionReasonCode>VATEX-EU-AE</ram:ExemptionReasonCode>
<ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
L’ordre des éléments suit le schéma CII du package Factur-X publié par le FNFE-MPE : ExemptionReason précède BasisAmount, et ExemptionReasonCode précède RateApplicablePercent. Le motif textuel et le motif codé sont montrés ensemble pour illustrer leurs emplacements ; BR-AE-10 ne les exige pas simultanément.
Pour les lignes en catégorie S, BR-S-05 exige un taux strictement positif, sans imposer le taux normal national. La qualification fiscale et le taux applicable doivent venir des données métier.
Correction manuelle
Choisir la catégorie selon le motif fiscal : autoliquidation BTP/intra-UE B2B services → AE ; export hors UE biens → G ; livraison intra-UE biens → K ; exonération article 261 CGI → E ; opération hors champ → O ; taux 0 légal → Z ; sinon → S. Pour une autoliquidation, la correction normative EN16931 porte sur la catégorie (AE), le taux 0, et la raison d’exonération codée (ExemptionReasonCode, par exemple VATEX-EU-AE) ou textuelle (ExemptionReason, indiquant l’autoliquidation). Une note lisible sur la facture (IncludedNote) peut être utile métier/fiscal mais ne remplace pas les données structurées.
Réparable automatiquement par /repair ?
Non — la correction est sémantique ou structurelle et nécessite une décision humaine (choix de catégorie TVA, URN de profil, etc.). Utilisez /validate pour confirmer après correction manuelle.
Et maintenant ?
Tester ma facture maintenant →
curl -X POST https://api.facturxapi.com/api/v1/validate \
-H "Authorization: Bearer VOTRE_CLE" \
-F "file=@./facture.pdf"
Voir aussi
- Catalogue complet des erreurs BR-* EN16931
- Comprendre les messages Schematron EN16931
- Corriger automatiquement les erreurs réparables
- BR-AE-05 — Autoliquidation : taux 0 obligatoire
- BR-Z-05 — Zero rated : taux 0 obligatoire
- Données ERP → Factur-X CII : guide de mapping JSON → XML — mapping
vat_categorycôté ERP, cas autoliquidation BTP - Valider EN16931 / Factur-X : XSD vs Schematron — workflow de debug des codes BR-S-* / BR-Z-* / BR-AE-*
- BR-S-05 — Standard : taux > 0 obligatoire