Skip to content
Falka Get in touch

Connecting to Exact Online

Exact Online has an extensive API, and a handful of rules that shape the design of your integration.

Getting access

An Exact Online integration starts with an app. You register it in the App Center, under Manage and Apps, choosing whether it is public or only for yourself. Exact gives you a client ID and a client secret, and you set the address Exact returns the user to after signing in.

Sign-in then runs on OAuth 2.0. Your software sends the user to Exact, the user signs in there and grants permission, and your software receives a key that has to be refreshed periodically. Your software never sees the user's password.

One thing catches almost everyone the first time. Until Exact has reviewed your app, it only works with users from the same Exact environment that created it. So if you are building for a client, you either create the app inside that client's environment, or you plan around the review before you can test anywhere else.

Exact runs a separate address per country. A Dutch administration is reached on the Dutch address, which is not the Belgian or the German one. If your client operates in several countries, that is a design decision rather than a detail.

The limits that shape the design

Exact Online allows 60 calls per minute, and 5,000 per day per app per administration. The daily counter refills after midnight in the administration's own time zone. Once you hit the limit, Exact refuses further requests with a 429.

Five thousand sounds generous and is not. An integration that asks every fifteen minutes whether anything changed spends 96 calls a day on that question alone; if it then fetches the customer and the lines for each invoice it found, a few hundred invoices bring the ceiling into view.

The way out is in the design. Let Exact tell you what changed instead of repeatedly asking, fetch several records per request, and keep what does not need retrieving every time. Work that out after the integration is running and you build it twice.

Where integrations get stuck

Four quirks come up in nearly every Exact project. None of them is a problem as long as it is in the plan.

  • Every call belongs to a division, the administration number inside Exact. If your client has several administrations, your software has to know which one applies and the user has to be able to pick
  • Related data does not come along in one request. An invoice with its customer and its lines costs several calls, and all of them count towards the daily ceiling
  • Each request returns a limited number of records, after which you ask for the next page. Large extracts are therefore always a series of requests
  • Matching payments against invoices has no endpoint of its own in the REST API. Automating that means building the logic yourself from the underlying data

What we build here

We build Exact Online integrations as part of custom software, an online store or a client portal, and as standalone work. Think of orders landing in Exact as sales invoices, hours passing through as invoice lines per period, or a portal that shows a client their outstanding items.

In the intro call we start with your administration, your subscription and the number of entries per day. That tells us whether the daily ceiling matters and who needs to create the app. After that you get a proposal with one price and one delivery date.

Sources

Frequently asked questions

Does every Exact Online subscription include API access?

Not automatically. Exact offers the API broadly, but what you can reach depends on the modules in your subscription: if a module is off, that data does not exist for the integration either. Check it with your Exact administrator or your accountant before anything gets built.

Who should create the app, you or us?

Either works, and it depends on who maintains the integration afterwards. If you create it, the key stays yours and you can revoke access at any moment. That is our preference, and we walk you through the steps.

How long does Exact's review take?

That timeline sits with Exact and we cannot promise anything about it. Plan for it as soon as the integration has to work at more than one customer, rather than at delivery.

What happens if we hit the daily ceiling?

Exact refuses further requests until midnight. An integration built for that puts the work in a queue and carries on the next day without losing anything. One that ignores it drops entries silently.

Does this work with Exact Globe or Exact Compact?

Those are different products, running on your own server rather than in the cloud. Connecting is possible, but along a different route than the one described here. Mention it in the intro call and we will look into it.

Read on

What would this cost you?

Send a short description of what you want built. You get a proposal back with a fixed price.