Tools › SmartFormular E-Rechnung lite › Validation rules › BR-CO-16
BR-CO-16
The amount due (BT-115) is not the total with VAT (BT-112) minus paid amount (BT-113) plus rounding (BT-114)
What the message means
The amount due (BT-115) is not the total with VAT (BT-112) minus paid amount (BT-113) plus rounding (BT-114).
What the issuer needs to change
Recalculate the amount due.
Fields concerned
BT-112invoice total amount with VATBT-113paid amountBT-114rounding amountBT-115amount due for payment
Your invoice reports BR-CO-16? 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
Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).
Technical details for IT
UBL
Context: cac:LegalMonetaryTotal Test: not((exists(cbc:PrepaidAmount) and not(exists(cbc:PayableRoundingAmount)) and (xs:decimal(cbc:PayableAmount) = (round((xs:decimal(cbc:TaxInclusiveAmount) - xs:decimal(cbc:PrepaidAmount)) * 10 * 10) div 100))) or (not(exists(cbc:PrepaidAmount)) and not(exists(cbc:PayableRoundingAmount)) and xs:decimal(cbc:PayableAmount) = xs:decimal(cbc:TaxInclusiveAmount)) or (exists(cbc:PrepaidAmount) and exists(cbc:PayableRoundingAmount) and ((round((xs:decimal(cbc:PayableAmount) - xs:decimal(cbc:PayableRoundingAmount)) * 10 * 10) div 100) = (round((xs:decimal(cbc:TaxInclusiveAmount) - xs:decimal(cbc:PrepaidAmount)) * 10 * 10) div 100))) or (not(exists(cbc:PrepaidAmount)) and exists(cbc:PayableRoundingAmount) and ((round((xs:decimal(cbc:PayableAmount) - xs:decimal(cbc:PayableRoundingAmount)) * 10 * 10) div 100) = xs:decimal(cbc:TaxInclusiveAmount))))
CII
Context: //ram:SpecifiedTradeSettlementHeaderMonetarySummation Test: not((xs:decimal(ram:DuePayableAmount[1]) = xs:decimal(ram:GrandTotalAmount[1]) - xs:decimal(ram:TotalPrepaidAmount[1]) + xs:decimal(ram:RoundingAmount[1])) or ((xs:decimal(ram:DuePayableAmount[1]) = xs:decimal(ram:GrandTotalAmount[1]) + xs:decimal(ram:RoundingAmount[1])) and not(ram:TotalPrepaidAmount)) or ((xs:decimal(ram:DuePayableAmount[1]) = xs:decimal(ram:GrandTotalAmount[1]) - xs:decimal(ram:TotalPrepaidAmount[1])) and not(ram:RoundingAmount)) or ((xs:decimal(ram:DuePayableAmount[1]) = xs:decimal(ram:GrandTotalAmount[1])) and not(ram:TotalPrepaidAmount) and not(ram:RoundingAmount)))
Related rules
- BR-CO-13The total without VAT (BT-109) does not follow from lines, allowances and charges
- 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-17A VAT amount (BT-117) does not match the taxable amount (BT-116) and rate (BT-119)
- BR-CO-18The invoice has no VAT breakdown (BG-23)
- BR-CO-19An invoicing period (BG-14) is present but has no date