The invoice VAT total must equal the sum of VAT category tax amounts

Error BR-CO-14 EN 16931

Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117).

Mandatory rule: As long as it is violated, the invoice is invalid and will be rejected by validators.
What is wrong

The value of ram:TaxTotalAmount differs from the sum of the ram:CalculatedAmount values in ram:ApplicableTradeTax, rounded to two decimal places. As a result, the invoice VAT total does not match the tax amounts for the VAT categories.

What the rule means

The invoice-level VAT total in the invoice currency must equal the sum of the VAT category tax amounts, rounded to two decimal places.

Affected fields BT-110 BT-117
Please match the invoice VAT total to the category tax amounts

The invoice VAT total in the invoice currency does not match the sum of the category tax amounts. Adjust the values so they agree.

What to do
  1. Compare ram:TaxTotalAmount with the ram:CalculatedAmount values in ram:ApplicableTradeTax.
  2. Add the category tax amounts and account for rounding to two decimal places.
  3. Check the value set through TaxTotalAmount.
  4. Generate the invoice again and validate it again.
What it looks like
✗ Triggers the message
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  <ram:TaxTotalAmount currencyID="EUR">19.01</ram:TaxTotalAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>10.00</ram:CalculatedAmount>
</ram:ApplicableTradeTax>
<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>9.00</ram:CalculatedAmount>
</ram:ApplicableTradeTax>
✓ Correct
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
  <ram:TaxTotalAmount currencyID="EUR">19.00</ram:TaxTotalAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>10.00</ram:CalculatedAmount>
</ram:ApplicableTradeTax>
<ram:ApplicableTradeTax>
  <ram:CalculatedAmount>9.00</ram:CalculatedAmount>
</ram:ApplicableTradeTax>
Check in FactoorSharp
  • FacturXInvoice.TaxTotalAmount (BT-110)
Technical details

The XPath compares the current ram:TaxTotalAmount with the sum of all ram:ApplicableTradeTax/ram:CalculatedAmount values in the invoice header. The sum is rounded to two decimal places before comparison.

Where the rule applies

The rule applies to ram:TaxTotalAmount whose currencyID matches ram:InvoiceCurrencyCode, within the invoice header monetary summation.

Context (rule/@context)
//ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID=/ rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ ram:InvoiceCurrencyCode]
Test expression (assert/@test)
. = (round(sum(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CalculatedAmount)*10*10)div 100)