Minor amount difference when rounding to 2 decimals

We are implementing for retail stores with hundreds of POS devices. Let us take an example of the following information

  1. Item A - Price 9.521, VAT 1.428, subtotal 10.95
  2. Item B - Price 57.173, VAT 8.576, subtotal 65.75

So the total VAT is SAR 10 and the total invoice value is SAR 76.7

As given above the POS device computed the VAT and Total Amount based on exact value (takes into consideration up to 8 decimals) but in XML we are forced to use 2 decimal rounding which in this case will be:

  1. Item A - LineExtensionAmount: 9.52 and TaxAmount: 1.43 (1.428 rounded to 2 decimals)
  2. Item B - LineExtensionAmount: 57.17 and TaxAmount: 8.58 ( 8.5755 rounded to 2 decimals)

So in LegalMonetaryTotal
TaxExclusiveAmount is 66.69 and TaxTotal is 10.01 (1.43 + 8.58) making the PayableAmount to be 76.7

So there is a difference of 0.01 in Tax (we also have examples where the total amount will also have a difference of 0.01 or 0.02).

0.01 difference in tax is not a big deal but when we consider that there will be also 8-9 million invoices in a year, the amount in our system and the amount shown in accounts will have a difference of 80,000-90,000 SAR.

What can be done in this case? We can’t change the POS computation because the computation of POS is actually the correct computation because it considers all decimals. Further, the POS prints the tax value as 10.00 but on QR printed on the thermal invoice receipt will be 10.01 when scanned.

Please advice.

P.S. if we consider more than 2 decimals we are receiving multiple warnings from the fatoora portal.

1 Like

Dear @Mirshad ,
You can provide the values in XML and QR Code exactly as per your ERP system (VAT of SAR 10 and not 10.01) even if it results in 0.01 SAR difference. Currently such invoices will be “accepted with warnings”. ZATCA is working on suitable fix to not generate warnings in case of genuine rounding issues like in given example.