We are implementing for retail stores with hundreds of POS devices. Let us take an example of the following information
- Item A - Price 9.521, VAT 1.428, subtotal 10.95
- 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:
- Item A - LineExtensionAmount: 9.52 and TaxAmount: 1.43 (1.428 rounded to 2 decimals)
- 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.