BT-99Document level charge amountBT-108Sum of charges on document level
Texte officiel de la règle
[BR-CO-12] Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).
Le texte normatif est en anglais ; il est cité tel quel.
Pourquoi cette erreur apparaît
BT-108 doit être égal à la somme de tous les montants de majoration au niveau du document (BT-99). La règle compare cac:LegalMonetaryTotal/cbc:ChargeTotalAmount à la somme des cbc:Amount de tous les /Invoice/cac:AllowanceCharge avec cbc:ChargeIndicator true (UBL), ou ram:ChargeTotalAmount à la somme des ram:ActualAmount des ram:SpecifiedTradeAllowanceCharge d'en-tête avec indicateur true (CII). Causes typiques : frais de port ou d'emballage modélisés comme lignes de facture alors que ChargeTotalAmount reste renseigné, ou majorations de ligne comptées au niveau du document.
Comment corriger
Formule : BT-108 = Σ BT-99 (majorations au niveau du document uniquement), arrondi à 2 décimales. En UBL, renseignez cbc:ChargeTotalAmount dans cac:LegalMonetaryTotal ; en CII, ram:ChargeTotalAmount dans les totaux d'en-tête. S'il existe des majorations, le total doit être présent ; s'il n'y en a pas, omettez l'élément ou écrivez 0.00. Choisissez une seule modélisation : des frais de transport sont soit une majoration au niveau du document (comptée ici), soit une ligne de facture (comptée dans BT-106), jamais les deux.
Exemple (valide)
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Freight</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">5.90</cbc:Amount>
<cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>19</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>
</cac:AllowanceCharge>
<cac:LegalMonetaryTotal>...<cbc:ChargeTotalAmount currencyID="EUR">5.90</cbc:ChargeTotalAmount>...</cac:LegalMonetaryTotal>
Ce que le validateur vérifie
Élément vérifié (contexte):
UBL
cac:LegalMonetaryTotalTest (XPath):
xs:decimal(cbc:ChargeTotalAmount) = (round(sum(../cac:AllowanceCharge[cbc:ChargeIndicator=true()]/xs:decimal(cbc:Amount)) * 10 * 10) div 100) or (not(cbc:ChargeTotalAmount) and not(../cac:AllowanceCharge[cbc:ChargeIndicator=true()]))CII
//ram:SpecifiedTradeSettlementHeaderMonetarySummationTest (XPath):
(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true()])and not (ram:ChargeTotalAmount)) or ram:ChargeTotalAmount = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator=true()]/ram:ActualAmount)* 10 * 10 ) div 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-36Chaque charge au niveau document doit avoir un montant de chargeBR-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-05Le nombre maximal de décimales pour le montant de la charge au niveau document est 2BR-DEC-11Le nombre maximal de décimales pour la somme des charges au niveau document est 2BR-E-08Dans une ventilation de TVA de catégorie « Exonéré de TVA »…
Questions fréquentes
Que signifie BR-CO-12 ?
BR-CO-12 est une règle de base en 16931 : Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).
Ma facture sera-t-elle rejetée à cause de BR-CO-12 ?
Oui. BR-CO-12 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-12 ?
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.