Skip to content

DannyNemer/quickbooks-desktop-api

 
 

Repository files navigation

Conductor logo

QuickBooks Desktop API for Node.js, TypeScript, and REST

Quickstart   •   Website   •   Docs   •   Examples   •   Twitter

NPM download count Package version Code coverage License

What is Conductor?

Conductor is a real-time, fully-typed API for QuickBooks Desktop (sometimes called QuickBooks Enterprise), available via TypeScript, Node.js, and REST. In just a few lines, get real-time access to fetch, create, or update any QuickBooks Desktop object type and receive a fully-typed response. Check out the documentation to get started.

Conductor, the company, is building a data integration platform for vertical SaaS companies, starting with QuickBooks Desktop. Our team has spent over a decade building companies, scaling vast software systems, and obsessing over quality.

QuickBooks Desktop autocomplete

What is this repo?

This repository is a library for conveniently accessing Conductor's QuickBooks Desktop API from TypeScript or JavaScript. The library is a wrapper around the Conductor REST API, providing a fully-typed, easy-to-use interface for fetching, creating, and updating QuickBooks Desktop objects.

Requirements

  1. A Conductor API key pair: one secret key, one publishable key. Please sign up to join the beta.
  2. Node.js v16 or later.

Documentation

  1. Get Started
  2. Quickstart
  3. Node.js / TypeScript API
  4. REST API
  5. API Reference
  6. Error Handling

Installation

npm install conductor-node
# or
yarn add conductor-node

Usage

The full API documentation is available here along with many code examples. The code below is a quickstart example.

import Conductor from "conductor-node";

const conductor = new Conductor("{{YOUR_SECRET_KEY}}");

async function main() {
  // 1. Create a new EndUser.
  const endUser = await conductor.endUsers.create({
    sourceId: "{{UNIQUE_ID_FROM_YOUR_DB}}",
    email: "{{END_USER_EMAIL}}",
    name: "{{END_USER_NAME}}",
  });
  console.log("Save this EndUser ID to auth future requests:", endUser.id);

  // 2. Create an AuthSession to establish the QuickBooks Desktop connection.
  const authSession = await conductor.authSessions.create({
    publishableKey: "{{YOUR_PUBLISHABLE_KEY}}",
    endUserId: endUser.id,
  });
  console.log("Complete the QuickBooks Desktop auth:", authSession.authFlowUrl);

  // 3. Get a list of all Customers from QuickBooks Desktop for this EndUser.
  const qbdCustomers = await conductor.qbd.customer.query(endUser.id);
  console.log("QuickBooks Desktop customers:", qbdCustomers);
}

main();

More documentation

Please see our full documentation site for more docs, guides, and code examples.

About

QuickBooks Desktop API for Node.js, TypeScript, and REST

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%