All articles

QuickBooks Online integrations for trades businesses

How a QuickBooks Online integration works for a trades business: customers, estimates and invoices from the field, the sync patterns that hold up, and the usual traps.

In most trades businesses, QuickBooks is where the money is real. The job happens in the field, the paperwork happens in the truck or at the kitchen table, and then someone types it all into QuickBooks again. That second typing is where invoices go out late, customers get created twice and the bookkeeper spends Friday fixing tax codes.

A QuickBooks Online integration closes that gap. Here's how it works, what we've built, and what to watch for.

Quick answer: what can a QuickBooks Online integration do?

QuickBooks Online has an accounting API that lets an app you authorize read and create customers, estimates, invoices, payments, products and services, and tax codes. For a trades business, the useful patterns are: pull the customer from QuickBooks when a technician starts a job, create estimates and invoices from the field or the office with the right items and tax codes, convert an approved estimate into an invoice, and bring invoice status back into your own tools so overdue accounts get followed up. QuickBooks Desktop is a different product with a different, older integration method.

What we built for a Kelowna plumbing company

We built office and field tools for Captain Plumber, a plumbing company in Kelowna (we also built their website), connected to their QuickBooks Online company. In practice:

  • One connection. The owner connects QuickBooks once, through Intuit's standard sign-in and consent screen. Nobody shares a password.
  • Customer autofill. When a technician starts a service report, they pick the customer from QuickBooks instead of typing a name and address again.
  • Estimates and invoices from the admin. The office creates estimates and invoices using the company's existing QuickBooks products, services and tax codes, then downloads the QuickBooks PDF.
  • Estimate to invoice. An approved estimate converts into an invoice in one step, and the two are linked, so QuickBooks shows the estimate as invoiced.
  • Reports linked to invoices. Each service report can carry the invoices it relates to, so the work and the bill stay together.
  • The money view. A dashboard of what's invoiced and outstanding, and a list of overdue invoices the office can turn into polite reminder emails.

The same tools also do branded service reports, dictated on site and sent as a PDF, and push every new lead to the owner's phone. If you run Jobber or Housecall Pro instead of a custom admin, the same ideas apply on top of those; see what you can build on top of Jobber.

The sync patterns that hold up

  • Pick one home for each kind of record. Customers, products and prices should be edited in one place, usually QuickBooks, and read everywhere else. Two systems both allowed to edit the same customer is how duplicates and wrong addresses happen.
  • Search before you create. Before creating a customer, look them up by email, phone or name. QuickBooks requires each customer's display name to be unique, so a careless integration either fails or creates "Smith, John (2)".
  • Use QuickBooks' own items and tax codes. Invoices are built from products and services that already exist in QuickBooks. Map your price book to them once, instead of inventing line items in the app.
  • Link, don't copy. When an estimate becomes an invoice, create the invoice from the estimate so QuickBooks keeps the link. When a report relates to an invoice, store the invoice's ID, not a copy of its numbers.
  • Read back after writing. If the office edits an invoice in QuickBooks after the app created it, the app should show QuickBooks' version, not overwrite it with its own.

The usual traps

  1. Canadian sales tax. In a Canadian QuickBooks company, invoice and estimate lines need the right GST, HST or PST tax code. Get that mapping right with your bookkeeper before the first real invoice, and test it in an Intuit sandbox company first.
  2. The connection quietly expiring. Intuit's access tokens last an hour and are refreshed with a refresh token that lasts up to 100 days and changes when it's used (Intuit's notes on token expiry). An integration that always saves the newest refresh token, and refreshes on a schedule even in a quiet month, stays connected. One that doesn't, asks the owner to reconnect at the worst possible moment. Ours refreshes on a schedule.
  3. Duplicate customers. Covered above, and worth repeating: the usual cause of a messy customer list is a sync that creates instead of matching.
  4. Doing too much at once. Start with the step that costs the most time, usually customers and invoices, prove it on real jobs, then add payments and reporting.

QuickBooks Online vs QuickBooks Desktop

Everything above is about QuickBooks Online, which has a modern web API with OAuth sign-in. QuickBooks Desktop integrates differently, through Intuit's Web Connector running on the computer where Desktop is installed. It works, but it's slower to build, depends on that computer being on, and limits what can happen in real time. If you're still on Desktop and planning to move to Online anyway, it's usually worth moving first and integrating second.

Jobber, Housecall Pro and QuickBooks together

Jobber and Housecall Pro both have their own QuickBooks Online sync. If you use one of them, start there; a custom integration should fill a gap that sync leaves, not run a second sync alongside it. We've laid out what we connect on our QuickBooks integrations page.

We're a small studio in British Columbia, and we're not an Intuit partner: we build on the public QuickBooks Online API, and the code is yours at the end. If invoices in your business still get typed twice, tell us where it happens. We'll tell you honestly whether it needs a build.

AI & automation5 min read

ServiceTitan alternatives for small trades businesses in Canada

Jobber, Housecall Pro, Workiz, FieldEdge and Tradify compared for a small Canadian trades business: what each is built for, what to check in Canada, and when to build on top instead of switching.

AI & automation8 min read

Jobber and QuickBooks Online sync errors: the common ones and how to fix them

Duplicate clients, tax rates that don't match, products that won't map, payments stuck in Undeposited Funds and a lost connection: what each Jobber to QuickBooks error means and the fix.

AI & automation4 min read

Housecall Pro integrations: what the API allows and what to build

Housecall Pro has a public API and webhooks on its top plan. What a developer can connect, what's worth building, and the security basics before you hand out a key.