BT-106Sum of Invoice line net amountBT-131Invoice line net amount
Texte officiel de la règle
[BR-CO-10] Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).
Le texte normatif est en anglais ; il est cité tel quel.
Pourquoi cette erreur apparaît
Le total d'en-tête BT-106 doit être égal à la somme des montants nets de toutes les lignes de facture (BT-131), arrondie à deux décimales. La règle compare cac:LegalMonetaryTotal/cbc:LineExtensionAmount à la somme des cac:InvoiceLine/cbc:LineExtensionAmount (UBL), ou ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:LineTotalAmount à la somme des ram:LineTotalAmount des lignes (CII). Les écarts proviennent d'un logiciel qui additionne des valeurs internes non arrondies tout en écrivant des valeurs arrondies par ligne, ou de lignes supprimées ou filtrées lors de l'export.
Comment corriger
Formule : BT-106 = Σ BT-131 sur toutes les lignes, arrondi à 2 décimales. Calculez la valeur d'en-tête à partir des montants exacts écrits dans les lignes XML, et non des valeurs internes en pleine précision. En UBL, renseignez cbc:LineExtensionAmount dans cac:LegalMonetaryTotal ; en CII, ram:LineTotalAmount dans les totaux d'en-tête. Les lignes négatives (crédits) sont incluses avec leur signe ; les remises et majorations au niveau du document ne font pas partie de cette somme.
Exemple (valide)
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">250.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">250.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">297.50</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">297.50</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Ce que le validateur vérifie
Élément vérifié (contexte):
UBL
cac:LegalMonetaryTotalTest (XPath):
(xs:decimal(cbc:LineExtensionAmount) = xs:decimal(round(sum(//(cac:InvoiceLine|cac:CreditNoteLine)/xs:decimal(cbc:LineExtensionAmount)) * 10 * 10) div 100))CII
//ram:SpecifiedTradeSettlementHeaderMonetarySummationTest (XPath):
xs:decimal(ram:LineTotalAmount) = round(xs:decimal(sum(../../ram:IncludedSupplyChainTradeLineItem/ram:SpecifiedLineTradeSettlement/ram:SpecifiedTradeSettlementLineMonetarySummation/ram:LineTotalAmount)) * xs:decimal(100)) div xs:decimal(100)
Corriger automatiquement
Cette erreur peut être corrigée automatiquement : après confirmation, le vérificateur recalcule les totaux et la TVA à partir des lignes.
La même vérification par API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRègles liées
BR-CO-13Le total hors TVA (BT-109) est incohérentBR-12Une facture doit comporter la somme des montants nets des lignesBR-24Chaque ligne de facture doit avoir un montant net de ligneBR-AE-08Dans une ventilation de TVA de catégorie « Autoliquidation »…BR-AF-08Pour chaque taux de TVA distinct de catégorie « IGIC »,…BR-AG-08Pour chaque taux de TVA distinct de catégorie « IPSI »,…BR-DEC-09Le nombre maximal de décimales pour la somme des montants nets des lignes est 2BR-DEC-23Le montant net de ligne (BT-131) a plus de 2 décimales
Questions fréquentes
Que signifie BR-CO-10 ?
BR-CO-10 est une règle de base en 16931 : Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).
Ma facture sera-t-elle rejetée à cause de BR-CO-10 ?
Oui. BR-CO-10 est classée « bloquante » ; les validateurs (plateformes agréées, points d'accès Peppol, KoSIT, KSeF) rejettent la facture tant qu'elle n'est pas corrigée.
À quels formats s'applique BR-CO-10 ?
Toute facture EN 16931 : Factur-X / ZUGFeRD 2.x (profils EN 16931, EXTENDED, XRECHNUNG), XRechnung, Peppol BIS Billing 3.0 et les CIUS nationales. Syntaxe : UBL et CII.
Source: EN 16931-1:2017 schematron (CEN TC434, via Peppol BIS 3.0.20). Catalogue généré à partir des jeux de règles officiels le 2026-10-15.