There are pitfalls but I have managed to do this. here goes with an explanation:
First off you need to charge VAT to UK and EU BUT if the EU customer DOES have a VAT number then your VAT rate is ZERO for those customers. Paypal doesn’t ask for a VAT number or ask if the customer is VAT registered so this presents a problem.
You could ignore this problem and let Paypal handle the TAX. Although Paypal gives you an opportunity in your account settings, to put a VAT rate for different countries, you would need to go through every European country, including UK and put 17.5%.
Here is what I did:
First the customer registers and in that form you ask for a country (compulsory) and a VAT number - where appropriate.
Then when they are logged in you can charge VAT depending on the country. HOWEVER - I had to hack the ecommerce module to pass through the TAX rate to Paypal.
To determine if VAT is payable when knowing the EU country I used this in the template:
{if:elseif (country == 'Austria' OR country == 'Belgium' OR country == 'Bulgaria' OR country == 'Cyprus' OR country == 'Czech Republic' OR country == 'Denmark' OR country == 'Estonia' OR country == 'Finland' OR country == 'France' OR country == 'Germany' OR country == 'Greece' OR country == 'Hungary' OR country == 'Ireland' OR country == 'Italy' OR country == 'Latvia' OR country == 'Lithuania' OR country == 'Luxembourg' OR country == 'Malta' OR country == 'Netherlands' OR country == 'Poland' OR country == 'Portugal' OR country == 'Romania' OR country == 'Slovakia' OR country == 'Slovenia' OR country == 'Spain' OR country == 'Sweden') && vat_number==""}
The hack to the ecommerce module is not dramatic and I can send it to you if you want. The ecommerce tag looks like this after the hack:
{exp:simple_commerce:purchase entry_id="{entry_id}" success="http://www.yoursite.co.uk/software/download/{url_title}" cancel="http://www.yoursite.co.uk" currency="GBP" country_code="GB" tax="17.5"}
In other words the ‘tax’ parameter is new.
Also, if you want to get the details that come back from Paypal, I have a little plugin that makes some sense of the data that comes back and shows you the tax that has been paid on the transaction.
Hope that helps…