Exact Online API Integration
Exact Online is the market leader for cloud accounting in the Netherlands and Belgium, covering bookkeeping, invoicing, purchasing and project administration. Connect it through Maesn and you reach it with the same REST API and the same data model as every other supported system.

An Exact Online integration in days
Exact Online gives you more surface than any other system in the catalogue, and the price of that surface is paid at setup rather than at runtime. Three things have to be settled before the first call. Here is what they are, and what Maesn takes off the table.
Three systems, one interface
Exact Online runs as separate regional environments, and an app is registered in one of them with its own redirect URL. Maesn holds each region as its own target system, so what reaches your code is one interface and one account key rather than a branch per country.
The review runs with us
Until your app is published in the Exact App Store, only the account that created it can authenticate to it. Building and testing is unaffected, onboarding a customer is not possible until then. Maesn is an official Exact partner and goes through the review and the listing with you.
Settled once at connect
Exact scopes data to a division, and a webhook subscription needs it as a query parameter unless the interactive flow has already stored it. Maesn settles it while your customer connects and attaches it from there on.
What reaches your code is a REST call and an account key. Teams go live in days, and the system after Exact Online is a configuration step rather than a second project.
A short call is usually enough to tell whether Maesn fits your use case.
Tipalti entered Benelux without building Exact Online
Tipalti automates the full accounts payable cycle, from supplier onboarding through to global payments. Entering the Benelux market meant reaching the accounting systems its customers there already run, and Exact Online is the market leader in exactly that region.
“With Maesn, we accelerated our European expansion by making complex ERP integrations seamless across Benelux and DACH. As an AP platform, reliable access to key local ERP systems is critical and Maesn gives us exactly that.”


Three reasons to reach the Exact Online API through Maesn
Connecting Exact Online directly is a project you can finish. Finishing it three times, once per region, and then adding the next system is the part that decides your roadmap.
The Exact-specific work stays here
The regional app registration, the division on every call and the webhook subscription per customer are what every Exact Online integration has to solve. Each is solved once, on our side, for every customer you connect.
Depth you can verify
Invoices, bills, payments, both sides of the contact list and the ledger all read here, most of them write, and three of them delete. What matters is whether the ones your use case needs are among them, which is a question our docs answer per object.
The next system costs nothing
Once Exact Online runs, every other supported accounting and ERP system answers on the same interface. Your second integration is a configuration step.
The Exact App Store review comes before your first customer
Most providers stop at the API. Maesn does the technical enablement and the relationship, and on Exact Online the second one is not optional: an unpublished app onboards nobody, so the App Store review is part of going live rather than a marketing step afterwards.

Technical enablement
One integration against the Unified API and one data model, identical to every other system Maesn supports. Your engineers meet the same interface here as they will for the next system.
Partnership support
Maesn is an official Exact partner and takes you through the review and the App Store listing, so the submission clears rather than coming back with corrections.
It is what unlocks onboarding
Before publication only the account that registered the app can connect. Publication is the step that turns a working integration into one your customers can use.
The listing carries your name
The app is registered under your company, so the entry in the Exact App Store is your product's rather than Maesn's.
It reaches the market Exact leads
Exact Online is the market leader for cloud accounting in the Netherlands and Belgium, so a listing puts you in front of a dense rather than a scattered audience.
The app stays registered under your company, so the listing and the partner status are yours. Maesn is the layer behind them.
Maesn is an official Exact partner and prepares the review alongside your integration.
One Exact Online app per region, one account key
Exact Online authenticates with OAuth, and the app your customers authorise is yours rather than Maesn's. What is specific here is that there is not one Exact Online: the platform runs as regional environments, and an app belongs to one of them.
- OAuth
- Your own app, per region
One integration, whichever region your customer is in. Maesn holds the credentials and the division behind it.
- One set of credentials per region
- The client id and secret are submitted once per region and used for every connection in it. The callbacks documented today are the Dutch, German and British ones, and each is a target system of its own here.
- The division on every call
- Exact scopes data to a division, and a division is a legal entity: a group with six subsidiaries keeps six of them, each with its own VAT number and its own call budget. The interactive flow is documented for the Dutch variant, where your customer picks one on a selection page and the choice is stored with the connection. Elsewhere it travels as a parameter, and Maesn attaches it.
One thing to plan around rather than to discover: an app that has not been published through the App Store review authenticates only for the account that registered it, so the first customer you onboard needs that step to be done.
- 1
Your customer starts in your product
You send them into the flow and Maesn opens Exact's consent screen for their region. It carries your app name, because the app is registered under your company, so the connection reads as yours rather than as a third party's.
- 2
Exact returns to Maesn
The redirect URL on your app points at Maesn's regional callback, so the code exchange and the first token happen here instead of in your backend. Where the interactive flow applies, the division is settled in the same pass.
- 3
You work with one account key
Maesn stores the connection and returns an account key. From there every request carries your API key plus that account key, the same two headers you already send for every other system in the catalogue.
Every system in the catalogue authenticates differently, and Exact Online is the case where the protocol is ordinary and the number of instances is not. Unified authentication is what keeps that off your side: the redirect, the selection step and the way the account key is handed back to you are configurable there, and identical no matter which system, or which region of one, a customer connects.
Two Exact Online event types, neither of them create
Nine Exact Online objects reach you as events through Maesn, and they carry exactly two kinds: updated and deleted. There is no created event, which means an event stream alone will never tell you that a record is new.
You subscribe to a resource rather than to a pair, so one subscription returns both types for it. Contacts arrive split, as a customer or as a supplier.
So a sync here has two halves. Updates and deletions arrive as events, per customer, in the same envelope as every other system, and Maesn registers the subscription for you. New records are found by reading, which is the same filtered call you already run against systems that push nothing at all. Events carry the record's ID and no date range, so nothing has to be resolved before it can be routed.
Nine resources is wide, two event types is narrow, and the gap between them is exactly the kind of detail that decides an architecture after the demo rather than before it. One event model means the updates and deletions arrive in the same envelope as every other system, and one way to filter and page covers the half that no event will tell you about. Two paths, both of which you write once for the whole catalogue rather than once for Exact.
What Exact Online asks for up front
Exact Online puts four things in front of an integration, and all of them are easier to plan for than to discover halfway through a build.
- An Exact Online account with administrator rights
- A free regional trial is enough. It exists to hold your app and, later, your partner listing, and it does not have to be an account you otherwise use.
- Your own app, registered in the right region
- You register it in the Exact App Store portal under your product's name and set the redirect URL for that region: the Netherlands, Germany and the United Kingdom each have their own. Then you retrieve the client id and secret and send them to Maesn.
- A publication step before you can onboard anyone
- An unpublished app authenticates only for the account that created it. Building and testing works, onboarding a customer does not, and that is the point teams tend to reach on the day they wanted to demo.
- A division per connection
- Data belongs to a division rather than to an account. With the interactive flow the choice is made once and stored; without it, every webhook subscription carries the company as a query parameter.
We walk through the regional app and the review with you.
One shape for Exact Online, and for the system after it
Exact Online has the widest surface of any system here, and that is exactly what makes the data model matter: the more a platform offers, the more tempting it is to build your product around this one.
Bills, payments and vendor credits can be deleted
Delete is enabled on those three here, which is unusual: on most systems accounting practice pushes you to corrections and cancellations as new documents instead. Build for the correction pattern anyway, because it is what the rest of your integrations will need, and treat the delete as the shortcut it is.
A missing right returns 200 and an empty list
Exact's own response code table says it plainly: a read without the rights for it answers 200 with an empty list. Nothing in that response separates it from a customer who genuinely has no data, so a broken sync looks healthy on every dashboard you own. Check what the user granted before concluding a company is empty, and surface the difference to them rather than to your log.
Whatever you read comes back in the shared common data model, so an invoice from Exact Online has the same shape as an invoice from a system with a third of its surface, and the code you write here is the code you reuse for the next one.
That matters more here than anywhere else, because depth is where an integration built for one vendor usually starts to leak. A wide read surface invites you to model Exact Online instead of the domain, and the moment you do, the next system costs a rewrite. The data model is the thing that stops that, and it is the same one whether a platform offers three objects or twenty.
Tell us which objects your use case needs and we will confirm what is possible.











