maesn

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.

Official Exact Partner
Official Exact
Partner
YOUR PRODUCT+26
Trusted by winning software teams
HubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicapHubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicap
Why it is fast

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.

Exact Online: One app per region

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.

Exact Online: The app is private until published

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.

Exact Online: Every call belongs to a division

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.

Customer voice

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.
Saad Abouyahya
Strategic Partnerships, Tipalti
Why companies choose Maesn

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.

01

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.

02

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.

03

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.

App Store and partnership

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.

Official Exact Partner
Official Exact
Partner

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.

What the App Store listing does for you

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.

Authentication

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.

Auth method
OAuth
Your own app, per region

One integration, whichever region your customer is in. Maesn holds the credentials and the division behind it.

What Maesn holds for you
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.

How your customer connects
  1. 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. 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. 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.

Staying in sync

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.

Resources9 available
AccountsBank accountsBillsCustomersExpensesInvoicesJournal entriesPaymentsSuppliers
Event types2 available
UpdatedDeleted

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.

Before you start

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.

The data model

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.

Exact Online FAQ

Exact Online API questions

What is Exact Online?

Exact Online is a cloud accounting platform and the market leader in the Netherlands and Belgium, covering bookkeeping, invoicing, purchasing and project administration. For a software team the relevant part is its shape: it runs as separate regional environments, and data inside one belongs to a division rather than to the account.

Do I need my own Exact Online app?

Yes, and it is registered per region. You create it in the Exact App Store portal under your product's name and set the redirect URL for that region, then submit the client id and secret to Maesn once. Registering it under your own company is what puts your product's name on the consent screen your customers see.

Which Exact Online regions can I reach?

The documentation describes regional apps with their own callbacks for the Netherlands, Germany and the United Kingdom, and Maesn holds each as its own target system. From your side that difference disappears: one interface, one account key, and the region is a property of the connection rather than a branch in your code.

Why can only my own account connect to my Exact Online app?

Because the app has not been published yet. An unpublished Exact app authenticates for the account that created it and for nobody else, which is fine for building and blocking for onboarding. Publishing runs through the App Store review, and Maesn goes through it with you as an official Exact partner.

Does Exact Online support webhooks?

Yes, for nine objects: accounts, bank accounts, bills, customers, expenses, invoices, journal entries, payments and suppliers. Exact sends two event types, updated and deleted, and you subscribe to a resource rather than to a resource and event pair. Contacts arrive split into a customer or a supplier. Maesn registers the subscription per connected customer and normalises the payloads.

How do I find new Exact Online records without a created event?

By reading. Exact's event set covers updates and deletions only, so anything new is picked up by a filtered read on a schedule, which is the same call you already run against the systems that send no events at all. The difference on Exact Online is that it is a smaller job, because everything that changes afterwards does arrive as an event.

Can I delete records in Exact Online?

Bills, payments and vendor credits, yes, and Exact Online is the only system in the catalogue where a delete is supported at all. Everywhere else corrections and cancellations are posted as new documents, so if your product relies on deleting, build the correction path anyway and treat this as the exception.

Which data can I read and write in Exact Online?

23 objects are readable, which is the widest coverage of any system here: accounts, bills and bill lines, contacts, customers, dimensions, expenses, goods receipts and their lines, invoices, items, journals, journal entries, open items, payments, payment terms, projects, purchase orders and their lines, suppliers, tax rates, units and vendor credits. 14 are writable and five updatable in place. Objects marked on demand are available on request.

Why integrate Exact Online through Maesn instead of directly?

Because the work does not stop at Exact Online. Direct means owning an app per region, the App Store review before anyone can onboard, a division on every call, a webhook subscription per customer and every future breaking change, for one system. Through Maesn you build once against one data model, and every other supported accounting and ERP system is then reachable on the same interface.
Ship your ERP and accounting integrations. Connect once.
Book a demo