QuickBooks Desktop and TaxJar integration
QuickBooks Desktop records your invoices and customer transactions. TaxJar calculates the correct sales tax rates and reports those transactions to state tax authorities. Connecting the two keeps your tax obligations current without re-entering sales data, ensures the right tax is collected on every sale, and automates the quarterly and annual filings that would otherwise require manual data prep.
What moves between them
Invoices and customer transactions flow from QuickBooks Desktop to TaxJar. When QBWC detects a new or modified invoice in QuickBooks, ml-connector extracts the line items, customer address, and transaction date, then POSTs the order to TaxJar's transactions endpoint along with the customer's exemption status if one exists. TaxJar responds with the calculated sales tax for each jurisdiction, which ml-connector can optionally write back to QuickBooks as a memo or separate tax item. Refunds and voids are likewise sent to TaxJar as refund transactions. Nexus regions and tax rates are fetched periodically from TaxJar and stored for local reference.
How ml-connector handles it
ml-connector runs as a service that calls your QBWC SOAP endpoint at the interval you configure. On each poll cycle it fetches invoices and customers modified since the last run, using EditSequence handling to avoid mid-transaction conflicts. For each invoice it builds a TaxJar order request with the customer's ship-to address and line item details, then POSTs to the TaxJar /v2/transactions/orders endpoint with the merchant API token. TaxJar returns calculated tax per jurisdiction and an order ID for audit and future updates. If the customer has a sales tax exemption on file in QuickBooks, ml-connector includes the exemption_type in the request so TaxJar honors it. Refunds and order voids are similarly converted to TaxJar refund transactions. Failed submissions (network errors, validation failures) are logged and can be retried in the next cycle. Nexus regions and rates are cached locally so lookups during offline periods can still provide guidance.
A real-world example
A regional e-commerce company based in one state ships to customers nationwide. They use QuickBooks Desktop to manage their invoices and accounts receivable. Previously they manually tracked which states they had nexus in and calculated sales tax for each order using rate tables, often getting it wrong and creating audit risk. They filed sales tax returns quarterly based on their best guess about which sales were taxable in which states. Now with the QuickBooks Desktop and TaxJar integration, each order that posts to QuickBooks is automatically sent to TaxJar, which calculates the correct tax rate for the customer's ship-to address and jurisdiction. TaxJar also tracks their nexus footprint based on sales thresholds and tells them when they need to register in a new state. At quarter-end, their tax filings are ready to go because TaxJar has a complete record of taxable transactions by state.
What you can do
- Post QuickBooks Desktop invoices to TaxJar to calculate accurate sales tax by customer location and jurisdiction.
- Track nexus obligations and register points automatically so tax filing obligations stay current.
- Handle sales tax exemptions stored in QuickBooks and apply them during TaxJar tax calculation.
- Poll QuickBooks Desktop on a configurable schedule via QBWC to detect new and modified invoices without manual re-entry.
- Manage refund and void transactions in TaxJar so tax credits and reversals are recorded correctly for state filing.
Questions
- How does ml-connector fetch data from QuickBooks Desktop if it is installed locally on a customer machine?
- ml-connector exposes a SOAP endpoint that the customer's QBWC agent calls on a configurable interval (typically 5-15 minutes). ml-connector responds with requests for invoices and customer data modified since the last run, using ModifiedDateRangeFilter and the EditSequence version number. The QBWC agent then retrieves the data from the local QuickBooks application and sends it back to ml-connector.
- What happens if an invoice fails to post to TaxJar?
- ml-connector logs the failure with the QuickBooks transaction ID and TaxJar error details, and retries the submission on the next polling cycle. If a customer's address is incomplete or invalid, TaxJar returns a 422 error; ml-connector marks the transaction for manual review so the missing address can be corrected in QuickBooks or TaxJar, then resubmitted.
- Does ml-connector write tax amounts back into QuickBooks?
- ml-connector can optionally write the calculated TaxJar tax amount back to QuickBooks as a separate tax item or memo on the invoice, keeping the two systems aligned. This requires quoting and writing the TaxJar tax rate into the appropriate QuickBooks line item or tax line field, which is configured per customer during setup.
Related integrations
More QuickBooks Desktop integrations
Other systems that connect to TaxJar
Connect QuickBooks Desktop and TaxJar
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started