VAT & Taxes

VAT and taxes are complicated issues which all business with an international online business presence need to address.

VAT – or Value Added Tax – is a form of consumption tax popular in Europe, Japan, and many other countries.

The chief difference between VAT and a sales tax is that with VAT, only the difference between the seller-purchased price and the resale price is taxed at every transaction stage (and then refunded to non-consumers, e.g. businesses) – whereas a sales tax is only charged once, at the point of sale to the consumer.

Dynamicweb ships with the ability to handle all kinds of VAT and Tax scenarios, including

  • Reverse charges on VAT (and per EU directive),
  • Differentiated VAT rates on particular types of products,
  • Products which should belong to different VAT groups in different countries
  • The ability to create complex region- and country-specific tax setups
  • Integration with the Avalara Tax service – one of the most widely used tax provider services in North America

Read more below!

Prices & VAT

We strongly recommend that you use prices excluding VAT in the backend. Dynamicweb is capable of handling VAT across countries, and VAT groups for countries with differentiated VAT-rates, but things become messy if we have to first subtract VAT, then add a different kind of VAT, then remove it for business customers, and so forth.

If you need to use prices including VAT anyway, you must go to Settings > Ecommerce > Advanced Configuration > Prices and check the Prices in database include VAT checkbox (read about the settings here).

VAT is a complicated matter.

Different types of products may have different VAT rates, some countries charge VAT on shipping and delivery fees and some don’t, and of course some countries charge VAT for B2C transactions, and not for B2B transactions.

Naturally, the complicated nature of real-world VAT practices means that VAT in Dynamicweb is fairly complicated too, with:

  • System VAT, which is the VAT rate applied to all products on your solution, unless other VAT types are defined
  • Country VAT, which can be set for each country on your solution, and replaces the system VAT for that country
  • VAT Groups, which allow you to create differentiated VAT on certain types of products – e.g. in Denmark, newspapers have a VAT rate of 0% and art a VAT rate of 5%
  • The VAT Group Matrix, which allows you to properly classify products which belong to different VAT groups in different countries

In this document, you can familiarize yourself with how VAT is set up in Dynamicweb. You can also find information about more advanced concepts, such as the reverse charge for VAT setting and how to create a custom VAT provider.

On Prices and VAT

We strongly recommend that you provide prices excluding VAT on your products. Dynamicweb is capable of handling VAT across countries, and VAT groups for countries with differentiated VAT-rates, but things become messy if we have to first subtract VAT from a product price, then add a different kind of VAT, then remove it for business customers, and so forth. Not least because rounding correctly routinely becomes a problem.

However, if you are unfortunate enough to have a product catalog with prices including VAT, please read more below.

System VAT is the VAT rate applied to all products on your solution, unless other VAT rates are defined – e.g. before a delivery country is selected during checkout.

The System VAT rate is undefined by default, but setting a System VAT rate is easy:

  • Go to Settings > Ecommerce > Advanced configuration > Prices
  • Enter the desired value in the System VAT field (Figure 3.1)
    (You can read more about the settings here)
Figure 3.1 The system VAT rate

In most cases, however, the VAT rates should be defined for – and calculated on the basis of – each delivery country.

For that purpose, you can use the Country VAT settings (see below).

If prices on your products include VAT, the System VAT setting is used to subtract VAT from the product when recalculating VAT.

For each country created on your solution, you have access to the country settings – here you can set the country VAT rate (Figure 4.1).

Figure 4.1 Country VAT

Using the country VAT setting, you can set a general VAT rate for the country.

Any VAT rate set – even 0% – will overrule the System VAT on your solution.

Creating and working with countries, currencies and languages in general is described in the internationalization documentation.

VAT and billing/delivery country

Please note, that per default VAT is calculated based on the billing country. In many cases, it may be desirable or required by law to calculate VAT based on the delivery country. To do so, check the use alt. delivery country when calculating VAT setting under Settings > Ecommerce > Advanced Configuration > Prices. Read more below.

Most countries have some kind of differentiated VAT rates:

  • In 2007, Ireland had 2500 subgroups of products and services, each assigned to either a standard (21.5%), a reduced (13.5%), or an exempt (0%) VAT group.
  • In Denmark, the standard VAT rate is 25%, but newspapers are exempt from VAT, and art has a VAT rate of 5%.
  • 18 EU-member states have lower VAT rates on very specific labor-intensive sectors of the economy.

To help you face the complex reality of VAT in the real world, Dynamicweb Ecommerce ships with the ability to create VAT groups.

With VAT groups, you can create a category – e.g. electronics – and matching VAT rates for each country on your solution.

To create a VAT group:

  • Go to Settings > Ecommerce > Internationalization > VAT Groups
  • Click New in the toolbar to open the VAT group window (Figure 5.1).
Figure 5.1 Creating a VAT group

From here, you must:

  • Name the VAT group – e.g. Danish VAT
  • Optionally provide a native name for it – e.g. MOMS in Danish
  • Select the type – either Default or Provider. Dynamicweb does not ship with any VAT providers, but you can create custom VAT providers.

In the country rates section enter the appropriate VAT rate for each country on your solution (or leave blank to use the country VAT).

You can read more about reverse change for VAT under "Advanced VAT settings" in this article.

Once created, you can set the VAT group manually on each product or set up a default VAT group on a product group level.

Not only may VAT rates for a particular VAT group be different from country to country, occasionally a product may also be classified differently.

A beverage, for instance, may be classified as wine in Denmark (taxed 25% in DK and 10% in United States), but spirits in the United States (taxed 25% in DK and 15% in the United States). In that case, assigning the product to either VAT group would result in one wrong VAT rate being applies to it during checkout.

The VAT group matrix allows you to explicitly set the VAT group for a product on a per-product basis, depending on the country (Figure 6.1)

Figure 6.1 A VAT group matrix

You can access the VAT group matrix for a product from the product details ribbon bar.

From the Settings area you have access to a number of advanced settings (Figure 7.1) to further control VAT behavior on your solution.

To access them, go to Settings> Ecommerce > Advanced configurations > Prices.

Figure 7.1 The advanced VAT settings

With the advanced VAT settings, you can:

  • Set the System VAT rate
  • Check use VAT group rate as system VAT box, if you have prices with differentiated VAT in your database, and use VAT groups. This ensures that the right VAT rate is subtracted from your product price.
  • Check the Prices in the database include VAT if that is your setup.
  • Enable or disable rounding of prices including VAT
  • Check the Calculate % shipping fee including VAT to add VAT to the shipping fee. Usually, VAT is not added to shipping (since postage is usually exempt from VAT), unless the shipping fee is also meant to cover packaging and handling.
  • Check the use alt delivery country when calculating VAT if you want to calculate VAT based on the delivery country, rather than the billing country. In many cases, this is required by law, but check with your local VAT authority to confirm.
  • Check the Calculate payment fee from price including shipping fee, if you want payment fee calculations to include shipping fees. If unchecked, payment fees are calculated based on the order total before shipping.
  • Allow/disallow a negative total order price. When unchecked, discounts and vouchers can never result in a negative total order prices.

You may also activate VAT for payment and shipping fees. These are calculated based on the country VAT rate.

Prices in the database include VAT

The Prices in the database include VAT setting is basically an instruction to the system which tells it to:

  1. Substract the system VAT rate from all prices in the database
  2. Add the other VAT rates as they apply - country VAT and VAT Group rates

So if you have a product with price 100 incl VAT in the database, and the system vat rate is 25%.

  1. 25% is subtracted. Price = 80
  2. Country VAT is applied:
    1. DK (25%). Price = 100
    2. Germany (10%). Price = 88

The Reverse charge for VAT checkbox allows you to disable VAT for a particular product group, all the way from the product catalog, through checkout, and in the final order. This is primarily relevant for B2B scenarios where legislation requires VAT to be handled by the buyer, and not collected by the seller.

See for instance VAT practice SKM2014.622.SKAT for Danish law, and the corresponding EU legislation for cross-border VAT.

The checkbox only opens the possibility of disabling VAT on a product or service – to actually make it happen, it must be set in the context too, either by using both the query string parameters:

  • ReverseChargeForVat=<True|False>
  • ReverseChargeForVatToken=<Token>

The token is unique and generated from session to session, using the tag Global:eCommerce.ReverseChargeForVatToken, e.g.:

  • domain.com/Products.aspx?ReverseChargeForVat=True&ReverseChargeForVatToken=<!--@Global:eCommerce.ReverseChargeForVatToken-->

You may also use razor to set the context manually, which is a bit simpler:

Dynamicweb.eCommerce.Common.Context.ReverseChargeForVat = true;

If you need to know the state of an orderline regarding reverse charge, you can use tag Ecom:Order:OrderLine.ReverseChargeForVat to return either true or false.

In addition to VAT, Dynamicweb ships with a system for handling taxes in general, e.g. sales taxes in the US – one of the few countries with conventional sales taxes – or extra taxes on e.g. alcoholic beverages, fossil fuels or luxury goods, separate from a standard VAT rate.

To do so, Dynamicweb allows you to do two things:

  • Integrate with an external tax provider service. Dynamicweb currently ships with an Avalara Tax Provider for the US domestic market
  • Create flat-rate taxes and apply them on a country- or region-basis, on all or only selected products or product groups

To create a tax:

  • Go to Settings Ecommerce Product Catalog Taxes
  • Click New in the toolbar to open the tax settings window (Figure 9.1)
Figure 9.1 Creating a tax

From here you must:

  • Name the tax – this name will be used in the frontend, unless you’re using an external tax provider
  • Activate or deactivate the tax on your solution
  • Select the countries and regions a tax should apply for
  • Select a tax provider and fill out any associated parameters

Currently, you have access to the default provider – the Avalara Tax Provider – and the Flat rate tax provider.

Before using taxes, we recommend setting a default country for your website. To do so, go to your website settings and click Ecommerce in the ribbon bar to open the default Ecommerce settings for your website, and select an appropriate country.

Read more about working with languages, countries, currencies and more in the Internationalization documentation.

The Flat rate tax provider is Dynamicweb’s own provider for assigning taxes to an order.

When selected, you will have access to the parameters for the provider (Figure 10.1).

Figure 10.1 The Flat Rate tax provider

With the parameters, you must:

  • Enter a number in the amount field, and decide if the amount type is fixed or a percentage
  • Select either all products in a particular shop or select any number of products and/or groups

Apart from the Flat Rate tax provider, the Avalara tax provider is available for US domestic scenarios.

Database

These are the database tables associated with VAT and Tazes in Dynamicweb:

EcomVatGroups

Contains vat group (VatGroupId) setup from Settings -> Ecommerce -> Internationalization -> Vat groups and translations of them (VatGroupLanguageId).

Field name Data type Length
VatGroupId nvarchar 50
VatGroupName nvarchar 255
VatGroupLanguageId nvarchar 50
VatGroupVatName nvarchar 255
VatGroupConfigurableVatProviderSettings nvarchar Max
VatGroupAutoId int 4

EcomVatCountryRelation

Defines which vat group translations (VatCountryRelaGroupId, VatCountryRelLangId) are active for a country (VatCountryRelCountryId).

Field name Data type Length
VatCountryRelGroupId nvarchar 50
VatCountryRelCountryId nvarchar 3
VatCountryRelLangId nvarchar 50
VatCountryRelVat float 8
VatCountryRelAutoId int 4
VatCountryRelReverseChargeForVat bit 1

EcomTaxSettings

Contains setup data for taxes from Settings -> Ecommerce -> Product catalog -> Taxes.

Field name Data type Length
TaxSettingId int 4
TaxSettingName nvarchar 255
TaxSettingActive bit 1
TaxSettingProviderSettings nvarchar Max