đź‘€  Hiring Founding Technical Product Owner (Integrations) →

Accounting & ERP

Integrate with QuickBooks Desktop Using Agave

QuickBooks Desktop is a desktop accounting and financial management software used by Construction firms. Using Agave, you can integrate with QuickBooks Desktop and dozens of other systems in hours using a single API.

Note: Agave only supports the US version at the moment, with CA/UK upon request.

Get Access

QuickBooks Desktop Illustration Read Data Write Data

Sync QuickBooks Desktop Data

Want a new endpoint with unified data model? Reach out to us and we can add it in 2 weeks.

Sandbox + Sample Data for Testing

Agave has sandbox environments with sample data that you can use instead of spending time creating your own.

Dev Enviornment

Get Unified and Raw Data in Each API Call

Agave provides unified models and access to source data. In addition, we even support pass-through requests, so you are never blocked by us.

Example Request
curl https://api.agaveapi.com/vendors \
	# 3 headers that are consisttent
	-H 'Api-Version: 2021-11-21' \
	-H 'Client-Id: your-client-id' \
	-H 'Client-Secret: your-client-secret' \
	# Change the account token to request data from different accounts and different systems
	-H 'Account-Token: quickbooks-desktop-example-account-token'
Unified Data

Consistent schema across all systems

{
  "id": "ee9b53e7-f982-4be6-bc12-75f716d3ee94",
  "source_id": "12345",
  "address": {},
  "alternate_name": "AnyCompany",
  "email": "contact@agaveapi.com",
  "fax": "(123) 555-0100",
  "name": "AnyCompany Inc.",
  "phone": "(123) 555-0100",
  "status": "Active",
  "tax_number": "987654321",
  "website": "https://www.agaveapi.com/",
  "source_create_time": "2022-01-01T00:00:00Z",
  "source_update_time": "2022-01-01T00:00:00Z"
}
Source Data

Get raw output from QuickBooks Desktop

{
  "ListID": "610000-1026258379",
  "TimeCreated": "2002-07-09T16:46:19-08:00",
  "TimeModified": "2025-12-15T02:01:20-08:00",
  "EditSequence": "1765792880",
  "Name": "AAA Tech Consultants",
  "IsActive": "true",
  "CompanyName": "AAA Tech Consultants",
  "FirstName": "Mike",
  "LastName": "Balak",
  "VendorAddress": {...},
  "VendorAddressBlock": {...},
  ...
}

Learn more →

Pass-through Request

Option to call QuickBooks Desktop APIs directly

curl --request POST https://api.agaveapi.com/passthrough \
--header 'API-Version: 2021-11-21' \
--header 'Client-Id: your-client-id' \
--header 'Client-Secret: your-client-secret' \
--header 'Account-Token: quickbooks-desktop-account-token' \
--header 'Content-Type: application/json' \
--data-raw '{
  "method": "GET",
  "path": "/rest/v1.0/vendors,
  "data": {}
}'

Learn more →

FAQs

  • How does Agave's QuickBooks Desktop integration work?

    At a high-level, we wrap QBD in a synchronous RESTful API that returns JSON formatted data. This means you can call Agave’s unified API request paths to read and write data to your customer’s QBD, just like you’re interacting with a cloud-based system through Agave. This saves you from working with QBD’s SOAP interface, XML-formatted data, and on-prem connection details.

    We process the requests you submit to our API and pass them to the end-users QBD instance, which is running locally on their computer. Just like our other integrations, we return data from the QBD account in our unified JSON format and raw data in our source data object.

  • How often does Agave sync data with QuickBooks Desktop?

    We attempt to sync data every 15 seconds. If the QBD account is offline, we abort the request and inform you that the QBD account is offline. This way, your request either succeeds or fails in a synchronous request - there is no need to poll us to get the result.

    Your end-users can also sync data manually any time using the QuickBooks Web Connector, shown here.

  • Why does Agave sync data with QuickBooks Desktop every 15 seconds?

    QuickBooks Desktop is an on-prem integration, running on a customer’s desktop machine instead of a server. This machine is not running on the public Internet, so it is not directly accessible by outsiders. As a result, Agave cannot initiate an HTTP request to the customer’s QuickBooks Desktop and the request must originate from the customer’s machine.

    Our QuickBooks Desktop integration is set up to send a “ping” request from the customer’s machine to Agave’s servers every 15 seconds to check for new commands to execute. Checking for new requests more frequently would slow down the customer’s machine, due to how Intuit has designed the QuickBooks Web Connector agent.

    We batch multiple queries together, and perform other optimizations, to reduce the delay as much as possible. On average, you should expect your requests to return in about 12 seconds (8 seconds on average for the "ping" + 4 seconds for processing by QuickBooks Desktop). Some operations, like listing, that require paginating through several pages, would take longer.

  • What is required for us to setup the QuickBooks Desktop integration via Agave?

    Setting-up the QBD integration is similar to setting up Agave integrations with other systems. You can follow our Quickstart Guide to get started and use our QBD sandbox to test requests.

  • What is required for our customers to setup the QuickBooks Desktop integration via Agave?

    Your end user only needs to install an agent provided by Intuit and add Agave's configuration file to it.

    You can see these steps in detail here.

  • How do we become aware of errors with my end-user’s QuickBooks Desktop accounts?

    We return errors using our standard response codes shown here.

    If your customer’s QBD account is offline when you call it, you receive an error message indicating this and showing the last time the account was online.

Get Started

Reach out and request access now. We will be in touch in 24 hours.

Get Access