ServiceTitan + QuickBooks

How to Sync ServiceTitan to QuickBooks

Most people start at the wrong end. They connect the two systems, run a batch, and then spend six months untangling what the batch did. The order below is the order that works: build the chart of accounts, map the GL, map the business units, map the pricebook, set up the merchant clearing account, and only then export. Bills before invoices, every time.

Before You Export Anything

The export is the last step, not the first

Connecting ServiceTitan to QuickBooks takes about ten minutes. Doing it in a way that produces books you can actually lend against takes a week, and almost all of that week happens before a single record moves. The connection is not where files go wrong. The mapping underneath it is.

Here is the mental model. ServiceTitan is the system of record for the work: the jobs, the invoices, the technicians, the parts. QuickBooks is the system of record for the money: the general ledger, the bank, the balance sheet. The batch export is a one-way pipe between them, and everything that arrives in QuickBooks arrives in whatever account you told ServiceTitan to send it to. If that mapping is wrong, the export will run perfectly and produce garbage, and it will do so cleanly and quietly for as long as you let it.

So work in this order: chart of accounts, GL mapping, business units, pricebook items, payment types and the merchant clearing account, sales tax, then a test batch, then a routine. If you skip ahead, you will come back. If you want the honest inventory of what this pipe does and does not carry first, read does ServiceTitan integrate with QuickBooks. If you are on QuickBooks Desktop there is an extra piece of machinery, the Web Connector, covered on the ServiceTitan QuickBooks Desktop integration page. Everything else we have written for ServiceTitan shops is on the ServiceTitan hub.

Part One: The Setup

Set it up in this order, before your first real batch

Each step depends on the one above it. Doing them out of order is how you end up re-doing them.

1 Build a chart of accounts that a service business can actually read

Start in QuickBooks, not in ServiceTitan. You need income accounts that separate service, install, and membership revenue, because those three have completely different margins and blending them makes your P&L useless. You need cost of goods sold split into material, labor, equipment, permits, and subcontractor so gross margin means something. And you need the control accounts to exist and be clean: Undeposited Funds, Accounts Receivable, Accounts Payable, Sales Tax Payable, and a merchant clearing account you are about to create. A chart of accounts inherited from a generic bookkeeper will not survive contact with ServiceTitan.

2 Map every ServiceTitan GL account to a real QuickBooks account

In ServiceTitan, every GL account you reference must exist in QuickBooks with an exactly matching name, and must not be inactive. Then enforce the rule that breaks most files: a control account may not also be assigned to a pricebook item. If Undeposited Funds, A/R, A/P, or Sales Tax Payable is mapped to an account that an invoice item also posts to, QuickBooks Desktop rejects the batch with error 3140 and QuickBooks Online complains in its own way. Every account gets exactly one job. Write the map down while you build it, because you will need it in six months.

3 Map business units to QuickBooks classes

Business units are how ServiceTitan separates HVAC service from HVAC install from plumbing from the commercial division. Map each one to a QuickBooks class and your P&L becomes readable by trade, by crew, and by location. Skip this and every dollar in the company lands in one undifferentiated bucket, and you will never be able to answer the only question that matters, which is which part of the business is actually making money. Watch the membership trap here too: revenue can land on the business unit that sold the membership rather than the one that performed the work.

4 Map the pricebook, every single item

Every pricebook item that can land on an invoice needs a QuickBooks item mapping and a GL account behind it. This is tedious and there is no shortcut, because one unmapped item fails the entire batch, not just its own line. Materials point at material COGS. Labor points at labor COGS. Equipment points at equipment COGS. Memberships point at the deferred revenue liability, not at income. And keep an eye on new items: a technician adding a one-off item in the field is the classic reason a batch that worked yesterday fails today.

5 Create a merchant clearing account and route payments through it

This is the highest-value ten minutes in the whole setup. ServiceTitan's default sends QuickBooks payments to Undeposited Funds. Better: create a bank-type merchant clearing account and route card payments there instead of straight at the operating account. Here is why. ServiceTitan exports the gross invoice, so a $10,000 card sale posts as $10,000. The processor keeps its cut and the bank deposits about $9,700. With a clearing account, the $10,000 lands in clearing, the $9,700 deposit and the $300 fee both come out of clearing, and clearing goes to zero. Without one, your bank account carries a $300 discrepancy that will never reconcile. See why your ServiceTitan deposits do not match the bank.

6 Give financing payouts their own lane

GreenSky, Wisetack, and Synchrony do not behave like a card processor. They fund on their own schedule, net of their own fees, and often in aggregated lumps. Do not batch financing payments in with card payments. Give financing its own payment type, its own clearing account, and its own batch, or the deposit you export will never match the deposit the bank made, and you will spend every month end trying to work out why. More detail on ServiceTitan financing payouts.

7 Fix sales tax before it becomes a filing problem

Sales tax can export from ServiceTitan as an invoice line item rather than as a QuickBooks tax rate. When that happens the QuickBooks sales tax liability report does not see it, so the number you file from is wrong, in a direction that is expensive either way. Confirm that tax is arriving as a rate tied to the correct jurisdiction and agency, and reconcile ServiceTitan tax collected to the QuickBooks liability account every month before anybody files anything.

8 Test on a copy of the file, not on the real one

Take a backup or a sandbox company file, export one small batch, and then trace every single record: the invoice, the payment, the adjustment, the bill. Confirm each landed in the account you intended, on the class you intended, in the period you intended. Fix what did not. Only then point the connection at the live file. Ten minutes of testing here saves a cleanup engagement later, and cleanup is much more expensive than setup.

Trusted by 25+ Contracting Businesses
Part Two: The Order

Export in this order, and know why

Order is not a preference. Exporting out of sequence permanently corrupts your inventory cost and your accounts receivable aging, and neither one fixes itself.

ExportWhenWhat happens if you get it wrong
1. Vendor bills and PO receiptsFirst, before any invoice that consumed those partsThe invoice costs the material against a stale or zero average cost. Job margin is overstated, and the weighted average cost of that SKU is permanently shifted for every future job.
2. Posted invoicesAfter the bills, in small daily batchesA large month-end batch can time out and post halfway. Some invoices land, some do not, and ServiceTitan considers the batch done. That is a revenue gap you will find in March.
3. Adjustment invoicesAfter their original invoice has exportedA credit or refund arriving before its original invoice has nothing to apply to and becomes an orphan on the A/R aging.
4. Customer paymentsAfter the invoices they apply toThe processor auto-batches overnight, and a payment landing in QuickBooks before its invoice creates a negative accounts receivable balance with no invoice to apply against.
5. Financing payoutsIn a separate batch, never mixed inMixed in with card payments, the deposit total will not match the bank and the reconciliation stalls.
6. DepositsGrouped to match exactly what the bank receivedA deposit grouped differently from the bank's batch means you are reconciling line by line by hand, forever.
Part Three: The Routine

The daily batch export, start to finish

Fifteen minutes a day. It is the single highest-leverage habit in a ServiceTitan back office, and the one that most shops skip until the year-end cleanup bill arrives.

1 Confirm the connection is actually alive

On QuickBooks Online, check that the connection has not been disconnected by a password change or an expired authorization. On QuickBooks Desktop, confirm the Web Connector is running and the ServiceTitan application is still checked in its list, and that the machine clock has not drifted. Clock drift takes the Web Connector offline silently, which means your batches queue up and nothing tells you. This is the number one cause of a "sync that just stopped".

2 Post yesterday's invoices

An invoice must be posted before it can be exported. Posting also locks the job costing flyout, so any labor or payroll adjustment made after this point will never reach job cost. That is a real constraint, not a bug you can wait out: if a technician's hours or pay need correcting, correct them before the invoice is posted, not after.

3 Export the bills first

Vendor bills and purchase order receipts go across before the invoices that consumed those parts. This is the step people skip because it feels like an accounts payable task rather than a revenue task. It is neither. It is the step that decides whether your material cost is real.

4 Build and review the invoice batch

Open the batch and actually look at it. You are checking three things: that the invoice count matches what you expect for the day, that no invoice carries an item you do not recognize, and that nothing is dated into a closed period. Keep the batch small. Daily beats weekly, and weekly beats a month-end batch that will time out and post halfway.

5 Release it, then read the error list instead of ignoring it

If the batch fails, it fails whole. Errors come in a small, learnable family: an unmapped pricebook item, a duplicate customer or vendor name (QuickBooks Desktop error 3100), a control account doing double duty (error 3140), or a batch too large for the request window. Fix the cause, do not delete the record. Deleting a record to make an error go away is how a $40,000 hole gets into a P&L. The full error family is on ServiceTitan QuickBooks sync not working.

6 Export payments and group the deposit to match the bank

Payments export after their invoices. Then group the deposit so it matches, to the penny, the single amount that will appear on the bank statement. If the processor deposits Tuesday and Wednesday's card volume as one lump on Thursday, the QuickBooks deposit should be that same lump. Book the processing fee out of the merchant clearing account in the same motion, and the clearing account returns to zero.

7 Clear Undeposited Funds to zero, or know exactly why it is not zero

Undeposited Funds is a holding account. It is supposed to empty. A balance sitting there for weeks is not a rounding issue, it is cash your balance sheet claims you have and your bank does not, and left alone it grows into a five or six figure phantom asset. If it is not clearing, something upstream is wrong, and the causes are laid out on ServiceTitan undeposited funds.

Part Four: Prove It

The monthly reconciliation that proves the sync worked

The export ran. That is not evidence of anything. This is the short list that turns "it synced" into "the books are right".

Revenue ties. Total ServiceTitan invoiced revenue for the month equals total QuickBooks income for the month. If it does not, a batch did not fully post. Find it now, not in March.
Undeposited Funds is zero at month end, or every dollar sitting in it is explained by a deposit that is genuinely still in transit.
The merchant clearing account is zero. Gross in, net deposit plus fee out, balance nil. A drifting clearing balance means fees are not being booked.
Every bank deposit is matched to a QuickBooks deposit of exactly the same amount and date. No plugs, no "Ask My Accountant".
Accounts receivable has no negative balances. A negative customer balance means a payment exported ahead of its invoice.
Sales tax collected in ServiceTitan equals the QuickBooks Sales Tax Payable movement for the month, before anyone files a return.
The membership deferred revenue balance moved by the right amount, meaning revenue recognized only for visits actually performed.
Job cost looks plausible. No job showing $0.00 labor. A technician with no hourly rate set will report zero labor cost and make a losing job look profitable.
Every batch for the month is accounted for. No posted invoice sitting unexported, and no batch showing as exported that only half landed.
Trusted by 25+ Contracting Businesses
Honest Limits

What a perfect sync still will not do for you

Run every step on this page and you will have a clean, dependable pipe between ServiceTitan and QuickBooks. You will still not have correct financial statements, because several things simply do not travel in the batch and no amount of configuration will make them.

Membership deferred revenue

Sell a $300 annual membership with two visits and $150 should recognize at each visit. ServiceTitan can recognize the full $300 on each visit, and a dismissed recurring service event will permanently mis-recognize the deferred balance. The deferral schedule in QuickBooks needs to be maintained by hand and checked monthly. This is the single most common reason a ServiceTitan shop overstates its revenue, and it is covered on ServiceTitan deferred revenue.

Technician pay, spiffs, and burden

Overlapping pay rules can pay a technician on both rules. Spiffs are commonly split among the technicians who performed the work rather than the one who sold it. Labor burden double counts if the burden rate is configured to include payroll costs that are already in the account. None of that is caught by an export. See ServiceTitan technician commissions.

Job costing after the invoice is posted

The job costing flyout locks once an invoice is posted and exported, so a payroll correction made afterwards never reaches job cost. Equipment cost and purchase order cost can be excluded from job costing by design. If you want job profitability you can act on, someone has to be watching for this.

That gap is the whole reason we exist. We run the export, maintain the deferral schedule, book the fees, allocate the labor, and close the month, which is what ServiceTitan bookkeeping services means in practice. If the file is already out of shape, start instead with ServiceTitan and QuickBooks cleanup. The wider mapping picture, covering sales tax by jurisdiction, membership revenue, and multi-location class tracking, is on the QuickBooks and ServiceTitan integration page.

Want us to set the sync up properly, once?

We will map the chart of accounts, the GL, the business units, and the pricebook, build the merchant clearing account, fix the export order, and hand your office manager a routine that takes fifteen minutes a day. Then we will reconcile the first month with you so you can see it tie out. Start with a free Books Audit and we will tell you what is broken before you commit to anything.

FinTruction is based in Coppell, Texas, and works with HVAC, plumbing, electrical, roofing, and multi-trade home service companies across the United States, entirely remotely. Call +1-945-382-5060 or start below.

Have Us Set the Sync Up
Answers

Frequently Asked Questions

How do I sync ServiceTitan to QuickBooks?

In this order. First build a chart of accounts that separates service, install, and membership revenue and splits cost of goods sold by material, labor, equipment, permits, and subcontractor. Then map every ServiceTitan GL account to a matching QuickBooks account, making sure no control account is also assigned to a pricebook item. Map business units to QuickBooks classes and map every pricebook item. Create a merchant clearing account and route card payments through it. Test one batch on a copy of the file. Only then go live, exporting bills first, then invoices, then adjustments, then payments.

What order should I export in?

Vendor bills and purchase order receipts first, then posted invoices, then adjustment invoices, then customer payments, then financing payouts in their own separate batch, then deposits grouped to match the bank. The critical one is bills before invoices: if an invoice exports before the bill for the parts it consumed, the material is costed against a stale or zero average cost, which overstates job margin and permanently shifts the weighted average cost of that SKU.

What is a merchant clearing account and do I need one?

Yes, you need one. It is a bank-type account in QuickBooks that card payments flow through instead of going straight to your operating account. ServiceTitan exports the gross invoice, so a $10,000 card sale posts as $10,000, but the processor keeps its fee and the bank deposits roughly $9,700. With a clearing account, the gross lands in clearing and both the net deposit and the processing fee come out of clearing, so it returns to zero. Without one, your bank account carries a permanent unreconciled difference.

How often should I run the batch export?

Daily. There are two reasons. First, a large batch, such as a month of invoices at a busy shop, can exceed the processing window and time out, sometimes posting halfway and leaving a revenue gap that ServiceTitan believes was exported. Second, an error in a daily batch is a fifteen minute problem, while the same error found at month end means unpicking four weeks of downstream transactions.

Why does my batch fail with an error?

The errors are a small, learnable family. An unmapped pricebook item will fail the entire batch, not just its own line, and is usually caused by a technician adding a new item in the field. QuickBooks Desktop error 3100 is a duplicate list name, often an inactive customer or vendor you forgot about. Error 3140 is a control account, usually Sales Tax Payable, Undeposited Funds, A/R or A/P, mapped to a GL account that is also assigned to an invoice item. And an oversized batch will simply time out.

Should payments go to Undeposited Funds?

ServiceTitan sends payments to Undeposited Funds by default, and Undeposited Funds is a holding account, so it is supposed to empty every time you record a deposit. The better setup for card volume is a merchant clearing account, because that is where the processing fee can be booked out. Either way, the test is the same: if the balance is still sitting there weeks later, something upstream is broken and your balance sheet is claiming cash you do not have.

Do I need to map business units to classes?

If you want a P&L you can make decisions from, yes. Business units are how ServiceTitan separates service from install, HVAC from plumbing, and one location from another. Mapped to QuickBooks classes, they let you see which part of the business is actually making money. Left unmapped, everything lands in one bucket. Watch the membership trap while you are there: revenue can land on the business unit that sold the membership rather than the one that performed the work.

How do I know the sync actually worked?

Prove it with numbers, not with a green status light. Every month: ServiceTitan invoiced revenue should equal QuickBooks income, Undeposited Funds and the merchant clearing account should both be zero, every bank deposit should match a QuickBooks deposit exactly, accounts receivable should have no negative balances, and ServiceTitan sales tax collected should equal the movement in Sales Tax Payable. If any of those fail, the export ran but the books are not right.

Can I sync historical data from ServiceTitan into QuickBooks?

Backfilling history is possible but it is a project, not a button, and it is the fastest way to double count revenue if it is done carelessly. The order matters even more than in a normal batch, the batches have to be small enough not to time out, and anything already recorded in QuickBooks by hand has to be identified before it is duplicated by the import. This is where a cleanup engagement earns its money.

Proof

What Contracting Owners Say

Real results from contractors we have helped untangle their books and systems.

Rated 5.0 on Google

Trusted by 25+ construction businesses nationwide

Procore Listed on theProcore Network

They didn’t just record transactions and call it a day. They built a custom chart of accounts around how a remodeling company actually runs, did a full catch-up on years of bookkeeping inside QuickBooks Online, and now stay on top of my monthly bookkeeping and payroll. Every step, they broke it down in simple terms instead of burying me in accountant talk.

Oniel Campbell, Founder of Moonz Contracting
Oniel Campbell
Moonz Contracting Founder

FinTruction rebuilt the whole thing from the ground up, with real job costing, work in progress, and retainage. They didn’t just hand me reports and disappear; they walked me through my numbers until I understood them.

Carl Moore, Owner of Hearth & Haus
Carl Moore
Hearth & Haus Owner
Dalton Mayberry, Owner of ProperCoat Painting
Sahil and his team handle the bookkeeping and job costing for my painting business. They cleaned up my books and set up integrations that give me accurate, timely job costing with solid weekly data. Reliable, detailed, and genuinely invested in getting the numbers right.
Dalton Mayberry
ProperCoat Painting
Owner

FinTruction is the only bookkeeping team we’ve found that truly understands construction accounting and WIP reporting. They aligned our income and costs across 21 jobs and gave us full, monthly transparency. Fast, accurate, and an indispensable partner.

John Wesley Sebastian, President of B&B Concrete
John Wesley Sebastian
B&B Concrete President

When I came to FinTruction I had no financial structure. No job costing, no WIP tracking, books behind. They did a full cleanup and rebuilt job costing and WIP tracking in QuickBooks. Now I know what’s billed, what’s owed, and where every job stands.

Clay Pearson, Owner of C. Pearson Contracting Corp
Clay Pearson
C. Pearson Contracting Corp Owner
Client testimonial

Hear it straight from a contractor we work with

A couple of minutes from a contractor we support, sharing what working with FinTruction has been like and what changed once their numbers finally made sense.

  • An owner sharing their honest experience
  • From guessing to numbers they actually trust
  • Why they recommend us to other contractors
Read more reviews

Set the sync up once, correctly, and stop rebuilding it

We map the accounts, the units, and the pricebook, build the clearing account, fix the export order, and reconcile the first month with you. Start with a free Books Audit.

Trusted by 25+ contracting companies Response within 24 hours Free Audit, no obligation
Start here

Get your ServiceTitan books audited, free

Tell us what is broken between ServiceTitan and your books. We will look at your actual data and show you exactly where the numbers diverge, at no cost.

Add your name so we know who we are talking to.
Add your company name.
Add a valid email so we can send your report.
Add a number we can reach you on.
Pick the option that fits your business.
Tell us what is going wrong so we know where to look.

We read every submission and reach out if your books are a good fit for the Audit.