Technique

Erreur BR-CO-14 EN16931 : BT-110 ≠ Σ BT-117 — ventilation TVA par catégorie

Mis à jour le 3 min de lecture Par FacturX API

BR-CO-14 vérifie que le total TVA (BT-110) égale la somme des ApplicableTradeTax/CalculatedAmount (BT-117). Cause classique : modification de taux sans recalcul.

En bref

  • BR-CO-14 contrôle que BT-110 (Invoice total VAT amount) = Σ BT-117 (montant TVA par catégorie).
  • BR-CO-17 contrôle séparément la relation base × taux par catégorie, avec les arrondis et tolérances du ruleset exécuté.
  • Cause : votre ERP exporte les ventilations TVA par catégorie séparément du total TVA, et un seul des deux est mis à jour.
  • Cas piégeux : autoliquidation (AE) où le taux est 0 mais où il faut quand même exposer une ApplicableTradeTax correspondante.
  • Corriger les données de calcul dans l’ERP puis revalider ; /repair ne recalcule pas la TVA ni les totaux métier.

Ce que l’erreur veut dire

En CII, BR-CO-14 compare le total de TVA de la facture à la somme des montants des ventilations TVA de niveau document. BT-110 est le TaxTotalAmount en devise de facturation sous ApplicableHeaderTradeSettlement/SpecifiedTradeSettlementHeaderMonetarySummation. Les BT-117 sont les CalculatedAmount des ApplicableTradeTax directement rattachés à ApplicableHeaderTradeSettlement.

Le binding CII EN16931, version 1.3.16 précise ces chemins et l’arrondi de la somme à deux décimales. N’additionnez pas les taxes de ligne à ces ventilations documentaires : vous compteriez les mêmes opérations deux fois. Le nom CategoryTradeTax n’est pas celui de la ventilation CII utilisée ici.

Quand cette erreur arrive

Cette incohérence peut apparaître lorsque le total et les ventilations sont exportés séparément et qu’un seul des deux est actualisé. Une ventilation manquante peut aussi déclencher des règles propres à la catégorie TVA ; elle ne prouve pas à elle seule un échec BR-CO-14. Vérifiez les montants effectivement présents et le code de règle retourné.

Exemple XML qui déclenche l’erreur

Fragments sous ApplicableHeaderTradeSettlement, avec une devise de facturation EUR dans leur contexte. Ils illustrent uniquement BR-CO-14, pas une facture complète validée. Les taux sont supposés déjà qualifiés par le système source.

<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>100.00</ram:CalculatedAmount>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:BasisAmount>500.00</ram:BasisAmount>
  <ram:CategoryCode>S</ram:CategoryCode>
  <ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>50.00</ram:CalculatedAmount>
  <ram:TypeCode>VAT</ram:TypeCode>
  <ram:BasisAmount>500.00</ram:BasisAmount>
  <ram:CategoryCode>S</ram:CategoryCode>
  <ram:RateApplicablePercent>10.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  <ram:TaxTotalAmount currencyID="EUR">100.00</ram:TaxTotalAmount>  <!-- ❌ devrait être 150.00 -->
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>

Exemple XML corrigé

Si les données comptables confirment les deux ventilations de 100,00 et 50,00 EUR ci-dessus, leur somme vaut 150,00 EUR. Seul le fragment de total est remplacé ici ; les ventilations restent présentes. Si elles sont erronées, corrigez d’abord leur calcul au lieu d’aligner aveuglément le total.

<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  <ram:TaxTotalAmount currencyID="EUR">150.00</ram:TaxTotalAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>

Correction manuelle

Rapprochez le total TVA des ventilations de niveau document dans la devise de facturation. Vérifiez séparément leurs bases et taux, puis le total : une somme correcte ne prouve pas que la TVA est fiscalement correcte. Conservez les ventilations requises par les catégories réellement présentes, y compris lorsqu’un montant de taxe est nul ; ne créez pas de catégories absentes de l’opération.

Réparable automatiquement par /repair ?

Pas par recalcul de TVA. Le contrat public de l’API exclut le recalcul de TVA et des totaux métier par /repair. Corrigez les calculs à partir des données comptables dans l’ERP, régénérez le XML puis utilisez /validate. Une validation documentaire ne garantit pas l’acceptation par une PA.

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