Tools › SmartFormular E-Rechnung lite › Validation rules › BR-CO-17
BR-CO-17
A VAT amount (BT-117) does not match the taxable amount (BT-116) and rate (BT-119)
What the message means
A VAT amount (BT-117) does not match the taxable amount (BT-116) and rate (BT-119).
What the issuer needs to change
Recalculate the VAT amount and round it to the cent.
Fields concerned
BT-116VAT category taxable amountBT-117VAT category tax amountBT-119VAT category rate
Your invoice reports BR-CO-17? Check it with SmartFormular E-Rechnung lite, free to try until 31 December 2026: the tool shows every finding with an explanation, the invoice in readable form and a GiroCode to pay – in your browser, no upload.
Check an e-invoiceOrigin
- Rule set
- EN 16931 (CEN, rule set 1.3.16)
- Syntax
- CII, UBL
- Level
- Error
Original rule text
VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.
Technical details for IT
UBL
Context: cac:TaxTotal/cac:TaxSubtotal Test: not((round(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent)) = 0 and (round(xs:decimal(cbc:TaxAmount)) = 0)) or (round(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent)) != 0 and ((abs(xs:decimal(cbc:TaxAmount)) - 1 < round(abs(xs:decimal(cbc:TaxableAmount)) * (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(cbc:TaxAmount)) + 1 > round(abs(xs:decimal(cbc:TaxableAmount)) * (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent) div 100) * 10 * 10) div 100 ))) or (not(exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/xs:decimal(cbc:Percent))) and (round(xs:decimal(cbc:TaxAmount)) = 0)))
CII
Context: //ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax Test: not((round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) = 0 and (round(xs:decimal(ram:CalculatedAmount)) = 0)) or (round(.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent)) != 0 and ((abs(xs:decimal(ram:CalculatedAmount)) - 1 <= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ) and (abs(xs:decimal(ram:CalculatedAmount)) + 1 >= round(abs(xs:decimal(ram:BasisAmount)) * (.[normalize-space(upper-case(ram:TypeCode)) = 'VAT']/xs:decimal(ram:RateApplicablePercent) div 100) * 10 * 10) div 100 ))) or (not(exists(.[normalize-space(upper-case(ram:TypeCode))='VAT']/xs:decimal(ram:RateApplicablePercent))) and (round(xs:decimal(ram:CalculatedAmount)) = 0)))
Related rules
- BR-CO-14The VAT total (BT-110) does not equal the sum of the VAT amounts per rate (BT-117)
- BR-CO-15The total with VAT (BT-112) is not the net total (BT-109) plus VAT (BT-110)
- BR-CO-16The amount due (BT-115) is not the total with VAT (BT-112) minus paid amount (BT-113) plus rounding (BT-114)
- BR-CO-18The invoice has no VAT breakdown (BG-23)
- BR-CO-19An invoicing period (BG-14) is present but has no date
- BR-CO-20An invoice line period (BG-26) is present but has no date