Exact Online and TaxJar integration
Exact Online runs your accounting and order fulfillment. TaxJar calculates the correct sales tax and reports it to state authorities. Connecting the two automates the tax calculation on every invoice, avoids manual rate lookups across multiple jurisdictions, and posts the resulting tax liability directly into your GL so your books stay accurate without re-keying.
What moves between them
Sales invoice data flows from Exact Online into TaxJar. When a sales invoice is created or updated in Exact Online, ml-connector receives the webhook notification, fetches the full invoice and line items via the Exact Online REST API, submits each line to TaxJar's /taxes endpoint for real-time tax calculation, and records the transaction in TaxJar's /transactions endpoint. The calculated tax liability is then posted back into Exact Online's general ledger on a schedule you control, mapped to a designated GL account for sales tax payable so your accounts stay reconciled without manual entry.
How ml-connector handles it
ml-connector stores the TaxJar API token encrypted and uses it on every request in the Authorization header. For Exact Online, ml-connector stores the OAuth 2.0 client ID, client secret, and refresh token, refreshing the access token before each API call (tokens expire every 10 minutes). It receives sales invoice webhooks from Exact Online and validates the HMAC-SHA256 signature using the webhook secret. When a webhook arrives, ml-connector fetches the complete invoice and line items from Exact Online (expansion is not supported, so line items are fetched separately), calculates each line's tax via TaxJar's /taxes endpoint, and accumulates the total tax liability. It then posts the aggregate tax to TaxJar's /transactions endpoint to record the order for compliance reporting. Finally, it creates a journal entry in Exact Online's general ledger, posting the tax amount to your designated GL account for sales tax payable. If TaxJar returns rate data for a jurisdiction where no prior sync has occurred, ml-connector updates Exact Online's nexus regions. Both systems refresh credentials automatically and retry failed requests with exponential backoff. Every record carries an audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized e-commerce and distribution company runs Exact Online for accounting and order management across three EU countries and the US. Before TaxJar integration, the finance team calculated sales tax rates manually by state and country, then entered the liability into the GL at month-end, leading to errors and delayed reconciliation. With Exact Online and TaxJar connected, each sales invoice triggers real-time tax calculation as it is created, TaxJar stores the complete transaction record for regulatory reporting, and the tax liability posts automatically to the GL. The sales tax account is always up to date, compliance reporting to tax authorities is automated, and the finance team reclaims hours spent on manual tax lookups and GL entry.
What you can do
- Calculate real-time sales tax on each Exact Online sales invoice using TaxJar's rate engine across multiple jurisdictions.
- Post the calculated tax liability directly into Exact Online's general ledger on your reporting schedule without manual entry.
- Track and report completed transactions to TaxJar for state tax authority filing and nexus compliance.
- Handle OAuth 2.0 token refresh on Exact Online and secure API token storage for TaxJar.
- Validate webhook signatures from Exact Online and retry failed tax calculations with exponential backoff.
Questions
- Which direction does data move between Exact Online and TaxJar?
- Sales invoice data flows from Exact Online into TaxJar for tax calculation and transaction reporting. Calculated tax liability flows back from TaxJar into Exact Online's general ledger. Nexus and rate reference data flows from TaxJar to Exact Online to track which jurisdictions require tax registration and reporting.
- How does ml-connector handle Exact Online's webhook-only entity references?
- Exact Online webhooks contain only the entity key and action type, not the full record. ml-connector fetches the complete invoice and line items via separate REST API calls after receiving the webhook, since the expand syntax is not supported. Related data such as customer and cost center information are also fetched separately using individual API requests.
- What happens if TaxJar rate calculation fails or a jurisdiction is new?
- ml-connector retries failed tax calculations with exponential backoff. If TaxJar returns rate data for a jurisdiction where Exact Online has no prior nexus entry, ml-connector updates the nexus record in Exact Online so your compliance footprint stays current. Every calculation and retry is logged in the audit trail and can be replayed.
Related integrations
More Exact Online integrations
Other systems that connect to TaxJar
Connect Exact Online and TaxJar
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started