Technique

Erreur BR-S-05 EN16931 : TVA Standard sans taux > 0 — différence avec BR-S-01

Mis à jour le 3 min de lecture Par FacturX API

BR-S-05 exige qu'une ligne en catégorie S ait un RateApplicablePercent > 0. BR-S-01 exige la présence d'un VAT breakdown S quand une ligne S existe.

En bref

  • BR-S-05 impose qu’une ligne de facture en catégorie S (Standard rated, BT-151) ait un taux TVA (BT-152) strictement positif. Les remises et charges documentaires relèvent respectivement de BR-S-06 et BR-S-07.
  • BR-S-01 est DIFFÉRENT : il exige qu’une facture avec au moins une ligne S contienne un breakdown S au niveau facture.
  • La catégorie S ne fixe pas un taux universel : utilisez le taux fiscal applicable à l’opération, déjà qualifié dans vos données métier.
  • Cause fréquente : migration ERP où le mapping « code produit → taux TVA » est cassé.
  • Ne déduisez pas le taux fiscal d’un simple quotient montant/base. /repair ne choisit pas un taux manquant et ne recalcule pas la TVA.

Ce que l’erreur veut dire

BR-S-05 porte sur les lignes de facture (BG-25) : si leur catégorie TVA (BT-151) est S, leur taux (BT-152) doit être supérieur à zéro. BR-S-06 et BR-S-07 imposent une condition analogue aux remises et charges de niveau document ; ce sont des contrôles distincts.

En CII, le binding EN16931 1.3.16 cible ApplicableTradeTax sous IncludedSupplyChainTradeLineItem/SpecifiedLineTradeSettlement, avec CategoryCode=S et TypeCode=VAT. Le test porte sur RateApplicablePercent. Un taux positif satisfait cette condition, mais ne prouve pas que ce taux est fiscalement applicable. BR-S-01 contrôle séparément la présence de la ventilation TVA S au niveau document.

Quand cette erreur arrive

Survient avec : (a) export ERP qui distingue mal « catégorie TVA » et « taux TVA » ; (b) migration de système comptable avec mapping taux cassé ; (c) facture multi-taux où une ligne secondaire perd son taux ; (d) ligne créée à la volée sans héritage du taux du produit.

Exemple XML qui déclenche l’erreur

Fragments de taxe de ligne, sous IncludedSupplyChainTradeLineItem/SpecifiedLineTradeSettlement. Ils illustrent uniquement BR-S-05, pas une facture complète validée.

<ram:ApplicableTradeTax>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:CategoryCode>S</ram:CategoryCode>
  <ram:RateApplicablePercent>0.00</ram:RateApplicablePercent>  <!-- ❌ doit être > 0 -->
</ram:ApplicableTradeTax>

Exemple XML corrigé

Dans cet exemple, les données métier confirment un taux de 20 %. Ce taux est illustratif : ne le substituez pas automatiquement au taux de votre opération.

<ram:ApplicableTradeTax>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:CategoryCode>S</ram:CategoryCode>
  <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>

Correction manuelle

  1. Repérez la ligne concernée grâce à la localisation du diagnostic, puis vérifiez sa catégorie et son taux dans l’export XML et dans l’ERP.
  2. Si la catégorie S est correcte, restaurez le taux confirmé par les données métier dans RateApplicablePercent. Un quotient CalculatedAmount / BasisAmount peut être affecté par les arrondis et ne qualifie pas le régime fiscal.
  3. Si l’opération relève d’un autre régime, corrigez sa catégorie et les données associées selon ce régime. Ne remplacez pas automatiquement S par Z ou E simplement parce que le taux exporté vaut zéro.
  4. Régénérez le XML et relancez la validation. Un succès BR-S-05 n’établit ni la conformité fiscale de l’opération ni l’acceptation par une PA.

Réparable automatiquement par /repair ?

Pas par choix d’un taux fiscal. Le contrat public de l’API précise que /repair n’invente pas les données métier manquantes et ne recalcule pas la TVA. Complétez ou corrigez le taux dans votre système source, puis utilisez /validate pour contrôler le nouvel export.

Et maintenant ?

Diagnostiquer ma facture →

Après correction de la source, contrôler le XML sans le modifier :

curl -X POST https://api.facturxapi.com/api/v1/validate \
  -H "Authorization: Bearer VOTRE_CLE" \
  -F "file=@./facture.xml"

Voir aussi

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