Aller au contenu principal

Référence

Export Markdown

BR-S-1 Une opération de catégorie S exige au moins une ventilation de TVA de catégorie S

Une facture qui contient une ligne (BG-25), une remise au niveau du document (BG-20) ou des frais au niveau du document (BG-21) dont le code de catégorie de TVA (BT-151, BT-95 ou BT-102) est « Taux normal » (S) doit contenir, dans la ventilation de TVA (BG-23), au moins un code de catégorie de TVA (BT-118) égal à « S ».

Description du problème

ERREUR

Règle EN 16931 sur la catégorie de TVA

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-S-01 règle de catégorie de TVA 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-S-01 : règle de catégorie de TVA 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

Une ligne de catégorie S sans ventilation correspondante laisse la base imposable non déclarée, et le montant total de TVA ne peut être rattaché à aucune catégorie. En pratique, l’erreur survient quand des frais au niveau du document, par exemple des frais de port, reçoivent la catégorie S alors que le logiciel ne génère la ventilation qu’à partir des lignes, ou quand le code de catégorie d’une ligne est modifié manuellement après la génération de la ventilation.

Solution

Ajoutez, pour chaque taux utilisé (BT-119), une ventilation de TVA (UBL : cac:TaxTotal/cac:TaxSubtotal ; CII : ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax) avec BT-118 = « S », la base imposable et le montant de TVA correspondants.

Actions rapides

Exemples valides

  • Ligne avec BT-151 = « S » et ventilation de TVA avec BT-118 = « S », BT-119 = 20
  • Remise au niveau du document avec BT-95 = « S » et ventilation « S » correspondante

Exemples invalides

  • BT-151 = « S » mais la ventilation de TVA ne contient que des lignes « Z »
  • Frais au niveau du document avec BT-102 = « S », sans ventilation « S »

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</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
<cac:InvoiceLine>
  <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
</cac:InvoiceLine>
XML invalide
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>Z</cbc:ID>
      <cbc:Percent>0</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
<cac:InvoiceLine>
  <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
  <cac:Item>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>19</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
</cac:InvoiceLine>

Champs concernés

Outils de validation