Rules / IBR-CO-16
IBR-CO-16 error
Amount due must add up
Amount due (IBT-115) = total with VAT − amount already paid + rounding.
Prepayments and deposits are the usual cause.
Fails
<cbc:TaxInclusiveAmount currencyID="AED">7875.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="AED">7950.00</cbc:PayableAmount>
Fix
Recalculate from the total with VAT. Show any prepayment in cbc:PrepaidAmount.
Passes
<cbc:PayableAmount currencyID="AED">7875.00</cbc:PayableAmount>
Schematron
- Context
cac:LegalMonetaryTotal- Test
(xs:decimal(cbc:PrepaidAmount) and not(xs:decimal(cbc:PayableRoundingAmount)) and (xs:decimal(cbc:PayableAmount) = (round((xs:decimal(cbc:TaxInclusiveAmount) - xs:decimal(cbc:PrepaidAmount)) * 10 * 10) div 100))) or (not(xs:decimal(cbc:PrepaidAmount)) and not(xs:decimal(cbc:PayableRoundingAmount)) and xs:decimal(cbc:PayableAmount) = xs:decimal(cbc:TaxInclusiveAmount)) or (xs:decimal(cbc:PrepaidAmount) and xs:decimal(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(xs:decimal(cbc:PrepaidAmount)) and xs:decimal(cbc:PayableRoundingAmount) and ((round((xs:decimal(cbc:PayableAmount) - xs:decimal(cbc:PayableRoundingAmount)) * 10 * 10) div 100) = xs:decimal(cbc:TaxInclusiveAmount)))
Official text: Amount due for payment (ibt-115) = Invoice total amount with Tax (ibt-112) - Paid amount (ibt-113) + Rounding amount (ibt-114).