Shopify and FreeAgent VAT a penny out: why it happens and how to fix it
You copy a Shopify order into FreeAgent as an invoice, and the total or the VAT is 1p different from what the customer paid. Or FreeAgent shows the VAT as 19.9% instead of 20%. Nothing is broken. Shopify and FreeAgent do the VAT sum in opposite directions, and both round to the penny along the way.
Why the numbers differ
Shopify works backwards from the price. Most UK stores turn on "Include sales tax in product price and shipping rate". Shopify then takes the VAT out of the price with the formula Tax = (Tax Rate x Price) / (1 + Tax Rate). The customer pays exactly the price on the shelf, and the VAT is whatever is inside it.
FreeAgent works forwards from the net price. On an invoice you enter a unit price before VAT, pick a VAT rate, and FreeAgent adds the VAT. FreeAgent rounds the VAT on each line, not on the invoice total, and prices are stored to two decimal places.
Because the net price can only move in whole pennies, some VAT-inclusive prices cannot be hit at all with one FreeAgent line. FreeAgent's own team gave the example of £9.99 including 20% VAT:
- net £8.32 + VAT £1.66 = £9.98
- net £8.33 + VAT £1.67 = £10.00
No net price gives £9.99. On an order with several lines, shipping and a discount, these small differences can add up to a penny or two either way. When people work around it by typing in a VAT amount, FreeAgent can show an odd effective rate such as 19.9%.
Is either one wrong?
No. HMRC's VAT guide, section 17.5 allows VAT to be worked out per line, per unit or on the invoice total, with set rounding rules, as long as you are consistent. Section 17.6 covers retailers.
What matters in practice is that your books match the money. If FreeAgent says £10.00 and the customer paid £9.99, the invoice will not match the payment, and the VAT on your return will be a penny away from the VAT Shopify reports. Across hundreds of orders that becomes a reconciliation job. If you are not sure which method suits your business, ask your accountant.
How to fix it by hand in FreeAgent
- Enter the order lines as normal with net prices and VAT rates, and note the total FreeAgent shows.
- Compare it with the order total and the tax line in Shopify (Orders, open the order).
- If only the VAT is out, add one more line with the item type VAT for the difference, for example minus £0.01. A VAT-type item adds its amount to the VAT total only. FreeAgent describes this item type in its guide to VAT only invoices.
- If the net is out as well, adjust one line's price by the remaining penny, or add a small line for it, so the invoice total equals what the customer paid.
This is fine for a handful of orders. It is slow if you have a busy store, which is why many sellers explain each payout instead of creating invoices.
How Ledgerline handles it
We are building Ledgerline, a Shopify app that sends each paid order to FreeAgent as a sales invoice marked as paid. It does the fix above for every order:
- It builds each line from the Shopify order with the VAT rate Shopify charged.
- It works out what FreeAgent will calculate, line by line, before anything is created.
- If FreeAgent's VAT would differ from the VAT Shopify charged, it adds a line called "VAT rounding (matches the VAT Shopify charged)" for the difference.
- If the total would still differ, it adds one more line for the remaining amount, so the invoice total equals what the customer paid.
We checked this on 15 test invoices in FreeAgent's test environment: every total and every VAT figure matched the Shopify order to the penny. Refunds become credit notes, matched the same way.
Ledgerline is in review for the Shopify App Store and not available yet. Leave your email below and we will tell you once when it is live. For the other options available today, see FreeAgent Shopify integration discontinued: what to do now.
Notify me at launch
Get one email when Ledgerline is live on the Shopify App Store.
We store your email, the shop URL if you give one, and the time you agreed. We use them to send one email when Ledgerline launches on the Shopify App Store, then delete the list. We send nothing else and share it with no one. To be removed at any time, use the delete link we show after you sign up or email kyle@skillmerc.com.
More Shopify and FreeAgent guides
- FreeAgent Shopify integration discontinued: what to do now
- How to record Shopify sales in FreeAgent (step by step, works today)
- How to record Shopify refunds in FreeAgent as credit notes
Ledgerline: Shopify to FreeAgent
Selling on WooCommerce instead?
Our free plugin Skillmerc Sync for FreeAgent sends paid WooCommerce orders to FreeAgent as invoices with VAT, marked as paid. Guides: send WooCommerce orders to FreeAgent and WooCommerce FreeAgent integration options.