Bookkeeping

Connecting a Webshop to Exact Online: Options, Costs and Pitfalls

If you run a webshop and keep your books in Exact Online, you know the pattern: an export from the shop at the end of the month, an hour of cutting and pasting, and then hoping the VAT is right. A connection removes that. But “connecting a webshop to Exact Online” means five different things in practice, each with its own costs and its own pitfalls. This article puts them side by side so you can choose based on your situation rather than on the first ad you see.

What does a connection actually need to do?

Before comparing options, it helps to define what must arrive in Exact Online for each order. Exact does not work with a list of amounts but with bookings that land on a journal, a ledger account and a VAT code. A good connection therefore delivers, per order:

  • a sales invoice in the sales journal you choose, with the customer as a relation
  • line items with the right VAT rate per line (standard 21%, reduced 9% and 0% can all appear in one order)
  • shipping costs and discounts on their own ledger account, so revenue and discounts stay readable separately
  • for a return, a credit note for the amount actually refunded, even when that is only part of the order
  • the payment, so the invoice can be marked paid in your receivables and your bank reconciles

If one of these is missing, your accountant will run into it at quarter end. Use this list as a test for every option below.

Option 1: manual entry or CSV import

The cheapest route is also the most common. You export orders from your shop, convert columns and import them into Exact Online, or you key in the daily revenue as a general journal entry.

What works: it costs nothing extra and you keep full control. What does not: you often book a daily or weekly total instead of one entry per order. Then you cannot find an individual invoice, cannot link a return to the original sale and cannot see a customer in their own receivables card. With a few orders a day that is workable. With dozens a day it is a part-time job.

Option 2: an app from the shop builder or an app store

For many platforms a ready-made plug-in or app exists that writes orders to Exact Online. That is the fastest start if your combination of shop and Exact package is actually supported.

Check these points before you sign:

  • Does the app support your platform and your version, or only a previous generation?
  • Does every order become its own sales invoice, or a summary booking?
  • How does it handle several VAT rates in one order and sales to other EU countries?
  • What happens with a partial refund?
  • Does the plug-in run inside your shop (and can it slow down under load), or outside it?

Prices differ per vendor and change regularly. Always ask the vendor for the current price and work out what an extra channel, an extra administration or a second shop costs.

Option 3: a generic automation tool

Tools that run “if this, then that” scenarios can forward a new order to Exact Online. For a simple situation, say one VAT rate and no returns, that works.

It gets hard once the accounting rules join in. A scenario that forwards an order does not know by itself that shipping has its own ledger account, that a discount must be booked separately or that a partial refund needs a credit note for exactly that amount. You build that yourself and maintain it yourself. Also expect errors that disappear quietly: a scenario that fails rarely produces a message your accountant will see.

Option 4: build it yourself on the API

Exact Online has a REST API and authorises with OAuth 2. A developer can build their own connection. That gives maximum freedom, but it is more work than it looks:

  • Access tokens are short-lived and must be renewed with a refresh token. If that goes wrong once, the connection stops.
  • Exact applies limits on the number of calls per minute and per day per administration. A shop with a peak day must handle that gracefully. The current limits are in Exact’s documentation.
  • The API works per administration (division) and per region; the addresses differ between countries.
  • Every change in your shop, in the VAT rules or in your Exact setup is another job for the builder.

Building it yourself is defensible if your volume is high and you have a permanent developer. For most webshops the maintenance is the hidden cost.

Option 5: a connection that follows your booking rules

Schakel is an example of the fifth route: a service that runs outside your shop, reads your orders and books them as sales invoices in Exact Online on the administration, journal, ledger accounts and VAT codes you point it at. Returns become credit notes for the amount actually refunded, and you see the first bookings in an overview before they are final.

For the combinations where this is worked out, the details are on the WooCommerce Exact Online integration and Magento Exact Online integration pages. An overview of all Exact Online connections is on the Exact Online page.

The pitfalls that come back with every option

Whichever route you choose, these are the places where it goes wrong in practice.

VAT per line, not per order. An order with a book (9%) and a separate product (21%) has two rates. A connection that applies one rate per order books the VAT wrong. Check this with a test order before going live.

Prices including or excluding VAT. Shops show consumer prices including VAT, Exact books net with VAT separately. The conversion must be right at line level, otherwise cent differences appear that you will see again in your VAT return.

Sales to other EU countries. Above the threshold of 10,000 euros a year in cross-border B2C sales within the EU, the rate of the customer’s country applies and you report through the OSS. Your connection must be able to remember the destination country. More on the rules is on our page about OSS VAT for webshops, with references to the Dutch tax authority.

B2B with a VAT number. A business customer in another EU country with a valid VAT number gets reverse-charged VAT. That is a different VAT code in Exact, and the VAT number must be on the invoice.

Duplicates and gaps. A connection that runs twice books the same order twice. A connection that stalls leaves a gap. Ask how the solution prevents duplicates and how you can see a failed booking.

Bookings in a closed period. If you have closed a period in Exact, a late return cannot land there any more. Decide in advance on which date such a credit note is booked.

Retention obligation. Under the Dutch tax retention rules you must keep your administration for seven years. A connection that only keeps data in an intermediate layer is not an archive: the invoice has to be in Exact itself.

How to choose

  • A handful of orders a day, one VAT rate, no returns: CSV or a general journal entry is enough.
  • A common platform with a usual setup: start with an app for your platform and test it against the five points at the top of this article.
  • Several VAT rates, returns, EU sales or several channels: choose a solution that books per order and follows your journals and VAT codes.
  • A permanent developer and a unique situation: building on the API is possible, provided you count the maintenance.

Whichever route you choose, start with a trial on a small number of orders and have your accountant check the first bookings. Want to see how Schakel approaches it? You can try it free for 30 days, and the pricing is on the site.

Want this handled automatically? Pick your connector.

Back to the blog