Exact Online and Avalara integration
Exact Online runs purchasing, sales, and accounting for SMEs across Europe and the USA. Avalara calculates sales and use tax in real-time based on customer location, item type, and jurisdiction rules. Connecting the two ensures that every sales invoice in Exact Online has the correct tax calculated by Avalara before it is finalized, and the tax journal entries land in Exact Online's GL without manual re-entry. ml-connector bridges the OAuth 2.0 and Basic Auth layers, handles regional base URLs, manages webhook subscriptions, and tracks tax posting status across both systems.
What moves between them
Sales transactions flow from Exact Online to Avalara. When a sales invoice is created in Exact Online, ml-connector extracts the customer address, item codes, and line amounts, calls Avalara to calculate the correct tax based on the shipping jurisdiction, and receives the calculated tax amounts in real-time. The tax result is then posted back into Exact Online as journal entries allocated to the correct GL account and cost center, so the invoice total in Exact Online reflects the jurisdictionally correct tax without manual adjustment. Cost centers and GL accounts are mapped first to ensure every tax posting lands on a valid accounting dimension. Reconciliation runs on a schedule to catch any Exact Online invoices that were created outside normal polling windows.
How ml-connector handles it
ml-connector stores both credential sets encrypted: the Exact Online OAuth refresh token and Avalara's License Key. On the Exact Online side, it accepts the division ID and region (Netherlands, Belgium, UK, Germany, France, Spain, or USA) per customer to route API calls to the correct regional base URL. It subscribes to Exact Online webhooks for SalesInvoices and SalesInvoiceLines to receive real-time notifications when new invoices are created; each webhook payload is validated against the HMAC-SHA256 signature computed with the webhook secret. When notified of a new invoice, ml-connector fetches the full invoice details including line items and customer address (since webhook payloads contain only the entity key), then calls Avalara's CreateTransaction endpoint with the customer location, item codes, and line amounts. Avalara returns the calculated tax synchronously; ml-connector then creates a journal entry in Exact Online's GL mapped to the correct tax GL account and cost center. If Exact Online's OAuth token expires before the 10-minute lifetime, ml-connector refreshes using the 30-day rotating refresh token and retries. Avalara's rate limits return HTTP 429; ml-connector backs off and retries with exponential jitter. Address validation failures in Avalara are logged as warnings and trigger a manual review alert so tax is not posted incorrectly. Document code in Avalara acts as an idempotency key, so reusing the same code is safe if a network failure occurs between posting and reading the response.
A real-world example
A mid-sized B2B software company sells licenses and support services across the USA, UK, and Germany, with customers in multiple tax jurisdictions. The company uses Exact Online to manage invoicing and accounting, but each sales invoice required manual tax calculation and posting by the finance team, since sales tax rules differ by state and country. With Exact Online and Avalara connected, each invoice created in Exact Online is automatically sent to Avalara for real-time tax calculation based on the customer's shipping address, and the calculated tax is posted as a journal entry into Exact Online's GL immediately. The finance team no longer manually calculates or re-enters tax, invoice-to-ledger reconciliation is automatic, and compliance with regional tax rules is guaranteed by Avalara's database of jurisdictional rules.
What you can do
- Calculate real-time sales tax for each Exact Online sales invoice based on customer address and jurisdiction using Avalara's tax database.
- Post calculated tax amounts into Exact Online's general ledger as journal entries allocated to the correct GL accounts and cost centers.
- Authenticate Exact Online with OAuth 2.0 (region-specific base URLs and division IDs) and Avalara with HTTP Basic Auth using License Key.
- Receive real-time notifications of new Exact Online sales invoices via webhooks, validate HMAC-SHA256 signatures, and fetch full invoice details including line items and customer addresses.
- Handle Avalara rate limits with exponential backoff, validate customer addresses before tax calculation, and mark irreversible transactions for audit trail.
Questions
- Which direction does data move between Exact Online and Avalara?
- Sales transactions flow from Exact Online to Avalara. When a sales invoice is created in Exact Online, ml-connector sends the customer address, item codes, and line amounts to Avalara, receives the calculated tax, and posts the tax as journal entries back into Exact Online's GL. Customer and item data are mapped in advance so tax always lands on valid GL accounts and cost centers.
- How does ml-connector handle regional differences in Exact Online (multiple base URLs and OAuth scopes)?
- Exact Online publishes different regional base URLs for Netherlands, Belgium, UK, Germany, France, Spain, and USA. ml-connector accepts the region and division ID per customer and routes all API calls to the correct regional URL. OAuth tokens are scoped to a single division, so ml-connector refreshes the token per division if a customer spans multiple divisions.
- What happens if Avalara rate limits a request or an address is invalid?
- When Avalara returns HTTP 429, ml-connector backs off and retries with exponential jitter. If a customer address fails Avalara's validation, ml-connector logs a warning, creates a support alert, and does not post tax to Exact Online until the address is corrected manually. Committed transactions in Avalara are irreversible, so validation happens before posting to prevent incorrect journal entries.
Related integrations
More Exact Online integrations
Other systems that connect to Avalara
Connect Exact Online and Avalara
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started