BT-109Invoice total amount without VATBT-110Invoice total VAT amountBT-112Invoice total amount with VAT
Texte officiel de la règle
[BR-CO-15] Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).
Le texte normatif est en anglais ; il est cité tel quel.
Pourquoi cette erreur apparaît
Le montant total TTC de la facture (BT-112) doit être égal au total HT (BT-109) augmenté du montant total de TVA (BT-110). La règle exige en outre un seul total de TVA dans la devise du document : en UBL, un seul cac:TaxTotal/cbc:TaxAmount dont le currencyID est égal à cbc:DocumentCurrencyCode ; en CII, un seul ram:TaxTotalAmount dont le currencyID est égal à ram:InvoiceCurrencyCode. Elle échoue en cas d'écart d'arrondi, d'absence de currencyID sur le montant de TVA, ou lorsque deux éléments TaxTotal utilisent tous deux la devise du document.
Comment corriger
Formule : BT-112 = BT-109 + BT-110, arrondi à 2 décimales. En UBL, renseignez cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount = cbc:TaxExclusiveAmount + cac:TaxTotal/cbc:TaxAmount[@currencyID = devise du document] ; en CII, ram:GrandTotalAmount = ram:TaxBasisTotalAmount + ram:TaxTotalAmount[@currencyID = devise de facturation]. Chaque montant de TVA doit porter l'attribut currencyID. Conservez un seul total de TVA dans la devise du document ; un second n'est autorisé que dans la devise de comptabilisation de la TVA (BT-111).
Exemple (valide)
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">200.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">200.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">238.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">238.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Ce que le validateur vérifie
Élément vérifié (contexte):
UBL
/ubl:Invoice | /cn:CreditNoteTest (XPath):
every $Currency in cbc:DocumentCurrencyCode satisfies (count(cac:TaxTotal/xs:decimal(cbc:TaxAmount[@currencyID=$Currency])) eq 1) and (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxInclusiveAmount) = round( (cac:LegalMonetaryTotal/xs:decimal(cbc:TaxExclusiveAmount) + cac:TaxTotal/xs:decimal(cbc:TaxAmount[@currencyID=$Currency])) * 10 * 10) div 100)CII
/rsm:CrossIndustryInvoiceTest (XPath):
every $Currency in rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:InvoiceCurrencyCode satisfies ( count ( rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=$Currency] ) eq 1 and (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = round( (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount) + (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxTotalAmount[@currencyID=$Currency]))) * 10 * 10) div 100)) or (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:GrandTotalAmount) = (//ram:SpecifiedTradeSettlementHeaderMonetarySummation/xs:decimal(ram:TaxBasisTotalAmount)))
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-CO-14Le montant total de TVA (BT-110) ne correspond pas à la ventilationBR-CO-16Le montant net à payer (BT-115) est incohérentBR-13Une facture doit comporter le montant total hors TVABR-14Une facture doit comporter le montant total TTCBR-DEC-12Le nombre maximal de décimales pour le montant total hors TVA est 2BR-DEC-13Le nombre maximal de décimales pour le montant total de TVA est 2BR-DEC-14Le nombre maximal de décimales pour le montant total TTC est 2
Questions fréquentes
Que signifie BR-CO-15 ?
BR-CO-15 est une règle de base en 16931 : Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).
Ma facture sera-t-elle rejetée à cause de BR-CO-15 ?
Oui. BR-CO-15 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-15 ?
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.