Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/conductor-is/quickbooks-desktop-api
QuickBooks Desktop API for Node.js, TypeScript, and REST
https://github.com/conductor-is/quickbooks-desktop-api
javascipt nodejs qb-desktop qb-enterprise qbd qbdesktop qbdt qbe qbenterprise qbwc qbwebconnector quickbooks quickbooks-api quickbooks-desktop quickbooks-enterprise quickbooks-sync quickbooks-web-connector typescript
Last synced: 3 days ago
JSON representation
QuickBooks Desktop API for Node.js, TypeScript, and REST
- Host: GitHub
- URL: https://github.com/conductor-is/quickbooks-desktop-api
- Owner: conductor-is
- License: mit
- Created: 2023-11-28T23:42:26.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-10-25T21:01:44.000Z (11 days ago)
- Last Synced: 2024-10-26T04:59:45.833Z (11 days ago)
- Topics: javascipt, nodejs, qb-desktop, qb-enterprise, qbd, qbdesktop, qbdt, qbe, qbenterprise, qbwc, qbwebconnector, quickbooks, quickbooks-api, quickbooks-desktop, quickbooks-enterprise, quickbooks-sync, quickbooks-web-connector, typescript
- Language: TypeScript
- Homepage: https://conductor.is
- Size: 1.34 MB
- Stars: 247
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - conductor-is/quickbooks-desktop-api - QuickBooks Desktop API for Node.js, TypeScript, and REST (TypeScript)
README
QuickBooks Desktop API for Python, Node.js, TypeScript, and REST
Quickstart
•
Website
•
Docs
•
Examples
•
## What is Conductor?
Conductor is a real-time, fully-typed API for **QuickBooks Desktop** (sometimes called QuickBooks Enterprise), available via Node.js/TypeScript, Python, and REST. In just a few lines, get real-time access to fetch, create, or update [_any_ QuickBooks Desktop object type](https://docs.conductor.is/qbd/api#supported-object-types) and receive a fully-typed response. Check out [the documentation](https://docs.conductor.is) 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.
## Key features
- **Any data type:** Query, create, or update any QuickBooks Desktop data type.
- **Real-time**: Get real-time updates on your QuickBooks Desktop data. No queues, no polling.
- **Modern API:** JSON-based REST API, replacing the old XML-based SOAP model.
- **Typed Node.js client:** Fully typed library with autocomplete, inline docs, and type validation for endpoints, parameters, and responses.
- **Request handling:** Invisibly manages queues, timeouts, retries, and pagination.
- **Multi-company support:** Connects to multiple QuickBooks Desktop company files.
- **Validation:** Sanitizes and validates all inputs and outputs.
- **Unified error handling:** Streamlines error handling across the QuickBooks stack.
- **Authentication flow UI:** Simple UI for securely connecting QuickBooks Desktop accounts.
- **Dashboard**: UI to monitor and manage your QuickBooks Desktop connections and data.
- **Error resolution:** Detailed guides and instructions for resolving errors and handling edge cases.## 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](https://73a5v9t55ed.typeform.com/to/VRX7rfrN).**
2. Node.js v16 or later.## Documentation
1. [Get Started](https://docs.conductor.is/overview/get-started)
2. [Quickstart](https://docs.conductor.is/overview/quickstart)
3. [Node.js / TypeScript API](https://docs.conductor.is/qbd/api)
4. [REST API](https://docs.conductor.is/qbd/rest)
5. [API Reference](https://docs.conductor.is/apis)
6. [Error Handling](https://docs.conductor.is/usage/error-handling)## Installation
```sh
npm install conductor-node
# or
yarn add conductor-node
```## Usage
The full API documentation is available [here](https://docs.conductor.is) along with many code examples. The following is a quickstart example:
```ts
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({
companyName: "{{END_USER_COMPANY_NAME}}",
sourceId: "{{UNIQUE_ID_FROM_YOUR_DB}}",
email: "{{END_USER_EMAIL}}",
});
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 invoices from this EndUser's QuickBooks Desktop.
const qbdInvoices = await conductor.qbd.customer.query(endUser.id, {
MaxReturned: 10,
});
console.log("QuickBooks Desktop invoices:", qbdInvoices);
}main();
```## More documentation
Please see our [full documentation site](https://docs.conductor.is) for more docs, guides, and code examples.