Aller au contenu principal

Référence

Export Markdown

BR-47 Le code de catégorie de TVA doit être présent dans chaque ventilation de TVA

En vertu de la règle EN 16931 BR-47, chaque groupe de ventilation de TVA (BG-23) doit indiquer dans BT-118 (TaxCategory ID) un code de catégorie de TVA issu du sous-ensemble UNTDID 5305 autorisé par la norme (BR-CL-17 en UBL / BR-CL-18 en CII), notamment : « S » pour le taux normal (y compris les taux réduits, le taux figurant dans BT-119), « Z » pour le taux zéro, « E » pour l’exonération, « AE » pour l’autoliquidation, « K » pour la livraison intracommunautaire, « G » pour l’exportation hors UE, « O » pour les opérations hors champ de la TVA, « L » et « M » pour les îles Canaries (IGIC) et Ceuta/Melilla (IPSI), « B » pour le paiement scindé (Italie uniquement). Chaque ventilation regroupe la base imposable (BT-116) et le montant de TVA (BT-117) d’une catégorie et d’un taux.

Description du problème

ERREUR

Règle métier de la norme EN 16931 (CEN)

Chaîne de validation interactive

Cliquez sur une étape pour voir ce qu’elle contrôle, ou saisissez un identifiant de règle pour trouver l’étape qui la signale.

Essayer:

BR-47 règle de base EN 16931

Signalée à l’étape 2 : Règles EN 16931.

Niveau erreur : le rapport recommande de rejeter la facture.

Étape 2 · Ce qui est contrôlé

  • Les termes métier essentiels sont présents (BR-01 à BR-65).
  • Les totaux concordent et les champs liés sont cohérents (BR-CO) ; codes et décimales sont valides (BR-CL, BR-DEC).
  • Chaque catégorie de TVA est cohérente : S, Z, E, AE, K, G, O, L, M (BR-S, BR-Z, BR-AE, BR-IC …).

Codes d’exemple

Correction type

Recalculez les totaux et la TVA à partir des lignes, et corrigez la catégorie de TVA dans les données source.

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-47 : règle de base EN 16931, étape « Règles EN 16931 ». Jeux de règles : validateur KoSIT 1.6.3 avec la configuration XRechnung du 31 août 2026 (artefacts EN 16931 1.3.16), Peppol BIS Billing 3.0.21.

Contexte et importance

Il s’agit d’une règle de base de la norme EN 16931. Sans BT-118 dans BG-23, ni le destinataire ni l’administration fiscale ne peuvent rattacher la base imposable et le montant de TVA à une catégorie, et les règles par catégorie (BR-S, BR-AE, BR-E…) ne peuvent pas s’appliquer. L’erreur survient souvent lorsqu’un export n’écrit que le pourcentage dans cac:TaxCategory. Un code hors de la liste autorisée, comme « AA » pour un taux réduit, ne déclenche pas BR-47 mais échoue sur BR-CL-17 (UBL) ou BR-CL-18 (CII).

Solution

Dans la configuration fiscale de votre ERP, assurez-vous que chaque ventilation de TVA dans TaxTotal comporte le code de catégorie fiscale. En UBL 2.1, renseignez <cac:TaxSubtotal><cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>19.00</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory></cac:TaxSubtotal> sous <cac:TaxTotal>. En CII, renseignez <ram:CategoryCode> sous <ram:ApplicableHeaderTradeSettlement><ram:ApplicableTradeTax>.

Actions rapides

Exemples valides

  • Ventilation de TVA BG-23 avec BT-118 = « S » (taux normal de TVA à 19 %)
  • Ventilation de TVA BG-23 avec BT-118 = « AE » (opération en autoliquidation)

Exemples invalides

  • cac:TaxSubtotal déclare la base et le montant de taxe mais omet cbc:ID dans cac:TaxCategory
  • ram:ApplicableTradeTax (CII) avec ram:TypeCode VAT, ram:BasisAmount et ram:CalculatedAmount mais sans ram:CategoryCode

Exemples de code

XML valide
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19.00</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
XML invalide
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:Percent>19.00</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

Champs concernés

Outils de validation