Technique

Catégorie TVA EN16931 : S, Z, E, AE, G, K — choisir le bon code UNTDID 5305

Mis à jour le 4 min de lecture Par FacturX API

Distinguer les catégories TVA EN16931 (S, Z, E, AE, G, K) des codes VATEX. Autoliquidation : motif codé ou textuel, exemples XML et liste de référence.

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-AE est 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 VATEXSignificationCatégorie associée
VATEX-EU-AEAutoliquidationAE
VATEX-EU-GExportation hors de l’Union européenneG
VATEX-EU-ICLivraison intracommunautaireK

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

#en16931 #schematron #factur-x #erreurs #validation