When someone types "exact online api", they usually aren't looking for a product page but a concrete answer: can my process use this, and what will it cost. This article provides that answer: what the APIAn agreed connection point with which two systems can read and write each other's data, without anyone having to type anything over. is, what you can and cannot do with it, how authentication works — and why it fails more often than you'd think — and in which steps you arrive at a working integration.
What exactly is the Exact Online API?
Exact Online, like AFAS, has no separately sold product called "the API" — the interface is standard in every Exact Online environment. The difference with AFAS lies in the technology. Exact Online works with a REST/JSON-API and secures it with OAuth 2.0 instead of a standalone token. In practice, that means you register an app in the Exact App Center, the customer grants one-time permission there, and you get a access token that 10 minutes is valid plus a refresh token which you use to automatically retrieve a new access token. At Exact, each set of accounts is called a "division" and has its own scope: if a customer has three sets of accounts, you make three calls to the same API, each under a different division number.
What can the Exact Online API do?
Pretty much everything you see in the Exact OnlineAccounting and ERP software in the cloud, widely used in Dutch SMEs. screen is also accessible via the API: relations and contacts from the CRM, quotes and sales orders, purchase orders and purchase invoices, inventory and articles, hours and projects, journal entries and general ledger accounts. With this you integrate Exact Online in practice with a webshop such as Shopify or WooCommerce, with Microsoft 365, with a time tracking package or with a planning tool.
The most important difference with AFASDutch ERP package for administration, HR and payroll. Many SMBs have their single source of truth in it.: Exact Online supports for a limited number of subjects real webhooks. If a sales invoice, purchase invoice or item changes, Exact Online immediately notifies your integration, instead of you having to check every so often. For everything else, it works like most accounting packages: you retrieve and send data on a schedule. For a one-time, full data extraction when starting an integration, Exact Online has standalone synchronization endpoints that don’t count toward the regular daily limit.
| Situation | Resource in the API | Direction |
|---|---|---|
| Show invoices in a customer portal or dashboard | SalesInvoices (retrieve) | From Exact Online |
| Send inventory levels to an online store | Items / inventory data (retrieve) | From Exact Online |
| Automatically create a sales order from a webshop order | SalesOrders (write) | To Exact Online |
| Convert time records into invoice lines | HoursItems → SalesInvoiceLines | To Exact Online |
| Automatically notify another system when an invoice changes | Webhook on SalesInvoices | From Exact Online, in real time |
The way it works now
- The appointment is in one colleague's mailbox
- Data is manually retyped from one system to another
- The person who knows is on vacation
- No one can see afterwards why this decision was made
As it is
- The agreement is stored with the client, findable for everyone
- Once entered, information flows through to the rest
- Work continues, even if someone is absent
- Every decision has a source, an owner, and a date
What can’t the Exact Online API do?
Four limits come up most often in practice. There is a limit on the number of calls: maximum 60 per minute, and a daily limit that starts at 5,000 and increases with the number of user licenses. For a one-time complete read-out, use the separate synchronization endpoints instead of the regular resources. The refresh token is furthermore usable once: if you don't save the replacement token right away, the integration will stop working within 30 days at the latest, until the customer gives permission again. Webhooks aren't available for everything — you still have to retrieve most changes rather than receive them. And the API never lets you bypass the accounting rules or VAT logic of the package itself: what isn't allowed through the screen isn't allowed through the API either.
The practical test: explicitly ask your integration developer how refresh-token rotation is handled. If someone replies, "we’ll renew it if something goes wrong," your integration could be down for a day before anyone notices.
Webhook or fixed schedule: which should you choose for your process?
The choice depends on how quickly a change needs to be reflected elsewhere. If a customer must immediately see an order confirmation after the invoice is created in Exact Online, then a webhook is the right choice. If an inventory level needs to match a few times a day, then a fixed schedule is sufficient and easier to maintain.
A calculation example: if you synchronize three resources every quarter hour, that is four times per hour, 96 times per day and just over 2,900 calls per month — well within the daily limit of most licenses. If you use instead a webhookA message that a system automatically sends as soon as something happens, so the other system can respond immediately. for sales invoices, then Exact Online sends a notification only when something really changes: faster, and more economical with your calls.
Build a working integration through the Exact Online API in five steps
- Choose one process, not everything at once.Start where the most manual work happens: usually from webshop to invoice, or from hours worked to invoice.
- Register an app in the Exact App Center.Request OAuth access there and have the customer grant one-time permission for the correct administration.
- Build and test with a test administration.Start by running it alongside a limited dataset, so errors stay small and visible before it goes live.
- Choose a webhook or a fixed schedule for each resource, and set up error handling.Agree who gets notified if a record doesn't sync or a token doesn't refresh automatically.
- Hand everything over.App registration, source code, documentation and token management are handed over to your own team. You're not tied to the developer.
Allow two to six weeks from kickoff to go-live, depending on the number of resources and whether you use webhooks.
What does this mean for ownership of your connection?
Because the app registration and the tokens are in the customer's name, ownership is mainly a matter of agreements, not technology. We build these types of integrations via the Exact Online API for organizations with 3 to 250 employees, with a fixed price upfront and complete transfer. If you work with AFAS alongside Exact Online, read Connect AFAS and Exact to your other systems. To see what works differently with AFAS itself, see what the AFAS API can and cannot do. If it’s your webshop, then Connect for webshop integrations see how to connect Shopify or WooCommerce without a separate project. A broader overview is available in integrating systems in SMEs — the pillar this article is built on. Want to see what it looks like as a service, with scope and price upfront? See how we connect systems.
According to Statistics Netherlands (CBS), a large part of Dutch SMEs is now using ERPThe system where your accounting, inventory, purchasing and sales come together.-, CRM- or BI-software and already exchanges some of that data electronically with other parties, as shown in the table ICT use in businesses by company size. That table doesn’t measure whether those packages also communicate with each other automatically — and that’s exactly the difference between using software and getting software to work together.
Frequently asked questions
Does the Exact Online API have real-time webhooks?
For a limited number of topics, yes, such as sales invoices, purchase invoices and items. If something changes, Exact Online reports it directly to your integration. For most other data, the API works like those of other packages: you retrieve and send data periodically, for example every quarter of an hour or every hour.
How long does an OAuth token remain valid in Exact Online?
The access token is valid for 10 minutes. After that, use the refresh token to automatically retrieve a new access token. The refresh token itself can only be used once, and using it returns a new refresh token — if you don't save that immediately, the integration will stop working after 30 days at most, and the customer will have to grant permission again.
How much does a connection via the Exact Online API cost?
Budget € 3.500 to € 12.000 as a one-off cost, depending on the number of fields, the number of directions, and whether you use webhooks or a fixed schedule. The article on what an AFAS integration costs provides a full overview of the six pricing factors—the same factors apply to Exact Online.
Do you need a developer to use the Exact Online API?
To build the integration, yes: someone with experience in REST/JSON and OAuth 2.0. To use it afterward, no — it’s delivered so your own team can manage it without an IT department.
Who owns the integration after handover?
You. The app registration in the Exact App Center, the source code, documentation and access are yours. If you want to continue with another provider later, you can do so without having to start over.
Want to know what an integration via the Exact Online API would deliver in your situation?
Take the free self-assessment and see in two minutes where the most duplicate work is. For a clearer picture, Frisse blik (€ 2.900 excl. VAT, one day on-site, report within a week, fully credited if you continue) maps your process, including a fixed-price integration proposal.
From knowing to doing
This article helps you get oriented. Then look at the concrete approach for exact online integration.