Exact Online Integration for Magento 2
Test out this module for Free
Exact Online Integration
Check your email
We've sent a confirmation link. Click it to spin up your demo.
Setting up your demo...
This usually takes a few minutes. You can close this modal or wait for the result — we'll also send you an email when it's ready.
You're in the queue
Position: #
All demo slots are currently in use. You'll receive an email as soon as your demo is ready.
Your demo is ready!
Expires:
Credentials have also been sent to your email.
Something went wrong
We couldn't set up your demo. Please try again or contact support.





Magento 2 Exact Online Integration for Automated Accounting
The Exact Online integration for Magento 2 connects your webshop directly to the Exact Online accounting platform, allowing orders, invoices, and customer data to be automatically synchronized with your administration.
This Magento Exact Online integration is designed for merchants who want to automate their bookkeeping and reduce manual work. Financial data from Magento is transferred directly and accurately to Exact Online, ensuring your accounting always reflects the current activity of your store.
Instead of exporting CSV files or relying on external middleware, this extension synchronizes relevant order data directly with Exact Online via a secure API connection. Customer data, invoice details, and VAT information are structured according to Exact Online standards.
This module is suitable for both merchants and developers and integrates seamlessly with Magento cron and order workflows. This provides reliable automation, clear synchronization insights, and efficient accounting processing.

Automate your Magento accounting
Automatically synchronize orders and invoices from Magento 2 to Exact Online and reduce manual work.
Maintain accurate financial data
Ensure order totals, VAT data, and customer information are processed correctly in Exact Online.
Save time and prevent errors
Avoid manual exports and duplicate data entry between Magento and Exact Online.
Native Magento integration
Built specifically for Magento 2 and fully aligned with Magento workflows, cron processes, and API integrations.

Why a Magento Exact Online Integration Matters
A reliable Magento Exact Online integration ensures your webshop and accounting system work seamlessly together. Without a direct integration, orders often need to be transferred manually or processed via exports, which is time-consuming and error-prone.
With this Magento 2 extension, orders are automatically prepared for processing in Exact Online once they meet the configured conditions. This prevents duplicate data entry and keeps your accounting aligned with actual Magento order data.
For growing webshops, a stable Magento accounting integration is essential. You save time, improve accuracy, and maintain control over your financial processes without increasing administrative workload.
Magento Exact Online Integration without Middleware
This Magento Exact Online integration uses a direct connection to the Exact Online API from Magento 2, without relying on middleware or third-party systems.
This means order data, invoices, and customer information are sent directly from Magento to Exact Online. This ensures faster and more stable processing while eliminating dependency on external platforms.
The module communicates with Exact Online using secure API credentials and stores all synchronization results within Magento. This provides full transparency and allows you to easily analyze and resolve any issues.
This direct approach makes the integration more reliable, secure, and efficient for daily use.


Full Overview and Control within Magento 2
The Exact Online integration provides a detailed synchronization overview within the Magento admin panel.
Administrators can track the status of orders and invoices, including processing states, logging information, and synchronization results.
Common statuses include:
- Pending
- Queued
- Synced
- Error
Each synchronization includes timestamps and details, giving you full insight into all accounting activities and allowing you to quickly resolve any issues.
Additionally, synchronizations can be retried manually or processed in bulk. Developers can use CLI commands to test the connection and monitor synchronization processes.
Reliable Accounting Synchronization for Magento 2
The Magento 2 Exact Online module integrates directly with Magento’s standard order and invoice workflows.
When an order is placed, the extension determines based on configured rules whether it should be synchronized. Once the conditions are met, the order is added to the queue.
Synchronization process:
- Order is created or invoiced in Magento
- Module validates synchronization rules
- Order data is added to the queue
- Magento cron processes the queue
- Exact Online API receives and processes the entry
By using Magento cron, synchronization runs automatically and reliably in the background without impacting your webshop performance.
Only essential data is sent to Exact Online. API credentials are stored securely and the connection can be tested directly from the Magento admin.

How the Magento 2 Exact Online Integration Works
The Magento 2 Exact Online integration automatically synchronizes data between your webshop and Exact Online. Orders from Magento are converted into sales entries in Exact Online, including VAT breakdown, ledger accounts, and customer data.
Synchronization runs via a direct API connection and can be executed automatically through a queue or cron process. This ensures your accounting stays up to date without manual intervention.
The following data is synchronized:
- Invoices and credit memos
- Customer data and debtors
- VAT distribution and ledger accounts
This reduces manual work, minimizes errors, and ensures efficient accounting processing.
Error Handling and Logging within Magento 2
All communication with Exact Online is logged within Magento. If an error occurs during synchronization, you can immediately see what went wrong and easily retry the process.
This logging provides full control over the data flow between Magento and Exact Online and allows issues to be resolved quickly without impacting your administration.
Administrators can monitor, retry, and review synchronization statuses. This is especially valuable for stores with higher order volumes or more complex accounting setups.
Thanks to this transparent error handling, the Magento 2 Exact Online integration remains reliable, manageable, and suitable for daily use in professional webshops.
Advanced Magento 2 Exact Online Integration Settings including OSS and VAT Mapping

The Magento 2 Exact Online integration includes advanced configuration options for accurate VAT handling, ledger mapping, and international tax compliance. You can define default tax classes, map VAT rules, and configure fallback settings to ensure every order is processed correctly in Exact Online.
For EU-based stores, the extension supports OSS (One Stop Shop), allowing VAT to be handled per country while reporting centrally. Country-specific mappings ensure accurate tax allocation and correct cost center assignments.
Additionally, advanced ledger mapping provides full control over how transactions are booked in Exact Online. This makes the integration highly suitable for complex Magento 2 setups with multiple VAT rates, regions, and accounting requirements.
Benefits for Developers
- Clean Magento 2 architecture without core overrides
- Direct API integration with Exact Online
- Extensive logging for debugging and monitoring
- CLI commands for testing and validation
- Suitable for high order volumes through queue processing
- Compatible with Hyvä and standard Magento themes
What Merchants Need to Know
- Automatic synchronization of orders and invoices
- Less manual bookkeeping and fewer errors
- Full overview within the Magento admin
- Reliable processing via Magento cron
- Secure API integration with Exact Online
- Specifically developed for Magento 2 webshops
Frequently
Asked Questions
A list of the most frequently asked questions from the Exact Online Integration extension for form.
How does the Magento Exact Online integration handle multiple administrations?
How are synchronization errors handled?
What type of entries are created in Exact Online?
Can I configure ledger accounts and journals?
Does the integration support different payment methods and VAT rates?
Is the Magento Exact Online integration suitable for complex stores?
Knowledgebase
All familiar Help articles
A list of the most frequently asked questions from the Exact Online Integration extension for . We've tried our best to help you with the installation, configuration and troubleshooting. If you do not find the answer you were looking for, you can always send us a message through this form.
Installation articles
Installation using Composer (recommended) Installation using the Adobe MarketplaceConfiguration
Changelog 1.2.0 is released on 3 November 2026
Our plugins are regularly updated to ensure compatibility with the latest Magento release.
-
Features:
- Cached ledgers, journals, cost centres and VAT codes are scoped to the administration instead of to a hash of the client id, so reconnecting keeps them and two administrations behind one app registration no longer share them; existing rows are re-scoped on upgrade.
- Added an option to rebuild the invoice and credit memo lines from Magento just before they are sent, so changes made after queueing are included; lines edited by hand in the order tab are never overwritten (Advanced > Recalculate, enabled by default).
- Added error classification, so a failed call says whether sending it again could help. Improvements:
- Retries use exponential back-off that honours Retry-After and the rate limit reset, and never repeat a create that Exact Online did not refuse outright. Bugfixes:
- The CLI commands take their services through proxies, so a fresh Magento installation with the module present no longer loads the Exact Online services before the store configuration exists ("The default website isn't defined" during setup:install).
- "Select All" on the invoice and credit memo queue grids acts on exactly the rows the grid shows, within its filters; with Accounting Base before 3.0.8 a select-all resolved to nothing or, for a remove, to the whole table. Needs Accounting Base 3.0.8.
- The synchronisation is scheduled on a fresh install; the frequency had no default, so the job waited until someone opened the configuration and saved it.
- The synchronisation schedule is read straight from the frequency the admin sets instead of from a copy written on save; the copy is removed on upgrade, and clearing the frequency now stops the synchronisation.
- Fixed the synchronisation schedule being written empty, which stopped the cron from running.
- Records that failed once are retried on the next run.
- A queue record put back on pending no longer posts a second sales entry for the same invoice; Exact Online is asked first whether it already holds one.
- A sales entry Exact Online rejects outright is marked failed on that run instead of three runs later.
- A response outside the 2xx range is no longer read as a successful empty result, which marked a sales entry as synced without an Exact Online GUID behind it.
- The rate limit retry no longer triggers on the digits "429" appearing in an entry number or amount, which could send a sales entry twice.
- A session Exact Online stops accepting before its stored expiry is refreshed once and the request resent, instead of failing every document in the run until that expiry passes.
- The connect flow asks the configured endpoint which division a token belongs to, instead of always the live Exact Online.
- The exchange rate is applied to the amount instead of to a formatted price string.
- A line without VAT for a Dutch customer is booked under the "no VAT" code; because that code is "0" it was read as unset and the line went on with the standard-rate code, so Exact Online added 21% to a tax-free amount.
- Each sales entry line carries the VAT amount Magento charged, instead of leaving Exact Online to recompute it from the net amount; the per-line rounding there booked a €57,00 invoice as €57,01.
- Refreshed tokens are stored at the scope the connection was made at. A sync for one store view on a connection made at default scope saved them as a store override, and because Exact Online retires the refresh token it just replaced, every other store view and every CLI command then failed with "Old refresh token used" until someone reconnected.
- `accounting:check:exact` asked for a resource that does not exist and always failed with a 404; it now lists sales entries, and `--id`, `--top` and `--skip` are passed on. Tests:
- An architecture test refuses a CLI command dependency that is not wired as a proxy in di.xml.
- Added a unit test harness, contract tests against the pinned Exact Online resource reference with a weekly check that reports when Exact Online changes it, and an end-to-end flow suite against a stand-in Exact Online API reached through a hidden developer setting.
- Added end-to-end flows for "Select All" on the queue grids (sync, skip, and remove within a filter); static analysis raised to PHPStan level 2 with its findings closed. Compatibility:
- Magento 2.3.x and up
- PHP 8.1 and up
- Accounting Base ~3.0.8
-
Features:
- Cached ledgers, journals, cost centres and VAT codes are scoped to the administration instead of to a hash of the client id, so reconnecting keeps them and two administrations behind one app registration no longer share them; existing rows are re-scoped on upgrade.
- Added an option to rebuild the invoice and credit memo lines from Magento just before they are sent, so changes made after queueing are included; lines edited by hand in the order tab are never overwritten (Advanced > Recalculate, enabled by default).
- Added error classification, so a failed call says whether sending it again could help. Improvements:
- Retries use exponential back-off that honours Retry-After and the rate limit reset, and never repeat a create that Exact Online did not refuse outright. Bugfixes:
- The CLI commands take their services through proxies, so a fresh Magento installation with the module present no longer loads the Exact Online services before the store configuration exists ("The default website isn't defined" during setup:install).
- "Select All" on the invoice and credit memo queue grids acts on exactly the rows the grid shows, within its filters; with Accounting Base before 3.0.8 a select-all resolved to nothing or, for a remove, to the whole table. Needs Accounting Base 3.0.8.
- The synchronisation is scheduled on a fresh install; the frequency had no default, so the job waited until someone opened the configuration and saved it.
- The synchronisation schedule is read straight from the frequency the admin sets instead of from a copy written on save; the copy is removed on upgrade, and clearing the frequency now stops the synchronisation.
- Fixed the synchronisation schedule being written empty, which stopped the cron from running.
- Records that failed once are retried on the next run.
- A queue record put back on pending no longer posts a second sales entry for the same invoice; Exact Online is asked first whether it already holds one.
- A sales entry Exact Online rejects outright is marked failed on that run instead of three runs later.
- A response outside the 2xx range is no longer read as a successful empty result, which marked a sales entry as synced without an Exact Online GUID behind it.
- The rate limit retry no longer triggers on the digits "429" appearing in an entry number or amount, which could send a sales entry twice.
- A session Exact Online stops accepting before its stored expiry is refreshed once and the request resent, instead of failing every document in the run until that expiry passes.
- The connect flow asks the configured endpoint which division a token belongs to, instead of always the live Exact Online.
- The exchange rate is applied to the amount instead of to a formatted price string.
- A line without VAT for a Dutch customer is booked under the "no VAT" code; because that code is "0" it was read as unset and the line went on with the standard-rate code, so Exact Online added 21% to a tax-free amount.
- Each sales entry line carries the VAT amount Magento charged, instead of leaving Exact Online to recompute it from the net amount; the per-line rounding there booked a €57,00 invoice as €57,01.
- Refreshed tokens are stored at the scope the connection was made at. A sync for one store view on a connection made at default scope saved them as a store override, and because Exact Online retires the refresh token it just replaced, every other store view and every CLI command then failed with "Old refresh token used" until someone reconnected.
- `accounting:check:exact` asked for a resource that does not exist and always failed with a 404; it now lists sales entries, and `--id`, `--top` and `--skip` are passed on. Tests:
- An architecture test refuses a CLI command dependency that is not wired as a proxy in di.xml.
- Added a unit test harness, contract tests against the pinned Exact Online resource reference with a weekly check that reports when Exact Online changes it, and an end-to-end flow suite against a stand-in Exact Online API reached through a hidden developer setting.
- Added end-to-end flows for "Select All" on the queue grids (sync, skip, and remove within a filter); static analysis raised to PHPStan level 2 with its findings closed. Compatibility:
- Magento 2.3.x and up
- PHP 8.1 and up
- Accounting Base ~3.0.8
-
Bugfixes:
- Removed deprecated `curl_close()` call for PHP 8.5 compatibility
- Fixed null array key in Types source model causing PHP 8.1+ deprecation warning
- Reset `CURLOPT_CUSTOMREQUEST` to prevent HTTP 411 errors in batch sync Compatibility:
- Magento 2.3.x and up
- PHP 8.1 and up
- Accounting Base ~3.0.0
-
Improvements:
- Validate stored Exact ID before PUT requests to prevent 403 errors caused by stale GUIDs.
- Added Magento 2.4.9 and PHP 8.5 to the CI test flow. Compatibility:
- Magento 2.3.x and up
- PHP 8.1 and up
- Accounting Base ~3.0.0
-
Improvements:
- Add creditmemo PDF sync for Exact Online Compatibility:
- Magento 2.3.x and up
- PHP 8.1 and up
- Accounting Base ~3.0.0
-
Features:
- Added option to attach Magento PDF to invoice / creditmemo. Improvements:
- Improve error parsing for non-JSON API responses Compatibility:
- Magento 2.3.x and up
- PHP 8.1 and up
- Accounting Base ~3.0.0
-
Bugfixes:
- Fix ledger and cost center pagination.
- Fix token refresh rate limit when the token is not expired.
- Add `$orderby=Code` to the GLAccounts query for consistent pagination ordering. Compatibility:
- Magento 2.3.x and up
- PHP 8.1 and up
- Accounting Base ~3.0.0
-
Features:
- Automatic sync of invoices, credit memos, and customers to Exact Online
- OAuth2 authentication with automatic token refresh
- Full costcenter support: API import, product attribute, and line item mapping
- OSS (One Stop Shop) support with single-line VAT code mapping
- Configurable OSS country source — shipping or billing address
- Inline editing for Boekingsregels on the accounting order tab
- Inline VAT Code editing with propagation to Exact Online customer records
- Modal for debugging API calls
- SalesEntry-based booking flow with entry number tracking
- Tax rate mapping with Magento tax rules
- Cron-based automatic synchronization
- Selftest, debug and error logging
- Multi-store support Compatibility:
- Magento 2.3.x and up
- PHP 8.1 and up
- Accounting Base ~3.0.0
100% Unencrypted Code quality guaranteed.

Adobe Commerce Marketplace Approved
This extension is listed on the official Adobe Commerce Marketplace and has passed their review process for code quality, performance and security.
Adobe Marketplace approval means the extension follows Magento coding standards and integrates properly with the platform. Updates go through the same review process.

Hyvä Compatible Plugin
This extension includes full support for Hyva Themes. All frontend components, widgets and templates work natively with Hyva's Alpine.js and Tailwind CSS stack.
The extension works out of the box on Hyva and is tested with every new Hyva release to ensure continued compatibility.

GraphQL Made Ready
This extension exposes its data and configuration through Magento's GraphQL API. You can query and mutate data directly from headless frontends or custom applications.
The GraphQL schema follows Magento's conventions and covers all key functionality of the extension. This makes it ready for PWA Studio, Vue Storefront or any other headless setup.

Magento Cloud Support
This extension is fully compatible with Adobe Commerce Cloud (Magento Cloud). It works with the read-only filesystem, the build and deploy pipeline and cloud-specific caching layers.
No additional configuration or workarounds are needed for cloud environments. The extension handles static content deployment and config management the same way as on-premise installations.

Private Composer Repo
After purchase you get access to a private Composer repository with personal credentials. Install and update the extension with a single composer command, just like any other dependency.
Your Composer credentials are available in your account dashboard. Updates are published to the repository as soon as a new version is released, so you always have access to the latest version.
Playwright E2E Tests (23)
This extension is covered by 23 end-to-end tests using Playwright. These tests run automatically on every code change through our CI/CD pipeline.
The tests simulate real user interactions across checkout flows, configuration changes and edge cases to make sure everything works before every release.