Technique

Erreur BR-CO-10 EN16931 : BT-106 ≠ Σ BT-131 — diagnostic et correction

2 min de lecture Par FacturX API

BR-CO-10 vérifie que la somme des montants nets de ligne (BT-106) est égale à la somme arithmétique des BT-131 de chaque ligne. Causes, exemples XML, correction.

En bref

  • BR-CO-10 contrôle que BT-106 (Sum of Invoice line net amount) est égal à la somme arithmétique des BT-131 de 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 "[email protected]"

Voir aussi

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