EU VAT Enhanced Documentation
- Magento VAT Configuration
- Extension Configuration
- Check your PHP-Installation for the SOAP extension – SOAP needs to be enabled in order to connect to the VIES interface (If you don’t know what this is, please contact your webhosting provider – they can help you in this question)
- Make sure you have FTP/SFTP access to copy the extension files to your Magento installation
Now you can proceed with the installation as follows:
- Navigate to “System → Cache Management” and disable/clean all Magento caches and disable the Magento compiler (if enabled).
- Upload the directories “app” and “js” (within the folder src in your download package) to your Magento root directory (“app”⇒“app” and “js”⇒“js”).
- If you are currently logged in Magento Admin, please log out and log in again to allow your admin account to receive the required permissions to edit the extensions configuration.
- Recompile and turn on the compiler again if it was enabled before the installation. Navigate to “System → Cache Management” and refresh/reactivate all caches.
The installation procedure is now completed. The next step is to configure Magento for VAT and to configure the extension.
Magento VAT Configuration
Configuring Magento for VAT is not that hard if you once got it working. Please note that you maybe do not have to process the steps of configuring VAT in Magento if you are already running a productive installation and if you don't start from scratch. This is especially the case if you use one of the following extensions: Firegento GermanSetup or Firegento MageSetup - both come with a similar installer which sets up Magento for VAT and further legal requirements for EU countries.
It is easy to use our automated setup in order to configure VAT for your Magento installation. The setup will take care about creating the neccessary tax classes, tax rates and tax rules, as well as setting the required store configuration.
After successful installation, you should be able to see the setup notice in the admin area. To execute the setup, click on the “Setup” link. If you have already configured Magento for VAT, you can also skip the setup.
The following page will appear. Within this page, fill out the required fields with your data.
VAT Configuration Setup
The automated setup will set/overwrite the following store configuration settings:
- 'general/country/default' ⇒ Will be set to the country you have chosen in the setup form
- 'tax/classes/shipping_tax_class' ⇒ Will be set to the tax class id for shipping
- 'tax/calculation/based_on' ⇒ Will be set to 'shipping'
- 'tax/defaults/country' ⇒ Will be set to the country you have chosen in the setup form
- 'shipping/origin/country_id' ⇒ Will be set to the country you have chosen in the setup form
- 'customer/create_account/auto_group_assign' ⇒ Will be set to disabled
- 'customer/create_account/vat_frontend_visibility' ⇒ Will be set to enabled
- 'customer/address/taxvat_show'⇒ Will be set to disabled
Tax Rules Setup
This option can automatically set up all neccessary tax classes, rates and rules for VAT calculation. By default, it will create the rules for standard VAT calculation (at full rates of your country). Additionally, you can choose if you need further rules for example for electronic services or reduced products.
Tax class mapping
To be able to provide an automated setup, the function needs to know the internal IDs of the product and customer tax classes. Therefore we will remove the existing tax classes from your system and create new ones. Make sure to select the mapping of the new IDs to fit your requirements. Existing products and customer groups will get the new IDs assigned, instead of the old ones.
Now just click on “Run Setup” to run the setup. If everything worked, you will be redirected to the extension configuration settings.
If you don't want to use our automated setup, this will guide you to the neccessary steps to setup EU VAT in Magento.
1. Prepare product tax classes
Navigate to “Sales → Tax → Product Tax Classes” and set up the following tax classes, which can be named to whatever you want, but should represent the meaning:
- Products with full VAT
- Products with reduced VAT
- Shipping with VAT
- For digital content or services: “Virtual products with EU countries VAT” (EU MOSS)
2. Prepare customer tax classes
Navigate to “Sales → Tax → Customer Tax Classes” and add/edit the following customer tax classes:
- Consumers incl. VAT
- Business incl. VAT
- Business excl. VAT
3. Create tax rates according to your country rates
EU VAT Enhanced for Magento comes with tax rates import files to save you some time creating about 80 or more tax rates manually. Normally you would have to create a tax rate for every country you are delivering to and that for every tax rate your products have.
For the new EU VAT changes for 2015 we have added a rate import file tax_rates-digital_goods-EU.csv. This file includes one full rate for every EU country, for use with the additional tax rule required for selling digital content or services (EU MOSS).
4. Create tax rules
In general for VAT calculation, you would only need two tax rules in Magento. One with the full standard rates and one for VAT exempt. Depending on what kind of products you sell, you might need to calculate additionally a reduced rate or for digital products the VAT rate of the EU country for consumers.
Explanation of the rules:
- Consumers buy products with standard VAT: Will be applied to orders with delivery to the merchant country or if no valid VAT number exists
- Consumers buy products with reduced VAT: Same as above, just with reduced rates
- Consumers buy digital products: For the EU MOSS rule, where you need to calculate the VAT rate of the customers residence for digital products
- Domestic businesses buy digital products: For domestic companies buying digital products, calculate the VAT rate of the merchant country
- EU businesses buy VAT exempt: For customers with valid VAT number and delivery outside the merchant country, calculate no VAT
Of course, if you just trade with products at the standard rate, you only need the first (Consumers buy products with standard VAT) and the last (EU businesses buy VAT exempt) rule.
5. Prepare customer groups
Navigate to “Customers → Customer Groups”. The use of customer groups is totally optional with the extension. The extension will dynamically apply the customer tax class depending on the customers VAT number validation results and the shipping address. The tax class of the customer group is just a fallback now. Therefore it is optional if you want to assign customers to groups depending on the VAT number validation results, as the group and the tax class are not firmly connected anymore.
For reference, we suggest these customer groups:
6. Configuration of VAT in Magento
There are several places at the Magento system configuration where the calculation of VAT is affected. Following we go through each setting areas step by step.
1. Enable the input fields for customers VAT-ID
- Navigate to “System → Configuration → (Customers) Customer Configuration”
- At Create New Account Options set Show VAT Number on Frontend to Yes
- Set your Default Group eg. General
2. Set the tax calculation method
- Navigate to “System → Configuration → (Sales) Tax”
- Set Tax Calculation Based Oni> to “Shipping Address”
3. Set the shipping origin
This will define the country from where tax calculation will be based on.
- Navigate to “System → Configuration → (Sales) Shipping Settings”
- Set the merchant shipping origin country
Now you have done all settings required in Magento for EU VAT calculation.
Finally we will go through the system configuration of the extension. There are many settings which will have influence on how the extension installation will calculate VAT or assign customer groups.
- License Key: Set your license key which you can find at your customer account at “My Downloadable Products”
- Debug Mode: If you ever encounter any issues or just want to see how EU VAT Enhanced works in the background, turn on the debug mode. It will output relevant information to /var/log/system.log - we recommend to turn it off on production systems as it will produce a big logfile in a short time.
- IPv6 Compatibility: If you have general problems to connect to the interface, the IPv6 compatibility mode might help. It depends on your server setup if you need this option. Turn it on and set your servers IPv4 address to see if the connection is working then.
- OneStep Checkout Integration: We provide support for several OSC extensions. Please choose your installed extension from the list. If your extension is missing here, please let us know. All OSC extensions can be supported.
- Enable address fields on registration page: If you want to request the customer VAT number at the customer registration page, you need to enable the address fields here. It might be that your template does not support the VAT field at the registration page. Please read this KB article on how to add the VAT number field.
- Enable EU VAT Enhanced: If this option is turned on, the extension will take care of VAT validation, VAT calculation and customer group assignment
- Own VAT-ID: Set the VAT-ID of the merchant company here. This field is required for the validation with return of a request identifier to work.
- Tax class settings: When the extension identifies the customer situation, apply these customer tax classes. This is the dynamic application of tax classes for the customer groups mentioned earlier.
- Offline Validation: Will fall back to a simple syntax based validation, when the EU service is offline. We recommend to disable this feature, as the number may be syntactically valid, but officially invalid.
- Require valid VAT number to checkout: This will prevent the order to be submitted and show an error message, that a valid number is required to checkout.
- Validate VAT number on each customer login and the validation period: We suggest to enable this feature, but setting the validation period to at least 3 months. If you choose shorter timeframes, it could happen that the EU service is banning your server IP for requests.
- Takeover used VAT number at checkout to customers account: This provides fallback support for the old account based VAT number field in Magento. Since Magento 1.7 the VAT number should be used and saved together with the address.
- Disable Cross-Border price consistency for EU customers with valid VAT number: If you use the cross border trade option in Magento, you need to enable this in order to get net prices instead of gross prices without VAT. The same applies to Disable Cross-Border price consistency for customers outside europe.
- Excluded groups for tax calculation: Should you ever want to never calculate tax to a specific customer group, select it here.
- Groups which follow regular Magento tax calculation: If you have to calculate other taxes than VAT, select these groups here. For example in Spain there is equivalence tax. The extension will not dynamically apply one of the three customer tax classes to these groups and therefore these will follow the regular Magento tax calculation.
The configuration comments should be self-explanatory.
Here you can define an email template and recipient which will get a notice, everytime a VAT number was validated successfully (for guests and registered customers).
You have now done all neccessary actions required to get a well working VAT calculation and number validation in Magento.