In this guide 6 sections
Wrong tax on web orders has four usual causes. Rates are typed into formulas. Tax follows the billing address, not the destination. Prices mix tax-inclusive and tax-exclusive styles. VAT numbers go unchecked. Dated rule tables, confirmed by your adviser, replace guesswork with something you can audit.
Rates typed into formulas
Open your cart settings, spreadsheet or custom code and search for a number followed by a multiplication; that is a rate typed into a formula. When the country changes its rate, nobody finds every copy, so some products keep the old rate for months. Nobody finds every copy.
Reduced rates make it worse. One flat rate fails early. A food item, a book and a digital download may each carry a different rate in the same country. A single flat rate per country gets some of them wrong on day one.
Keep rates in a table with a country, a product tax class, a rate, a start date and an end date. The cart reads the table on the order date. It reads by date.
- Hard-coded rates in formulas
- One flat rate for every product
- No start or end date on a rate
- Old rate kept for a reissued invoice
Tax taken from the billing address
For most online sales of goods and digital services to consumers, the place that matters is where the customer is or where the goods go. The first address wins. Many carts default to the billing address because it is the first one entered.
A buyer with a billing address at head office and a delivery address in another country is routine for a gift or a company order. The cart must choose by rule, and the rule differs between goods, digital services and business buyers. The rule decides, not habit.
Check which address your cart uses at each step. Keep the evidence. Ask your adviser how the destination is proved, for instance by delivery address, payment country or IP location.
- Billing against delivery address
- Goods against digital services
- Consumer against business buyer
- Evidence kept for the chosen place
Prices shown with and without tax
Shop prices in some markets are expected to include tax, and in others to exclude it. A catalogue that mixes both styles produces totals where tax is added twice or not at all. Customers notice quickly.
Discounts add another trap. Order of steps matters. If a coupon is applied before tax in one flow and after tax in another, the same basket gives two different tax amounts. Shipping is taxed in some places and treated differently in others.
Pick one stored price basis per market, then calculate the other on screen; show the tax line on the order page and on the invoice with the same figures. Show the same figures.
VAT numbers that were never checked
A business buyer in another member state may be able to buy without local VAT if the number is valid and the sale qualifies. A typo can sink a sale. If the checkout accepts any text in the VAT field, the zero-rated order may rest on a typo.
Validate the number against the official lookup service when the order is placed, and save the result with a date and the response. Saving only the number tells an auditor nothing. Save the reply.
Also decide what happens when the lookup service is down. Choose the policy early. Holding the order, or charging tax and refunding later, is a policy your adviser should choose in advance.
- Format check of the number
- Official lookup at order time
- Saved response with date
- Fallback when the service is down
Dated rule tables your adviser confirms
Gather the rules into one table per market: product class, buyer type, destination, rate, effective from, effective until and the adviser’s confirmation date. Checkout reads this table and nothing else. One table, nothing else.
When a rate changes, add a new row with a start date instead of editing the old one. Never edit the old row. Old orders and credit notes then still calculate on the rate in force at the time.
Run a test basket for each country before every change goes live. Your next step: export the last month of foreign orders and compare tax charged against the table row by row. Compare row by row.
Order tax check worksheet
A one-page worksheet for sampling foreign orders. Columns hold order number, destination country, buyer type, product class, address used, rate charged, rate expected from the rule table, VAT number result, price basis and difference. A footer block records the adviser’s confirmation date.
Open a blank worksheet to printQuestions owners ask
Why does a cart charge the wrong tax even with correct rates?
The rate may be right but applied to the wrong place or the wrong product class; check which address the cart uses and whether product classes are set.
Should prices include tax?
That depends on the market and your buyer type; many consumer markets expect tax-inclusive prices, while business buyers often expect them without tax. Pick one stored basis.
Do we need to validate every VAT number?
If you zero-rate a sale because of the number, yes, and keep the proof; Your adviser can say which sales depend on it.
What if a rate changes midway through a month?
A dated rule table handles this. The new row starts on the effective date, and orders before that date keep the old rate.
