All articles

Custom CRM

Does Plumbing Software Integrate With QuickBooks?

Yes, all of them. But the service address never reaches your customer record, and one setting decides whether you can job cost at all. What the docs admit.

Om Patel 16 min read
Photo: John Peters / Unsplash

The short answer

Yes. Housecall Pro, Jobber, ServiceTitan, FieldPulse and BuildOps all connect to QuickBooks. But every connector is built for one customer paying one invoice, and plumbing bills an address. Housecall Pro's own documentation confirms the service address never reaches the customer record in QuickBooks, and Jobber will not sync invoices to sub-customers at all.

Yes. Every plumbing platform worth naming connects to QuickBooks, and that fact tells you almost nothing.

Housecall Pro, ServiceTitan, FieldPulse, Service Fusion, FieldEdge and BuildOps all connect, several to both QuickBooks Online and QuickBooks Desktop. Jobber connects to QuickBooks Online only. If your question is whether you will be retyping invoices into two systems forever, the answer is no, and it has been no for about a decade.

But every one of these connectors was designed around the same shape of transaction: one customer, one invoice, one payment. That is a homeowner with a leaking water heater. It is not a property manager with 40 buildings, it is not a builder holding 10 percent retainage on a 60-unit rough-in, and it is not a service call that starts at 11pm and ends at 2am. A plumbing company runs all of those out of one QuickBooks file, and the sync only really recognizes the first one.

What actually crosses, according to the vendors themselves

Not marketing pages. The help documentation each vendor writes for customers who already paid.

PlatformDirectionWhat it carriesWhat it will not do
Housecall ProOne-way HCP to QBO, with exceptionsInvoices, payments, new customers, new price book itemsEstimates do not push over. Labor and materials are not separated. Cancelled invoices must be deleted in QBO by hand
JobberOne-way Jobber to QBOClients, products and services, invoices, payments, timesheetsNo QuickBooks Desktop support at all. Invoices will not sync to sub-customers. Paid status no longer returns to Jobber
ServiceTitanExport-driven, both QBO and DesktopInvoices, payments, vendor bills, journal entriesBusiness units do not export as classes. Shipping and freight on bills do not export. Vendor document number must be typed in manually

Three things follow from that table.

The first is that the direction of travel is settled. Housecall Pro's documentation states the integration typically functions one-way and instructs you to ensure all work is completed within Housecall Pro. Jobber is blunter: the sync is one way, Jobber is the source of truth, and edits should be made in Jobber to avoid overwriting them in QuickBooks. If your bookkeeper is used to fixing things in QuickBooks, that habit now silently creates drift.

The second is that estimates are excluded. Housecall Pro flags it as an Important note: estimates do not push over to QuickBooks Online, and only specific fields from invoices appear. Sold work waiting on a parts order or a permit is real backlog, and QuickBooks will not show it to you.

The third is that the gap is always on the cost side. Every one of these connectors will happily tell QuickBooks what you billed. None of them reliably tells QuickBooks what the job cost you.

Plumbing bills an address, and the address does not cross

This is the single most consequential line in any of the documentation, and no roundup article mentions it.

Housecall Pro's help centre states that when an invoice with a separate billing and service address is pushed to QuickBooks Online, the service address is found under the Shipping to section of the QuickBooks Online invoice, and then adds the part that matters: the service address will not be added to the Customer Details tab in QBO.

Read that as an operator rather than as a bookkeeper. The address is on the document. It is not on the record. QuickBooks reports run off records and off dimensions like customer, class and project, not off free text in a shipping box on 400 individual invoices. So the moment you want to answer "how much have we spent chasing that cast iron stack at 114 Bathurst over three years", the data is technically present in your file and practically unreachable.

Plumbing is the trade where this hurts most, because plumbing is the trade where the payer and the pipe are most often different. A homeowner pays for their own house. A property manager pays for a building they do not live in. A builder pays for 60 units they will never own. In two of those three cases the useful unit of profit is the property, and the property is exactly what your sync flattens.

Watch out

If you have ever quoted a property manager a rate because "we do a lot of work for them and it goes fine", check whether you can actually produce a profit number per building. In most stock QuickBooks and field software pairings you cannot, and the buildings that lose money are subsidised invisibly by the ones that do not.

Two vendors, opposite rules, and a ceiling either way

Here is where it gets genuinely confusing, because the two most popular platforms for small plumbing shops give you contradictory instructions for the same problem.

Housecall Pro's answer is to build a tree. Its documentation notes that to separate jobs by address for customers with a single billing entity, you may prefer utilizing a parent and sub-customer setup. That is the correct instinct: property manager as parent, each building as a sub-customer. But the same integration documents a ceiling. Housecall Pro imports only parent, first-level customers and second-level sub-customers from QuickBooks Online. Third-level sub-customers and beyond, and any invoices associated with them, will not be imported. So the classic contractor structure of client, then property, then job dies at the second level.

Jobber's answer is to refuse the tree. Sub-customers from QuickBooks import into Jobber as properties, which is arguably the better data model, and the property address is written to the QuickBooks invoice as the shipping address. But Jobber's help centre states that invoices sync to Customers in QuickBooks, not to sub-customers. The billing all lands on the parent. You get a tidy property list inside Jobber and a single undifferentiated receivable inside QuickBooks.

Neither is wrong exactly. They are two reasonable answers to a question the accounting system was never built to answer, which is why a bookkeeper in r/HouseCallPro described the problem more precisely than either vendor does. u/rdoneill wrote that QuickBooks "doesn't model projects or multi-entity structures very well, especially when you have layered relationships like property managers, properties, and service work", and that most teams "try to patch it with classes or locations, but that usually creates more complexity without actually fixing the underlying structure."

That is the honest summary. You are not choosing a sync. You are choosing which compromise you are going to live inside.

The ServiceTitan setting that decides whether you can job cost at all

If you run ServiceTitan on QuickBooks Online, there is one configuration screen that quietly determines whether job costing is possible, and it is not on any comparison chart.

ServiceTitan can export vendor bills two ways. The default for the existing integration is Document Pricebook Item, where each bill line matches a product or service in QuickBooks. The alternative is Document General Ledger, where bills export at the GL account level.

ServiceTitan's documentation is unusually direct about the consequence. With the Document General Ledger export type, each line item includes a customer reference if the bill is linked to a job with a customer in ServiceTitan, which populates the Customer column on bill line items in QuickBooks Online so you can run job costing reports directly in QBO. Then the note: customer references are included only with that export type, and bills exported as Document Pricebook Item do not include them.

In plain terms: on the default setting, your supply house bills land in QuickBooks with no job attached. Revenue is beautifully itemised, cost is a floating pile in accounts payable, and gross margin per job cannot be computed no matter how many reports you run.

Two more from the same page. Business units on bills do not export as classes and have to be entered manually. Shipping and freight on bills do not export at all, which on a repipe with three deliveries is not a rounding error.

By the numbers

ServiceTitan also documents that when exporting invoices, QuickBooks uses the income account from ServiceTitan as the expense account regardless of how the expense account is configured in ServiceTitan. Auto-created items land as non-inventory service items, which means they hit cost of goods sold rather than an inventory asset. If nobody has audited your item mappings since setup, your COGS line may be describing something other than what you think.

Your QuickBooks tier can cancel the whole thing

Every article on this topic assumes the constraint is the CRM. Frequently it is the accounting subscription.

QuickBooks Online allows zero classes and locations on Simple Start and Essentials. Classes and locations are capped at a combined 40 on Plus, and are unlimited on Advanced. The chart of accounts is capped at 250 on Simple Start, Essentials and Plus. So a plumbing company on Essentials trying to split service, drain cleaning, water heaters, repipes and new construction has no mechanism to do it. The field software can tag business units all day long and there is nowhere for the tags to land.

Projects, which is the native per-job profitability view, is available only on Plus and Advanced. On Simple Start or Essentials there is no per-job profit at all, whatever your CRM pushes across. The subscription you are paying for job management buys nothing on the reporting side.

And if part of your work is new construction, QuickBooks Online has no native retainage feature. The standard workaround is a Retainage Receivable account created as an Other Current Asset with a Retainage detail type, plus a retainage line item on each invoice, with the held percentage worked out by hand every time. No plumbing platform's connector creates that account or applies the holdback for you. Half your company is a construction business, and the sync only knows how to be a service business.

If you are running property management work, new construction and residential service out of one field platform, the mismatch is structural, not a settings problem. We build custom CRMs for plumbing companies where the property is a first-class object with its own margin history, retainage is tracked as a real receivable, and only clean, coded entries reach QuickBooks. The books stay simple because the complexity lives where it belongs.

Book a free CRM demo

The 2am call your timesheet cannot represent

A small one that lands hard on any plumber selling emergency service.

Jobber's documentation notes that QuickBooks does not support timesheet entries that span overnight or across different days, and that any overnight hours have to be edited and split across two days. Its example is an employee working 10pm to 3am, which has to be entered as 10pm to 11:59pm and then 12am to 3am.

Emergency plumbing is the business of the 11pm burst line. If your after-hours callouts are being split by hand at midnight, or entered as a single block that fails to sync, the labour cost on your highest-margin work is the least reliable number in your file. Jobber also requires QuickBooks Payroll to be enabled for timesheets to sync at all, and employee names to match exactly, so a tech entered as Mike in one system and Michael in the other simply does not come across.

What operators actually report going wrong

The failures people describe are rarely outages. They are quiet mis-postings that survive until someone reconciles.

In r/quickbooksonline, an accountant using the handle u/Stine2U described dropping a client over exactly this: "I disengaged my ST to QBO client because the reconciliation was awful. The fact that when a payment for an invoice is posted in ST it goes to the oldest invoice in QBO. Absolute garbage." For a shop with a property manager carrying four open invoices, a payment intended for last week's callout landing against a 90-day-old invoice corrupts your entire receivables aging, which is the report you use to decide who to chase.

The most useful comment in that thread was the least dramatic. u/AutomaticPain3532 argued the sync usually is not the problem: QuickBooks is accounting software, the field platforms are operational software, and if you do not decide what system owns what data you get a mess regardless of the integration. Their framing is worth stealing outright. "The goal isn't no reconciliation, the goal is making reconciliation a review process instead of a repair process."

If your bookkeeper spends the first week of every month fixing rather than confirming, the integration is not working, whatever the status page says.

Why the advice you found before this page was useless

Search this question and the top result is a roundup published by a field service software vendor, ranking eight products, awarding each a "QuickBooks Compatibility Score" out of five that the vendor invented, and placing itself first with the highest score. It runs several thousand words on the benefits of integration without naming one thing that fails to sync.

The Reddit results are not much safer. A widely surfaced r/Plumbing thread titled "Running a two-man plumbing operation, how do you handle invoicing and keeping track of job costs" opens with an authentic-sounding problem: receipts from three suppliers, jobs partially invoiced, "materials charged to the wrong job because we were in a hurry", and six months of QuickBooks that felt like "fighting the software". Then the original poster returns to recommend a niche app with a referral code. Two other users call it: "I thought you were an electrician? You post on so many subreddits pretending to have a different occupation", and "How much you want to bet his buddy just so happens to suggest that same app on every post?"

Assume the review is an ad until proven otherwise, and go to the help documentation instead. Vendors are careful in their help centres in a way they are not in their blogs, because those pages exist to reduce support tickets from people who already bought. That is why they admit things. Use that.

The demo script

Nine questions. Ask them in the demo, before the contract, and make them answer in the product rather than in the abstract.

  1. Show me a profit and loss for one property, where the payer is a property manager and the property is one of 30 buildings.
  2. When an invoice has a different billing and service address, where exactly does the service address land in QuickBooks, and can I report on it?
  3. How many levels of customer and sub-customer will your import actually read?
  4. Do estimates cross to QuickBooks, and if not, where do I see sold work that has not started?
  5. When you export a supply house bill, does the line item carry a customer or job reference into QuickBooks?
  6. Do my business units or service lines arrive in QuickBooks as classes, or does someone type them in?
  7. A property manager pays one cheque against four open invoices. Which invoice does the payment apply to?
  8. How do you handle a timesheet that starts at 11pm and finishes at 2am?
  9. If we hold 10 percent retainage on a new construction contract, what happens in QuickBooks?

If the answer to any of these is "you can export a report", that is a spreadsheet, and it is now part of your month-end forever. Worth reading next to this: our breakdown of CRM versus field service software for plumbing and the deeper mechanics in QuickBooks job costing for contractors.

Choosing, by where you actually are

Residential service only, one to five trucks, homeowners paying their own invoices. The stock integrations genuinely fit. Housecall Pro or Jobber into QuickBooks Online Plus will do the job. Get on Plus rather than Essentials so Projects and classes exist, and audit your price book item mappings once, properly, at setup.

Mixed service and property management work. Decide your structure before you connect anything, because the parent and sub-customer choice is close to irreversible once history accumulates. Confirm the sub-customer invoicing rule for your platform in writing, since Housecall Pro and Jobber behave differently here.

Service plus new construction. You are running two businesses with different accounting shapes in one file. Expect retainage, progress billing and committed costs to live outside QuickBooks regardless of what you buy, and budget for a construction-aware layer rather than pretending a service connector will grow into one.

ServiceTitan on QuickBooks Online. Open the Journal Entries and Auto-Batching screen this week and check your vendor bill export type. If it says Document Pricebook Item, your job costing has never worked, and no amount of reporting recovers it retroactively.

The one-page version

Yes, plumbing software integrates with QuickBooks. The integration carries revenue, moves in one direction, and stops at the edge of everything that makes plumbing different: the property, the retainage, the overnight hour, the supply house bill that belongs to a specific job.

None of that means do not integrate. It means know where the pipe ends and decide deliberately what happens after it, rather than discovering the gap in March when your accountant asks why cost of goods sold looks like that. Reconciliation should be a review process, not a repair process. If yours is a repair process, the problem is structural, and no amount of clicking Sync will fix it.

Frequently asked questions

Does plumbing software integrate with QuickBooks?
Yes. Housecall Pro, ServiceTitan, FieldPulse, Service Fusion, FieldEdge and BuildOps connect to both QuickBooks Online and QuickBooks Desktop, and Jobber connects to QuickBooks Online only. The more useful question is what the connection carries. In most cases it moves invoices, payments, customers and price book items in one direction, which is the revenue side only.
Does the service address sync to QuickBooks?
Not to the customer record. Housecall Pro's help documentation states that when an invoice with separate billing and service addresses is pushed to QuickBooks Online, the service address appears under the Shipping to section of that invoice, and that the service address will not be added to the Customer Details tab in QBO. The address exists on individual invoices, so you cannot report on it.
Can I track profitability per property or per building?
Only if you build the structure yourself, and your platform may block it. Housecall Pro recommends a parent and sub-customer setup to separate jobs by address for customers with a single billing entity, but its import only reads two levels deep. Jobber documents the opposite constraint: invoices sync to Customers in QuickBooks, not to sub-customers. Confirm which rule applies before you promise a property manager per-building reporting.
Is the QuickBooks sync one-way or two-way?
Mostly one-way, despite the marketing. Housecall Pro's documentation says the integration typically functions one-way from Housecall Pro to QuickBooks Online. Jobber's newer integration is explicitly one-way with Jobber as the source of truth, and paid status no longer flows back from QuickBooks. Treat the field platform as the system of record and stop editing in QuickBooks.
Does the integration handle plumbing job costing?
Not by itself, and on ServiceTitan it depends on a setting most people never see. ServiceTitan documents two bill export types. Customer references on bill line items are included only with the Document General Ledger export type. Bills exported as Document Pricebook Item do not include customer references, which means no cost attaches to a job in QuickBooks Online at all.
How do I separate new construction from service work in QuickBooks?
With classes, and only on the right tier. QuickBooks Online allows zero classes on Simple Start and Essentials, and caps classes and locations at 40 combined on Plus. Even then the cost side lags: ServiceTitan documents that business units on bills do not export to QuickBooks Online as classes and must be entered manually. Revenue lands classified and costs do not.
Does QuickBooks Online handle retainage on new construction work?
There is no native retainage feature in QuickBooks Online. The standard approach is a Retainage Receivable account set up as an Other Current Asset, paired with a retainage line item on the invoice, with the held percentage calculated by hand each time. No plumbing platform's QuickBooks connector creates that account or applies the holdback for you.
Should a plumbing company use QuickBooks Online or QuickBooks Desktop?
Most plumbing shops belong on Online, and the Desktop runway is short for anyone not on Enterprise. Intuit stopped selling new Pro Plus, Premier Plus and Mac Plus subscriptions in September 2024, Desktop 2023 support ends May 31, 2026, and Desktop 2024 is the last non-Enterprise version, supported through September 30, 2027. Note also that Jobber does not sync to Desktop at all.
Bespoke pipelines, automations, 360° customer records and real-time reporting, a CRM built around how your team actually works, connected to your entire stack.
Book a free CRM demo

Free tools

Find out what your site is costing you.

Enter your address and we check the real page. Scores are free and the itemised report lands in your inbox. No account, and we change nothing on your site.