En bref
- BR-CO-10 contrôle que
BT-106(Sum of Invoice line net amount) est égal à la somme arithmétique desBT-131de toutes les lignes. - Aucune tolérance d’écart — 1 cent suffit à déclencher l’erreur.
- Cause #1 : le total facture pré-calculé par l’ERP, désynchronisé après ajout/suppression d’une ligne.
- Cause #2 : arrondis appliqués sur chaque ligne puis sommés (écart cumulé d’arrondi).
- Réparable automatiquement par
/repair.
Ce que l’erreur veut dire
BR-CO-10 (Schematron EN16931, aligné Peppol) exige que LineTotalAmount au niveau du SpecifiedTradeSettlementHeaderMonetarySummation (= BT-106, Sum of Invoice line net amount) soit strictement égal à la somme arithmétique des LineTotalAmount de chaque ligne (= BT-131). Règle de cohérence agrégat document-level ↔ lignes.
Quand cette erreur arrive
Erreur typique après : (a) ajout/suppression d’une ligne dans l’ERP sans recalcul du total facture ; (b) arrondi appliqué ligne par ligne avant sommation, qui crée une différence d’1 ou 2 centimes ; (c) ligne marquée « non facturable » mais oubliée dans l’export XML ; (d) bug d’affichage : une ligne apparaît dans le PDF mais n’est pas exportée dans l’XML.
Exemple XML qui déclenche l’erreur
<!-- Ligne 1 -->
<ram:IncludedSupplyChainTradeLineItem>
<ram:SpecifiedLineTradeSettlement>
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>100.00</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
<!-- Ligne 2 -->
<ram:IncludedSupplyChainTradeLineItem>
<ram:SpecifiedLineTradeSettlement>
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>50.00</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
<!-- Niveau facture -->
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>140.00</ram:LineTotalAmount> <!-- ❌ devrait être 150.00 -->
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
Exemple XML corrigé
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>150.00</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
Correction manuelle
Recalculer BT-106 à partir des lignes : BT-106 = Σ BT-131. Effectuer cette somme APRÈS tout ajout/suppression de ligne, pas avant. Si vous êtes soumis à des arrondis ligne-par-ligne, la somme exacte est la somme des valeurs déjà arrondies — ne pas re-arrondir.
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 "file=@facture.xml"