BR-FREXT-CO-12

Somme calculée : … , Total HT (BT-108) : … , nbelements : … , Ecart calculé : … , [BR-FREXT-CO-12] - Écart absolu entre le total des charges (BT-108) et la somme des montants de charge (BT-99) ≤ 0,01 € * nombre de charges.

Official rule text

Somme calculée : … , Total HT (BT-108) : … , nbelements : … , Ecart calculé : … , [BR-FREXT-CO-12] - Écart absolu entre le total des charges (BT-108) et la somme des montants de charge (BT-99) ≤ 0,01 € * nombre de charges.
[BR-FREXT-CO-12]-Absolute Value of (Sum of charges on document level (BT-108) - Σ Document level charge amounts (BT-99) - Σ Logistics Service fee amounts (BT-x-272))<= 0,01 * (Number of Document level charge amounts (BT-99) + Number of Logistics Service fee amounts (BT-X-272)).
French rules BR-FR, EXTENDED-CTC-FR (1.4.0.04)

Where the rule applies

Rule setDocument typeSeverity
French rules BR-FR, EXTENDED-CTC-FR (1.4.0.04)
FNFE-MPE
EXTENDED-CTC-FR (CII), EXTENDED-CTC-FR (UBL Invoice), EXTENDED-CTC-FR (UBL CreditNote)fatal

Fatal and error findings make the invoice invalid (valid: false); warnings and information do not.

Business terms concerned (EN 16931)

  • BT-99
  • BT-108

Technical check

Syntax
CII · French rules BR-FR, EXTENDED-CTC-FR (1.4.0.04)
Context
//ram:SpecifiedTradeSettlementHeaderMonetarySummation
Test (must be true)
(not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true'])and not (ram:ChargeTotalAmount)) or (for $calculatedAmount in xs:decimal(xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='true']/ram:ActualAmount/xs:decimal(.))* 100 ) div 100)+ xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedLogisticsServiceCharge/ram:AppliedAmount/xs:decimal(.))* 10 * 10 ) div 100))…
Syntax
UBL · French rules BR-FR, EXTENDED-CTC-FR (1.4.0.04)
Context
cac:LegalMonetaryTotal
Test (must be true)
(abs($totalAmountBT108 - $calculatedAmountBT99) le ($nbChargeItems* 0.01)) or (not(cbc:ChargeTotalAmount) and not(../cac:AllowanceCharge[cbc:ChargeIndicator=true()]))

How the API reports this rule

Every finding of POST /v1/validate carries the rule id, severity, message, location (XPath) and rule set, and links this page (docUrl):

{
  "severity": "fatal",
  "ruleId": "BR-FREXT-CO-12",
  "message": "Somme calculée : … , Total HT (BT-108) : … , nbelements : … , Ecart calculé : … , [BR-FREXT-CO-12] - Écart absolu entre le total des charges (BT-108) et la somme des montants de charge (BT-99) ≤ 0,01 € * nombre de charges.",
  "xpath": "/…",
  "source": "schematron:france-rfe@1.4.0.04",
  "docUrl": "https://einvoice-api.eu/rules/br-frext-co-12.html"
}

Check an invoice against this rule and every other rule of the rule set – in the browser, without sign-up.

Rule text and severity are taken unchanged from the official rule set; this page is generated from the API's configuration. Not legal advice.