Back to Fred Mac Donald's Blog
I had a recent case where one of my XMS Systems E-Commerce users contacted me with the following screenshots.
As is clear in the screen captures, XMS Systems has a cart total of £54.23 and PayPal received and displays the correct amount, £54.23, at the PayPal login screen.
However once the user has completed the PayPal authentication, PayPal now updates the payment totals with an additional VAT Amount of £12.47. That is not good and the user will most probably abandon the shopping cart and go somewhere else.
My XMS Systems E-Commerce client contacted PayPal for assistance and after holding the line for around 30 minutes, was told it is not a PayPal issue but a shopping cart issue and to contact the developers of XMS Systems.
We immediately responded to the support ticket logged via Exelwebs.com and additionally discovered that it seems to be a random thing as initially, we could not reproduce the error. Eventually, we found that it is country specific and any user outside of the affected country will not get the VAT added at the PayPal checkout screen.
We are 100% certain that the problem is not with XMS Systems E-Commerce module and it had to be a PayPal issue. Some quick research online sort of confirms this as there are a number of similar incidents reported over the last couple of years with various “fixes”. None of them really fixing the problem but just “forcing” PayPal to not add the VAT.
Altho this could be a solution if your clients are from a specific country. However, if you selling international, you have a problem. An example would be that the USA and EU has an agreement that USA companies would collect VAT from EU purchases and pay the money raised over to the EU. So, by law, all USA companies should charge VAT to all EU customers according to the VAT rates the client orders from.
PayPal has a built-in function to easily add the required taxes during the checkout process and this is exactly what happened in this case. Why PayPal support did not pick up on this is anybody's guess…
It turned out the solution to the problem is fairly simple.