Connector Details

NameValue
PlatformQuickBooks Desktop
Auth TypeOn-Premise
DirectionBidirectional
Tap Metrics

Usage:

Target Metrics

Usage:

Unified Schema

Overview

Quickbooks Desktop is on-premise accounting software. It is a distinct product from Quickbooks Online.

The hotglue Quickbooks Desktop connector is an installed program (.exe) that is run on the same machine that manages the Quickbooks company file. While running, the connector allows you to read and write data like you would with a normal cloud connector.

Enable and set up your connector in hotglue

1. Set up your flow

To utilize the Quickbooks Desktop connector, you first need to add Quickbooks Desktop to a flow. You only need to do this once.

  1. Click Add Flow on the left-side toolbar.
  2. Give your flow a name and description, and choose Source Flow.
  3. After creating your flow, go to the Sources tab and click on Quickbooks Desktop.

If you would like to write data back to QBD, you will also need to generate a target flow. If you only need to pull data out of QBD, you can skip this step:

  1. Click Add Flow on the left-side toolbar.
  2. Give your flow a name and description, and choose Target Flow.
  3. After creating your flow, go to the Targets tab and click on Quickbooks Desktop.

2. Set up your tenant

Unlike cloud connectors, which offload authentication to the user, Quickbooks Desktop authentication requires you to make two API requests per tenant.

1

Link the tenant

The first request is a POST to /linkedSources with a config object. This request “links” the tenant to your read flow, and creates the tenant if it doesn’t already exist.

cURL
curl 'https://client-api.hotglue.xyz/<ENVIRONMENT_ID>/<READ_FLOW_ID>/<TENANT_ID>/linkedSources' \
--header 'Content-Type: application/json' \
--header 'x-api-key: <SECRET_API_KEY>' \
--data '{
    "source": {
        "tap": "quickbooks-desktop",
        "config": {
            "company_file_name": "C:\\Users\\Public\\Documents\\Intuit\\QuickBooks\\Company Files\\hotglue.QBW",
            "tables": {
                "account": {
                    "sync": true,
                    "replication_key": "TimeModified"
                },
                "bill": {
                    "sync": true,
                    "replication_key": "TimeModified"
                }
            }
        }
    }
}'
source
object
required
tap
string
required

quickbooks-desktop

config
object
required
company_file_name
string
required

The full path to the Quickbooks Desktop Company file

tables
array
required

Defines which tables to sync and their properties. the keys (e.g., account, bill) are table names that can be customized dynamically.

<table>
string
required

Each table can have the following fields

2

Generate the connector password

The next request will return the “connector password” for your configured user. Your tenant will use the connector password to authenticate their connector on their machine.

curl 'https://client-api.hotglue.xyz/<ENVIRONMENT_ID>/<READ_FLOW_ID>/<TENANT_ID>/taps/quickbooks-desktop/token?write_flow_id=<WRITE_FLOW_ID>' \
--header 'x-api-key: <SECRET_API_KEY>'
If you haven’t generated a signing key before, this request will error with: No signing key has been created for this environment. To resolve, go to Settings > API Keys, and click Generate Signing Key.

Once your connector password is generated, you are ready to run the connector and start running jobs!

3

Optional: Enable additional Quickbooks company files

After you generate a config and password for one company, you can add additional company files for the connector to sync. This is done by utilizing subtenants.

Every time the connector runs on its cycle (usually every 60 seconds), it checks if the connected tenant has subtenants. If subtenants exist, it iterates through processing for each subtenant.

Once enabled in Settings > Widget, you can create subtenants via the syntax:

root_tenant_id + {subtenant delimeter} + {any string}

The default subtenant delimeter in all hotglue environments is _. That means if your initial POST /linkedSources looks like:

/dev.hg.test.com/AAAAAA/test-user/linkedSources

then the URL of a subtenant creation request should look like:

/dev.hg.test.com/AAAAAA/test-user_1/linkedSources
NOTE: Do not generate connector passwords for subtenants. Subtenants are created via new linkedSource entries (Step 1) ONLY.

End-user instructions

Requirements

1. The Quickbooks Desktop Connector and Password

2. QuickBooks Desktop application

Only Windows versions are supported. You can obtain a 30-day free trial via Intuit’s website.

3. QuickBooks SDK

This must be downloaded on the same machine as the connector. You can install the latest from Intuit’s Website.

Run the connector

The Quickbooks Desktop connector is packaged as a .exe file. It is signed with an Extended Validation Code Signing Certificate issued by Sectigo, meaning it is verified and cannot be tampered with.
1

Download the connector launcher file.

2

(Optional) Move the connector launcher to your startup folder

This ensures that the connector runs automatically when you restart your machine. To configure this:

  1. Right click the windows icon on the bottom left
  2. Select run, then type shell:startup > OK
  3. This will open your startup folder. Drag the launcher from your downloads folder to here.
3

Run the connector launcher

Right-click > Run as administrator

4

Enter the connector password

After the connector boots up, you will see a dialog requesting the connector password. Enter the password.

If the pop-up closes, that means the password is accepted, the connector is installed, and you are ready to begin syncing data.

Supported Data

The following are valid values for the tables object, which allow you to read in data from QBD:

  • profit_and_loss
  • balance_sheet_detail
  • transaction_list
  • balance_sheet_summary
  • profit_and_loss_budget
  • bill
  • class
  • customer
  • vendor
  • account
  • check
  • item
  • invoice
  • journal_entry
  • sales_receipt
  • purchase_order
  • credit_memo
  • sale_order
  • price_level
  • unit_of_measure_set
  • sales_tax_code
  • item_sales_tax

If you aren’t using our unified schema, you can also write the following tables back to QBD, using Intuit’s raw schema:

  • customer
  • invoice
  • bill
  • sales_order
  • credit_memo
  • vendor
  • item_inventory
  • item_noninventory
  • sales_receipt
  • journal_entry
  • item_sales_tax