Skip to content

QuickBooks Online sync

Your books stay current, and nothing posts twice.

TradesWork posts invoices, payments, refunds and voids to QuickBooks Online on its own, every 15 minutes or when you press Sync now. Each change posts once, in order, and anything QuickBooks rejects waits in a fix-it queue that says what went wrong in plain English.

QuickBooks Online sync

Last sync 2 min ago
Invoices synced today23
Payments synced today19
Edited invoices updated (not duplicated)2

Needs a look (1)

Tax code missing on item “Surge protector”

Fix in one place, then retry. Nothing posted twice.

Illustration: the QuickBooks Online sync queue with a fix-it list

What it does

Everything QuickBooks online sync does for your shop

06

Reconcile when you switch from ServiceTitan

Reconcile with QuickBooks reads your customers, invoices and payments (read-only) and checks open A/R against the imported data to the penny, then brings over any invoices that are missing.

Reconcile when you switch from ServiceTitan · Real product screenshot, demo company data.
Accounting overview with accounts receivable and invoices

Invoices post when sent, and update when they change

Sent invoices post to QuickBooks. Later edits update the same QuickBooks invoice instead of creating an adjustment invoice, and a void in TradesWork voids it in QuickBooks. Drafts never post.

Payments and refunds as they happen

Payments are applied to the open balance QuickBooks shows, with any extra left as a customer credit. Refunds post as QuickBooks refund receipts, because a refund is money that actually went back out.

No duplicates, by design

Every change is recorded in the same save as the invoice or payment itself, posted once, and checked against QuickBooks by our link, a stable request id and the invoice number before anything new is created.

Fix-it queue in plain English

Anything QuickBooks rejects lands in one queue with the reason, such as a missing tax item, a closed period or an invoice number already used by another customer. Fix the cause and press Retry, or Mark handled.

Item, tax and account mapping

Pick the QuickBooks item for services, materials, equipment or a specific price book category, choose how sales tax posts, and set where payments land and where refunds are paid from.

How it works

Step by step

  1. 1

    Connect

    An owner or admin opens Settings › Integrations › QuickBooks Online, presses Connect QuickBooks, signs in to Intuit and picks the company.

  2. 2

    Set a cutover date

    Only invoices dated on or after the cutover post. Nothing posts until one is set, so your existing books are never touched by accident.

  3. 3

    Map items, tax and accounts

    Choose the default item and the items for services, materials and equipment, the sales tax method, and the payment and refund accounts. Save.

  4. 4

    Let it run

    Sync runs every 15 minutes, or press Sync now. Sync status shows Last run, Waiting, Retrying, Need attention and Posted.

  5. 5

    Work the queue

    When something needs attention, the fix-it queue says why. Fix the cause, press Retry, and it posts with nothing doubled.

Who it helps

Bookkeeper
Invoices, payments and refunds arrive in QuickBooks already mapped to the right items and accounts, with no batches to export and one queue for exceptions.
Office manager
Sees at a glance whether the books are current, and gets a plain reason, not an error code, when something didn't post.
Owner
QuickBooks shows the same revenue and A/R as TradesWork within 15 minutes, so the numbers your accountant sees match the numbers you run the business on.

What to measure

Items needing attention
The Need attention count on Sync status. A healthy setup sits at zero most days; a rising count usually means a mapping gap.
Open A/R difference
Compare open A/R in TradesWork and QuickBooks at month end. With the sync working, the difference should be explained only by items in the fix-it queue.
Days to close the month
How many working days after month end your bookkeeper needs to close. Removing batch exports should shorten it.

Compared with ServiceTitan

How TradesWork QuickBooks online sync compares

ServiceTitan connects to many more accounting systems, including QuickBooks Desktop and Xero. TradesWork supports QuickBooks Online only, but posts continuously and checks for an existing invoice number before creating one, a case that ServiceTitan's help center documents as an export error to fix by hand.

 ServiceTitanTradesWork
Accounting systemsQuickBooks Online, QuickBooks Desktop, Xero, Sage Intacct, Acumatica, Viewpoint and others, per its integrations pageQuickBooks Online only. No Desktop, no Xero
TimingQuickBooks Online syncs in near-real time, per its integrations page; fixes run through the Pending Export Report and batch re-export, per its help centerEvery 15 minutes, or Sync now. No batches
Duplicate invoice numberQuickBooks error 6140 stops the export; you search QuickBooks, then bypass or renumber and re-exportLooks the number up first: links the same invoice, or flags a different customer's invoice in the fix-it queue
Duplicate customersNames that differ by spacing create new QuickBooks customers; fix by copying the Display Name As valueMatches by display name or email before creating; or holds unmatched customers for you to decide

ServiceTitan details from its public help center and published pages; see sources below.

The test of an accounting sync isn't the day it works. It's the day the internet drops halfway through a post, or a bookkeeper edits an invoice in QuickBooks, or the same invoice number already exists. TradesWork is built for those days: every invoice, payment, refund and void posts to QuickBooks Online once, in order, and anything QuickBooks refuses waits in a queue that tells you why.

What syncs, and what doesn't

RecordWhat happens in QuickBooksWhen
InvoiceCreated when sent; updated in place when it changes laterNext sync after the change
Voided invoiceVoided in QuickBooks (skipped if it never posted)Next sync
PaymentApplied to the open balance QuickBooks shows; any extra stays as a customer creditAs it happens
RefundPosted as a refund receipt from your refund account, not a credit memoAs it happens
CustomerMatched by display name or email, or created; then left aloneFirst time it's needed
Price book itemsNot synced; your lines map onto existing QuickBooks itemsn/a
Deposits, payout matching, bills, payrollNot syncedn/a

Drafts with no money on them never post. Invoices dated before your cutover date are skipped, and so are invoices you imported from your old system. That last rule matters if you're switching: your history stays where it is, and QuickBooks only sees new work.

Why nothing posts twice

Most duplicate invoices in QuickBooks come from a sync that sent something, lost the reply, and sent it again. TradesWork closes that gap in plain, boring ways.

  1. 1

    Record it with the sale

    When an invoice, payment or refund is saved, a note that QuickBooks needs to hear about it is saved in the same step. If the save fails, there's no note. If it succeeds, the note can't be lost.

  2. 2

    One open item per invoice

    Edit an invoice five times before the next sync and QuickBooks gets one update with the latest version, not five.

  3. 3

    Check before creating

    Before creating anything, TradesWork checks its own link to the QuickBooks record, sends a fixed request id QuickBooks recognizes on a retry, and looks the invoice number up in QuickBooks.

  4. 4

    Post in order

    Changes go in the order they happened, chained per invoice. A payment never posts before its invoice, and a problem with one invoice holds back only that invoice.

If the invoice is already in QuickBooks under the same number, TradesWork links to it with the message "Invoice #N was already in QuickBooks: linked to it instead of creating a duplicate." If nothing changed since the last post, it says "No changes since the last post" and moves on.

After each invoice posts, the totals are compared. If QuickBooks disagrees, you'll see "QuickBooks shows $X for invoice #N but TradesWork has $Y." It's almost always sales tax, which is why the tax setting below matters.

The fix-it queue

Temporary problems retry on their own, waiting longer each time, up to 8 tries. If QuickBooks asks TradesWork to slow down, you'll see "QuickBooks asked us to slow down. Posting resumes automatically." Everything else goes to the fix-it queue on the QuickBooks page with a reason you can act on.

What you'll seeUsual causeFix
Choose a default QuickBooks item…Your company has no "Services" itemPick a Default item and save
Choose a QuickBooks item for sales tax…Tax mapping missingFill it in, or switch to a separate tax line
No QuickBooks customer is named "X"…You chose Ask me first for unmatched customersCreate or rename the customer in QuickBooks, then Retry
QuickBooks already has an invoice #N for a different customerInvoice numbers overlap with your old systemRaise where job numbers start, or renumber in QuickBooks
QuickBooks shows $X for invoice #N but TradesWork has $YUsually taxCheck the tax setting, then Retry
…its date is in a closed periodYour bookkeeper closed the monthReopen the period in QuickBooks, then Retry
Invoice #N was deleted in QuickBooksSomeone deleted it thereRetry to post it again, or Mark handled

Every item has two buttons. Retry puts it back in line and runs it now. Mark handled tells TradesWork you dealt with it in QuickBooks yourself; it records who did it and what the problem was, and won't post it. Saving your mapping settings automatically re-queues anything that failed because of setup, and editing an invoice that failed puts it back in line too.

QuickBooks itself sends one kind of notice back: when someone deletes or voids a record TradesWork posted. Intuit signs those notices,1 and TradesWork checks the signature and rejects anything it can't verify. The record returns to the queue as "deleted/voided in QuickBooks but is still open in TradesWork."

Mapping settings

All of this lives under Settings › Integrations › QuickBooks Online, in a section called What posts and how.

  • Cutover date: "only sync invoices dated on or after." Required before anything posts.
  • Unmatched customers: Create the customer in QuickBooks (default), or Ask me first (fix-it queue).
  • Sales tax: a separate sales tax line (works with every company, including Automated Sales Tax), or a QuickBooks tax code with the TradesWork amount (not for Automated Sales Tax). TradesWork always calculates the tax; QuickBooks never recalculates it.
  • Items: a default item, then one each for Services, Materials and Equipment, and optionally by price book category, which wins over the kind. Membership discounts post as one discount line.
  • Payments go to: Undeposited Funds by default, so payments group into deposits that match your bank.
  • Refunds: which account refunds are paid from, and which item they book against.
  • Review hold: an option under Job Costing to hold invoices back from QuickBooks until they pass review.

Staying connected

QuickBooks connections run on sign-in tokens from Intuit. Intuit's developer FAQ says a refresh token lasts 100 days and the clock resets each time it's used,2 and Intuit has since announced a five-year maximum on top of that.3 Connections can also end when someone revokes access from the QuickBooks side. Plan on reconnecting now and then; it takes a minute. When the connection ends, the badge shows Reconnect needed and posting pauses. Press Reconnect QuickBooks, sign in again, and the queued changes post. Nothing is lost while you're disconnected.

Tokens are stored encrypted. A Sandbox tag appears if you've connected an Intuit test company rather than your real books.

Reconciling when you switch from ServiceTitan

The day you move, the question your accountant asks is "does open A/R still match?" Under Settings › Integrations › Import from ServiceTitan, Reconcile with QuickBooks answers it.

Accounting in TradesWork: open A/R, collected this month and unpaid invoices, the numbers the reconciliation checks against QuickBooks. · Real product screenshot, demo company data.
Accounting overview with accounts receivable and invoices

It reads your QuickBooks customers, invoices and payments (24 months by default, plus every open invoice regardless of age) and writes nothing to QuickBooks. Imported customers are matched by email, then phone, then name, ignoring LLC, Inc and similar. The report shows customers only on one side, invoices only on one side, balances that differ, and whether open A/R matches to the penny. Bring missing A/R and invoices from QuickBooks pulls over invoices TradesWork doesn't have yet, and those are tagged so the sync never posts them back.

This is a switching tool, not an ongoing sync. Outside a switch, data only flows from TradesWork to QuickBooks.

Free download · PDF + ExcelThe ServiceTitan Exit KitContract timeline, every export to run, a cut-over plan and the questions to ask before you give notice.

How it compares to ServiceTitan

ServiceTitan supports far more accounting systems: QuickBooks Desktop, Xero, Sage Intacct, Acumatica and others.4 If you're on Desktop or Xero and not moving, TradesWork isn't a fit today.

On QuickBooks Online, the difference is in the error cases. ServiceTitan's help center documents a duplicate document number error (QuickBooks code 6140) where you search QuickBooks, then bypass or renumber the invoice and re-export.5 It also documents duplicate QuickBooks customers created when names differ by spacing, fixed by copying the QuickBooks "Display Name As" value into ServiceTitan.6 TradesWork checks the invoice number before creating, matches customers by name or email, and puts whatever's left in one queue.

Who this isn't for

If you need class or location tracking in QuickBooks, a separate QuickBooks file per business unit, or two-way sync where your bookkeeper's edits flow back, this sync doesn't do it. Supplier bills, payroll and deposit matching stay in QuickBooks. Timesheets export separately for payroll.

Footnotes

  1. Intuit Developer, "Webhooks" (signature verification with the intuit-signature header). https://developer.intuit.com/app/developer/qbo/docs/develop/webhooks ↩

  2. Intuit Developer, "Authorization FAQ." https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/faq ↩

  3. Intuit Developer blog, "Important changes to refresh token policy." https://medium.com/intuitdev/important-changes-to-refresh-token-policy-8443779d40db ↩

  4. ServiceTitan, "Accounting integrations." https://www.servicetitan.com/features/accounting/integrations ↩

  5. ServiceTitan help center, QBO error 6140 duplicate document number. https://help.servicetitan.com/docs/qbo-error-cant-export-invoice-id-400-badrequest-validationexception-was-thrown-6140-duplicate-document-number-error ↩

  6. ServiceTitan help center, "Duplicate Customers in QuickBooks after Exporting from ServiceTitan." https://help.servicetitan.com/docs/duplicate-customers-in-qb-after-exporting-from-servicetitan ↩

Free download

The ServiceTitan Exit Kit

Contract timeline, every export to run, a cut-over plan and the questions to ask before you give notice.

Get it free
  • Contract and notice timeline worksheet
  • Every ServiceTitan export to run, with where to find it
  • Data map: what moves, what stays, what to rebuild
  • A 4-week side-by-side cut-over plan
  • Customer card and phone-number checklist

Frequently asked questions

No. Only QuickBooks Online is supported. Intuit offers a move from Desktop to Online that keeps your history, if you're considering it anyway.

Ready to run a tighter shop?

Try the TradesWork AI plan free for 14 days. Bring your customers and price book, or start fresh with a price book made for your trade.

  • No credit card
  • No contract
  • Cancel any time
Three workers in coveralls unloading equipment from a van