Skip to main content
Quickstart hero
Welcome! 👋 Follow the instructions below to connect your QuickBooks Desktop instance and start working with your data in just a few minutes. You’ll be able to fetch, create, and update any object type in real-time with our modern APIs and SDKs.

Part 1: Set up your Conductor account

Sign up for a Conductor account here with your work email.
Create an organization in the Conductor dashboard. This should be the name of your company.
Create an organization
In the organization you created, let’s select the “testing” project. An organization can have multiple projects, but we’ll use this one for now.
Select the testing project

Part 2: Connect to QuickBooks Desktop

Important: A QuickBooks Desktop instance for testing is required. If you do not have one, you can create a free test instance.
After selecting the “testing” project in the Conductor dashboard, click the “Create end user” button.
An end-user represents the user or organization within your application for whom we are connecting to their QuickBooks Desktop instance. Each end-user maps to a single QuickBooks Desktop company file because each company file represents an individual legal entity.
Create an end-user
After creating an end-user in the dashboard, it will automatically create an auth session. Visit this URL in your browser on the same computer or instance as your QuickBooks Desktop installation. This authentication flow will guide you through connecting your QuickBooks Desktop instance to Conductor.Read every step carefully!
Conductor authentication flow for QuickBooks Desktop
In the Conductor dashboard, navigate to the API Keys tab and click the “Create secret key” button. Be sure to save the secret key in a secure location.
Create a secret key
Navigate to the End Users tab and find your end-user’s ID. You’ll need this in Step 6 to identify the end-user in your requests.
End users table
# npm
npm install conductor-node

# yarn
yarn add conductor-node

# pnpm
pnpm add conductor-node
Try fetching a list of QBD Customers:
import Conductor from "conductor-node";
const conductor = new Conductor({ apiKey: "{{YOUR_SECRET_KEY}}" });

async function main() {
  const invoices = await conductor.qbd.invoices.list({
    conductorEndUserId: "{{YOUR_END_USER_ID}}",
    limit: 10,
  });
  console.log(invoices.data);
}

main();
Example QBD response
{
  "objectType": "list",
  "url": "/v1/quickbooks-desktop/customers",
  "data": [
    {
      "id": "80000001-1234567890",
      "objectType": "qbd_customer",
      "createdAt": "2024-10-01T17:34:56.000Z",
      "name": "ABC Corporation",
      "isActive": true,
      // ...
    }
    // ...
  ],
  // ...
}