Exact Online is the most widely used accounting software in the Netherlands. And also the software where we encounter the most manual data entry. Invoices arriving by email, manually opened, checked, retyped, and booked. With 200 invoices per month, that's 40 hours of work. Every single month. For one client with 300 invoices, it was even worse: a full-time employee did nothing but process invoices.
How the integration works
The flow we build: incoming invoices (via email or upload) are automatically read by an AI model. The model extracts supplier, invoice number, date, amounts, VAT, and line items. That data is validated against the supplier list in Exact Online and created as a draft booking via the Exact API.
The employee receives a notification with a summary and only needs to confirm or handle exceptions. The retyping is eliminated entirely. For standard invoices from known suppliers, the flow is fully hands-off: the booking appears as a draft in Exact and the employee just clicks "approve."
The technical stack
We use GPT-4 via Azure OpenAI for document extraction. Not because it's the cheapest option, but because it's by far the most reliable on unstructured invoices: handwritten notes, varying layouts, multilingual documents. Accuracy is above 99% on structured invoices and around 95% on the messy ones.
We also experimented with open-source models and Amazon Textract. Textract is good for structured documents but fails on handwritten or unusual layouts. Open-source models weren't reliable enough for production use. GPT-4 via Azure was the only option that performed consistently enough, and because it runs via Azure, the data stays within the EU.
n8n serves as the orchestration layer: it receives the email via IMAP polling, detects PDF attachments, sends them to the AI, receives structured data back, validates against Exact Online, and creates the booking. For validation errors (unknown supplier, deviating amount, missing VAT number), a notification goes to the accountant with the details of the problem.
The Exact Online API: what you need to know
The Exact Online API is functional but has quirks. OAuth2 tokens expire after 10 minutes and must be automatically refreshed. The API has rate limits of 60 requests per minute per division. And some endpoints don't accept batch operations, so you have to create invoices one by one.
We built a wrapper that handles token refresh, retry on rate limits, and error handling automatically. We now use that wrapper for all Exact Online integrations. It saves hours of debugging on every new project.
What it delivers
For a client with 300 invoices per month, processing time dropped from 60 hours to 4 hours. The error rate dropped from 3.8% to below 0.5%. Monthly costs for the AI processing: approximately 15 euros in API costs. The savings: two weeks of human work per month.
But it's not just about hours. The accountant who used to retype invoices now spends her time on financial analyses and client advice. The work has become more interesting. Error rates have dropped. And invoices are processed faster, which improves cash flow because payment terms start sooner.
Our experience after multiple implementations: ROI is positive from month two. The implementation costs are recouped in saved hours, fewer errors, and faster processing. With 200+ invoices per month, it's no longer justifiable to do it manually.


