QuickBooks Online and Avalara integration
QuickBooks Online is where you manage your invoices, bills, customers, and general ledger. Avalara calculates sales and use tax on those transactions across all jurisdictions where you have nexus. Connecting them keeps your tax calculations current and compliant. When you create an invoice or bill in QuickBooks Online, ml-connector sends it to Avalara, gets back the calculated tax for all applicable jurisdictions, and records the tax amount back into your QuickBooks Online invoice or bill so you always know the true tax obligation before you send it to a customer or pay a vendor.
What moves between them
Transactions flow from QuickBooks Online into Avalara. When an invoice or bill is created or updated in QuickBooks Online, ml-connector sends it to Avalara as a transaction, receives the calculated tax by jurisdiction, and writes the tax amount back into the corresponding QuickBooks Online invoice or bill line items. The integration polls QuickBooks Online for new and changed invoices and bills on a schedule you control, then updates Avalara when customer or vendor addresses change. Tax calculations in Avalara are read-only; only the QuickBooks Online side accepts updates.
How ml-connector handles it
ml-connector stores OAuth credentials for QuickBooks Online encrypted and refreshes the access token before it expires (tokens last one hour). For Avalara it uses account ID and license key, also encrypted, and is scoped to your account at the API level. Because both systems are pull-based (QuickBooks Online has webhooks but Avalara does not), ml-connector polls QuickBooks Online on a schedule for new and changed invoices and bills, sends each to Avalara as a transaction with customer or vendor details, and applies the returned tax amounts back to the invoice or bill. Document codes act as idempotency keys in Avalara, so re-posting the same invoice code returns the same tax result without double-calculation. QuickBooks Online requires a SyncToken for every update, so ml-connector fetches the current token before writing the tax amount back. Rate limits on Avalara return HTTP 429, and ml-connector backs off and retries. Each record carries a full audit trail.
A real-world example
A mid-sized e-commerce company based in one state but shipping to customers across the US uses QuickBooks Online for invoicing and accounting. Before Avalara, the tax team calculated sales tax manually using rate tables and worksheets, then entered the tax amount into each invoice in QuickBooks Online, a process that was error-prone and took hours every week. With QuickBooks Online and Avalara connected, each invoice created in QuickBooks Online is automatically sent to Avalara, which determines the tax owed in the customer's state based on their address, applies any exemptions on file, and returns the tax calculation. ml-connector writes that amount back into the invoice, and the tax is correct before the invoice is sent. Month-end tax reporting is now a simple export from Avalara, reconciled automatically to the invoices in QuickBooks Online.
What you can do
- Send QuickBooks Online invoices and bills to Avalara for real-time sales and use tax calculation across all applicable jurisdictions.
- Write calculated tax amounts from Avalara back into QuickBooks Online invoice and bill line items so tax is known before sending.
- Maintain customer and vendor addresses in both systems so tax is calculated on the correct location for each transaction.
- Authenticate QuickBooks Online with OAuth 2.0 and Avalara with account credentials, with full credential encryption and token refresh.
- Poll QuickBooks Online on a schedule you control and deduplicate transactions using document codes, with a complete audit trail on every record.
Questions
- How does ml-connector handle the different authentication methods?
- QuickBooks Online uses OAuth 2.0, so ml-connector stores the refresh token encrypted and refreshes the access token before the one-hour expiry. Avalara uses HTTP Basic Authentication with account ID and license key, which is also encrypted and does not expire. ml-connector maintains both credential sets and presents them on every request.
- Does Avalara's pull-only API affect how quickly tax calculations happen?
- Because Avalara has no webhooks, ml-connector polls QuickBooks Online on a schedule you define (typically every few minutes for high-volume businesses or hourly for lower volumes). When an invoice or bill is created or updated, ml-connector sends it to Avalara in the next polling cycle and writes the tax back. For immediate tax calculation at invoice creation time, set a short polling interval.
- What happens if a customer address changes after an invoice is sent?
- ml-connector can reconcile addresses by polling both systems and updating customer records in QuickBooks Online from Avalara or vice versa. If an address changes after tax has been calculated, the integration does not automatically recalculate unless you manually update the invoice in QuickBooks Online, which triggers ml-connector to re-send it to Avalara for the new tax amount. This prevents accidental tax changes on already-sent invoices.
Related integrations
More QuickBooks Online integrations
Other systems that connect to Avalara
Connect QuickBooks Online and Avalara
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started