En bref
- BR-CO-14 contrôle que
BT-110(Invoice total VAT amount) = ΣBT-117(montant TVA par catégorie). - Différent de
BR-CO-17qui vérifie, pour CHAQUE catégorie, queBT-117 = BT-116 × BT-119 / 100. - 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 uneCategoryTradeTaxcorrespondante. - Réparable automatiquement par
/repair.
Ce que l’erreur veut dire
BR-CO-14 (Schematron EN16931, aligné Peppol) exige que TaxTotalAmount (BT-110, au niveau ApplicableHeaderTradeSettlement) soit strictement égal à la somme des CategoryTradeTax/CalculatedAmount (BT-117) pour chaque catégorie de TVA exposée (S, Z, E, AE, K, G, O, L, M). Cette règle contrôle l’agrégat entre le total TVA et les sous-totaux par catégorie.
Quand cette erreur arrive
Erreur fréquente avec : (a) factures multi-taux (5,5 % + 10 % + 20 %) où une catégorie est calculée séparément du total ; (b) modification du taux d’une ligne sans recalcul de la ventilation ; (c) ligne en autoliquidation où on oublie d’exposer la CategoryTradeTax correspondante ; (d) TVA aligné en erreur : la somme arrondie des catégories diffère de BT-110 calculé séparément.
Exemple XML qui déclenche l’erreur
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>100.00</ram:CalculatedAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>20.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>50.00</ram:CalculatedAmount>
<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é
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:TaxTotalAmount currencyID="EUR">150.00</ram:TaxTotalAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
Correction manuelle
Recalculer TaxTotalAmount = Σ ApplicableTradeTax/CalculatedAmount sur toutes les ApplicableTradeTax du document. Chaque combinaison (catégorie, taux) doit avoir sa propre entrée. Pour les catégories à 0 (Z, AE, G, K, E, O), exposer quand même la ligne avec CalculatedAmount=0.00.
Réparable automatiquement par /repair ?
Oui — l’endpoint /repair corrige automatiquement cette erreur dans la majorité des cas.
Et maintenant ?
Réparer mon Factur-X →
curl -X POST https://api.facturxapi.com/api/v1/repair \
-H "Authorization: Bearer VOTRE_CLE" \
-F "[email protected]"