Skip to main content

Conductor basics

Conductor is a web service that securely connects your app to one or more QuickBooks Desktop instances. It provides a RESTful API and fully-typed client libraries that you can use to read and write data to/from QuickBooks Desktop.Behind the scenes, Conductor uses the QuickBooks Web Connector, which is a Windows SOAP-based program that comes preinstalled with QuickBooks Desktop on your end-users’ computers. This program always runs invisibly in the background, waiting for requests from Conductor. When you send a request to Conductor, it forwards the request to the Web Connector, which then forwards the request to QuickBooks Desktop. The response follows the same path in reverse. Between each of those steps, there are many layers of error handling, validation, and data transformation.Conductor abstracts away multiple layers of complexity, idiosyncrasies, and fragility of working with QuickBooks Desktop so that interfacing with this tragically outdated technology is as easy and wonderful as using Stripe’s API.
Conductor leverages a program called QuickBooks Web Connector, which comes preinstalled with all versions of QuickBooks Desktop and runs invisibly in the background on the Windows computer to maintain the connection. To connect, the QuickBooks Desktop users will step through Conductor’s authentication flow, which has them download a config file that Conductor generates, open it in the Web Connector, authenticate, and connect to Conductor (and thereby to your application). Here is a demo of the auth flow.
Conductor is priced at $49 per month for each established QuickBooks Desktop company file connection in use. A connection counts as in-use when both of the following are true:
  1. Conductor has successfully established the QuickBooks Desktop connection.
  2. During the monthly billing period, your application makes a Conductor API call to that connection.
Volume discounts are available for enterprises requiring a large number of connections.No platform fees, no minimum, no hidden costsBilling is per connection in use with no monthly minimum. Your invoice reflects the exact count of QuickBooks Desktop connections in use, so if you pause all production usage you won’t be charged. Charges still scale with connections in use, and you’re never billed for inactive ones.Are connections free for testing and development?
  1. Connections using QuickBooks “sample company files” or QuickBooks “Trial installations” are free.
  2. Connections using data from an active production environment are not.
  3. If you have a connection to a production company file that you want to use only for testing and development, please contact support to request a free exemption.
What counts as one billed company?If you run multiple connectors that point to the same QuickBooks Desktop company, whether on different computers, Windows profiles, QuickBooks versions, or multiple versions of the same company file, we deduplicate them and invoice you for a single company because they all represent the same set of finances.
Integrating with QuickBooks Desktop from scratch is a painful nightmare. It’s a decades-old API that hasn’t been modernized and is riddled with edge cases, idiosyncrasies, and bugs that are incredibly difficult to work with. Conductor solves all of these problems and takes only a fraction of the time to implement with none of the maintenance headaches. We have obsessed over the edge cases and performance. Beyond the significant time savings, Conductor preserves your team’s mental well-being.

Data handling and security

No, every Conductor API call is a real-time direct request to/from QuickBooks Desktop. If you make a request when the end-user’s computer is off or QuickBooks Desktop is inaccessible, Conductor will return an error message with instructions for how the end-user can resolve the issue.By design, Conductor has no cache layer because it causes all sorts of problems when data is out-of-sync. E.g., you modify data on one end that has already been removed on the other.Ideally, the computer running QuickBooks Desktop is always on and accessible. If that is not possible for some end-users, this real-time design has still worked well because if such an end-user triggers a sync while using your app, they likely did so from the same computer as where QuickBooks Desktop is already running.
No, Conductor does not retain any of your end-users’ QuickBooks Desktop data on a permanent basis. For operational purposes, API request logs, which includes QuickBooks Desktop data, are temporarily, securely stored in a SOC 2 and GDPR-compliant log manager for 15 days before permanent deletion. Access to these logs is strictly limited to authorized Conductor engineers, who use them solely for debugging, offering customer support, and product improvement purposes. This approach ensures both the confidentiality of your data and compliance with the highest standards of data protection.

API

The QuickBooks Web Connector polls our servers for new work, so the latency you see depends on where you are in that polling cycle:
  • Cold start: When a connector has been idle, it checks in every 10 seconds.
    • The first read/write after inactivity typically lands in the next poll, so the request usually completes within roughly 3-10 seconds (10 seconds worst case) plus QuickBooks processing time.
  • Active window: Once the first request arrives, the connector “wakes up” and polls every 3 seconds for the next 10 minutes.
    • New requests posted during this window are picked up in the next 3-second poll if the prior session has closed.
  • Warm session: After each request finishes, we keep the QuickBooks Desktop session open for 10 seconds. Any follow-up requests that arrive during this window reuse the session and resolve almost instantly (roughly 0.5 seconds end-to-end).
Budget a brief multi-second handshake when the connector wakes up (3-10 seconds), then expect near-instant throughput for work that stays inside the warm-session window (until 10 seconds after the last request).For example, if you want to import a batch of invoices to QBD, you can expect 3-10 seconds to set up the connection, then 0.5 seconds for each remaining invoice in the sequence.
Yes, our OpenAPI specification is available here. Additionally, our API reference documentation is generated from this spec and provides detailed descriptions and examples for every field and endpoint.
Conductor does not support webhooks because we cannot guarantee that the QuickBooks Desktop connection will be online at all times. Rather than risking developers expecting real-time notifications for every data change, we recommend triggering syncs based on explicit user actions in your UI. For example, Ramp surfaces a list of unsynced transactions and lets users initiate “Sync to QBD” whenever they are ready.For teams seeking webhook-like behavior, some smaller customers run a scheduled process (such as a cron job) that periodically queries their users’ QuickBooks Desktop data through Conductor. If the connection is offline, the process can fetch changes since the last successful sync once connectivity is restored. During offline periods, we suggest showing an error state in your app’s UI so users know to bring the connection back online. While polling can emulate a limited webhook, it introduces added complexity around communicating both data changes and error scenarios, and frequent polling can impact the user’s workstation if QuickBooks Desktop is running locally.
No, Conductor’s APIs currently only support working with a single object at a time because QuickBooks Desktop itself only resolves requests serially. If you want to create 50 invoices, for example, you will need to call the create-invoice API 50 times. However, you can send multiple requests in parallel; for example, you can use await Promise.all([ ... ]) in JavaScript with multiple requests, but you cannot send multiple requests in a single HTTPS request.

QuickBooks Desktop and Web Connector

The QuickBooks Web Connector is a Windows program that comes preinstalled with QuickBooks Desktop that Conductor uses to securely communicate with QuickBooks Desktop. This program runs invisibly in the background on the end-user’s computer, waiting for requests from Conductor. The only time your end-user should see the Web Connector is when they first set up their QuickBooks Desktop connection with Conductor; other than that, it should be invisible to them.
In the world of QuickBooks Desktop, a “company file” is the main local file for all the financial data for a specific company. Typically, a QuickBooks Desktop user will have only one company file: the one they use to manage their business. However, some users manage multiple company files on one computer and actively switch between them. For example, an accounting firm might manage the books for multiple clients, each with their own QuickBooks Desktop company file.Each Conductor connection is tied to a specific company file. If you need to connect to multiple company files, you will need to create multiple end-users in Conductor, each with their own connection. See this guide for more information.
Conductor supports every version, variant, and edition of QuickBooks Desktop since 2018, including:
  • QuickBooks Enterprise Solutions - any version or year
    • Any edition: Accountant, Contractor, Manufacturing and Wholesale, Nonprofit, Professional Services, Retail.
  • QuickBooks Premier (Plus) - 2018 or later
    • Any edition: Accountant, Contractor, Manufacturing and Wholesale, Nonprofit, Professional Services, Retail.
  • QuickBooks Desktop Pro (Plus) - 2018 or later
  • QuickBooks Accountant Desktop (Plus) - 2018 or later
No, QuickBooks Desktop is not being discontinued. Intuit reported $2.775B in revenue from the QuickBooks Desktop ecosystem in 2025, growing 5% year-over-year.
  1. Ongoing Support: Intuit continues to support all existing versions of QuickBooks Desktop for current customers.
  2. Continued Sales: Intuit is still actively selling “QuickBooks Enterprise”, the main version of QuickBooks Desktop tailored for medium to large businesses, to new customers.
  3. Product Changes: Intuit will soon cease sales of “QuickBooks Desktop Pro/Premier Plus” – a less popular variant primarily used by small family businesses – to new customers (existing customers will still be supported).
While Intuit has encouraged users to migrate to QuickBooks Online, Desktop users consistently tell us that it doesn’t fully meet their business needs. Consequently, the base of existing QuickBooks Desktop users, including both “Enterprise” and “Pro/Premier” versions, remains robust. Conductor continues to support these users and their ongoing reliance on QuickBooks Desktop.

Compatibility and connectivity

No, QuickBooks Desktop does not need to be actively open, but it should!As long as the computer is powered on, Conductor can communicate with QuickBooks via the Web Connector, which runs as a background service. When Conductor sends a request, the Web Connector automatically launches QuickBooks Desktop, processes the request, and then closes it. The Web Connector also starts automatically when the computer boots, enabling this seamless interaction.However, QuickBooks Desktop is slow to open, and opening and closing it hundreds of times eventually causes strange Windows bugs. Hence, we strongly recommend keeping QuickBooks Desktop open continuously.
Important: Launching QuickBooks Desktop adds approximately 30 seconds to request processing time due to its startup process. For optimal performance, keep QuickBooks Desktop open and signed in to the correct company file while using Conductor.

Alternative: Keep QuickBooks Desktop open without a company file

As mentioned, we recommend keeping QuickBooks Desktop open and signed in to a company file for the fastest response times. However, some end-users still prefer to keep QuickBooks Desktop closed on the connected computer. Common reasons include:
  • To avoid occupying a QuickBooks Desktop license seat
  • To be able to temporarily sign in with the same QuickBooks user on another computer (we recommend creating a dedicated QuickBooks Desktop user for Conductor to avoid this need)
  • To avoid having to sign out from this computer when using single‑user mode on another computer
If any of these rare scenarios apply, we recommend leaving QuickBooks Desktop open at the “No Company File Open” screen. In this mode, when the Web Connector receives a request, it will sign in, process the request, and then sign out of the company file. This avoids the scenarios above (aside from the brief sync period) and is faster than launching QuickBooks Desktop from scratch; though still slower than staying continuously signed in.Again, the ideal approach is to keep QuickBooks Desktop open and signed in to a company file for the best performance. Follow our QuickBooks Desktop guide to ensure it launches automatically after every reboot.
Yes. If your team shares a single QuickBooks Desktop company file on your office network, you can install the Web Connector connection on more than one Windows computer. Each computer will have its own entry in the QuickBooks Web Connector and can sync with that same company file. Many teams do this as a backup in case one computer is turned off or unavailable.
Important: The company file must live in the exact same folder path on every computer. The Web Connector uses the full path to decide which company file should receive a request. If the company file path is different on any computer (for example, different drive letters or folder names), syncs will fail.Simple ways to keep company file paths the same across all computers:
  • Map the shared folder to the same drive letter on all computers (e.g., all use S:\Accounting\...).
  • Or open the file using the same network path on every computer (e.g., \\SERVER\Share\Accounting\MyCompany.QBW).
Best practice: Set up the connection on the Windows server that hosts the company file. These servers typically run 24/7, which removes the need to maintain connections on multiple workstations.
No, there is no way to access QuickBooks Desktop instances when the user’s computer is off because QuickBooks Desktop data is not stored online. Instead, QuickBooks Desktop is a local application that runs on a user’s computer. As a result, this means an active Conductor connection is always direct and real-time. Conductor intentionally avoids using a cache layer to prevent potential data conflicts when data is out-of-sync.While this may seem limiting to many developers, we find that typical QuickBooks Desktop users do not mind:
  1. User Availability: When a user is interacting with your application that syncs data with QuickBooks Desktop, they are typically at their computer anyway, which means that QuickBooks Desktop is accessible.
  2. User Control: Many QuickBooks Desktop users are protective of their data and prefer to manually initiate data syncs rather than rely on automatic background processes. This approach gives them greater control over their data and ensures that no syncs occur without their explicit consent.
Yes, please see this guide for more information.
A QuickBooks Desktop hosting provider is a company that hosts an end-user’s QuickBooks Desktop instance and company file on a remote server that employees access via a remote desktop connection.
Conductor works with any system that has QuickBooks Web Connector installed, which comes pre-installed with QuickBooks Desktop itself. For this reason, Conductor can support every QuickBooks Desktop hosting provider we have encountered to date.
Some hosting providers, such as Rightworks, do not allow QuickBooks to continue running when users disconnect from their remote desktop session. In these scenarios, the user must remain connected to the remote desktop anytime they want to sync with QuickBooks (via Conductor). However, we’ve found that this is not a burden for most users because connecting to their remote desktop to work with QuickBooks data is already part of their daily workflow.

Verified hosting providers

We have individually verified Conductor compatibility with the following QuickBooks Desktop hosting providers:
Yes, Conductor is fully compatible with Rightworks. Users can establish the connection just as they would with a typical Windows instance running QuickBooks Desktop.However, there is an important consideration: Rightworks users must sign in to their remote desktop session each time they wish to sync with QuickBooks Desktop. This requirement exists because Rightworks terminates inactive instances once the connection is closed, preventing background processes from running when the user is signed out. Despite this, most users find this process manageable because signing in to Rightworks is a routine part of their workflow. It is worth noting that, based on our experience, remote QuickBooks Desktop hosts like Rightworks account for fewer than 2% of all QuickBooks Desktop companies.Please see this guide for setting up a Conductor connection with a Rightworks QuickBooks Desktop instance.
I