If you are reading this then you may be concerned whether you are charging tax correctly for shipping. Over and under charging are both issues, so how do you work this out?
It depends on what country you pay tax in. Some countries use a standard rate for shipping, but at least in the UK and Germany, shipping tax is based on what is being delivered. In the case of the UK, HMRC are quite clear on this (see this source for German tax)- if you are charging for shipping and once paid for you are obligated to actually deliver it (i.e. after they pay you can’t decide to make them pick it up), then the tax rate on the shipping is the same as the products that are being delivered.
So if all your products have the same rate, whether 20%, 0% or some special 5% rate because you sell carrycots with restraint straps (just one real example), then it’s easy; your shipping should be charged with that rate of tax as well. Tax free products have tax free shipping, standard rate products have standard rate tax on sipping, and carrycots with restraint straps can be shipped with 5% shipping tax.
When you sell products that have different VAT rates, this gets a little more complicated. If 1/2 of the value of your products in an order has 0% tax and 1/2 of the value of the products are 20% then 1/2 of your shipping charge has 0% tax and 1/2 of it has 20% tax.
If you have set a price of £10 for your shipping exclusive of VAT, then the total charged to the customer should be £11 (£10 + 20% of £5 in tax). You may not want to show variable total shipping rates to your customer, so perhaps you fix your inclusive price and adjust how much of that is presented as tax. So if you had set your shipping to always be £12 then is 0% rated products are delivered then the exclusive shipping price is £12; if 20% rated products are delivered then £2 is tax and £10 is the exclusive price; if you have 1/2 and 1/2 then £1.10 is tax and £10.90 is the exclusive price.
As to the practical question of how you get Magento to set the correct tax, you’re fine if you have products which all have the same tax rate, but Magento cannot handle adjusting shipping tax to be pro-rata based on ordered products. You may be unsurprised to know (given that we’ve written this blog post) that C3 Media have extensions for Magento 1 and Magento 2 that provide just this capability.