BR-FREXT-CO-11

Somme calculée : … , Total HT (BT-107) : … , nbelements : … , Ecart calculé : … , [BR-FREXT-CO-11] - Écart absolu entre le total des remises (BT-107) et la somme des montants de remise (BT-92) ≤ 0,01 € * nombre de remises.

Official rule text

Somme calculée : … , Total HT (BT-107) : … , nbelements : … , Ecart calculé : … , [BR-FREXT-CO-11] - Écart absolu entre le total des remises (BT-107) et la somme des montants de remise (BT-92) ≤ 0,01 € * nombre de remises.
[BR-FREXT-CO-11]-Absolute Value of (Sum of allowances on document level (BT-107) - Σ Document level allowance amounts (BT-92))<= 0,01 * Number of Document level allowance amounts (BT-92).
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-92
  • BT-107

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='false']) and not (ram:AllowanceTotalAmount)) or (for $calculatedAmount in xs:decimal(round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false']/ram:ActualAmount/xs:decimal(.))* 10 * 10 ) div 100), $totalAmount in xs:decimal(ram:AllowanceTotalAmount), $nbAllowanceItems in xs:decimal(count(../ram:SpecifiedTradeAllowanceCharge[ram:ChargeIndicator/udt:Indicator='false'])), $tolerance in xs:decimal(0.01)…
Syntax
UBL · French rules BR-FR, EXTENDED-CTC-FR (1.4.0.04)
Context
cac:LegalMonetaryTotal
Test (must be true)
(abs($totalAmountBT107 - $calculatedAmountBT92) le ($nbAllowanceItems* 0.01)) or (not(cbc:AllowanceTotalAmount) and not(../cac:AllowanceCharge[cbc:ChargeIndicator=false()]))

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-11",
  "message": "Somme calculée : … , Total HT (BT-107) : … , nbelements : … , Ecart calculé : … , [BR-FREXT-CO-11] - Écart absolu entre le total des remises (BT-107) et la somme des montants de remise (BT-92) ≤ 0,01 € * nombre de remises.",
  "xpath": "/…",
  "source": "schematron:france-rfe@1.4.0.04",
  "docUrl": "https://einvoice-api.eu/rules/br-frext-co-11.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.