Jobber + QuickBooks Online: how the sync actually works, and the errors that break it
Duplicate customers in QuickBooks. Bank deposits that never match an invoice. A sync screen full of errors. Jobber’s help center documents a fix for each of them. This guide collects those fixes, in the order you should work through them, with links to the source.
On this page
First, find out which integration you’re on
Jobber has two different QuickBooks Online integrations: the original one, which Jobber’s docs now call the legacy integration, and the new QuickBooks integration. They follow different rules. A lot of the advice online doesn’t say which one it’s describing, so a fix that worked for someone else may not apply to you.
The quickest tell, going by Jobber’s two sets of documentation:
- Legacy: you sync by hand. There’s a “Sync to QuickBooks” button. Jobber says many users run it at the end of the day, and adds “We don’t suggest running multiple syncs back-to-back” (Jobber: legacy sync).
- New: there’s no “Sync now” button. Items sync on their own, continuously (Jobber: connect the new integration).
- First time connecting? Jobber’s docs say first-time connectors get the new integration. Some of those same pages still describe the new one as “gradually being rolled out to select accounts,” so look at your account rather than assume.
- Region. The new integration covers QuickBooks Online in the US and Canada. The legacy one covers US and “Global” QuickBooks Online settings.
If you’re on legacy, you can migrate. It’s a one-way door: after migrating, in Jobber’s words, “you are unable to return to the old integration.” On migration, anything created or updated since your last manual sync gets synced (Jobber: migrate).
A few things hold for both. It’s QuickBooks Online only; QuickBooks Desktop isn’t supported (Jobber: integration FAQs). One QuickBooks company connects to one Jobber account, and an admin user sets up the connection. On Jobber’s pricing page, “Sync with QuickBooks Online” is listed from the Connect plan up; the Core plan doesn’t list it. Plans change, so check the pricing page for your account.
What syncs, and which way
The single biggest difference: on the new integration, syncing runs one way, from Jobber into QuickBooks (the only exception is an optional one-time import when you first connect). Jobber calls itself the “source of truth.” If a record is wrong, you fix it in Jobber and let the fix flow over. An edit made only in QuickBooks doesn’t come back, and an invoice’s paid status no longer syncs back either (Jobber: how items sync, new integration).
| Item | New integration | Legacy integration |
|---|---|---|
| Clients | Jobber → QuickBooks. Optional one-time import from QuickBooks at first connect. | Both ways. |
| Products & services | Jobber → QuickBooks. Optional one-time import at first connect. | Both ways. |
| Invoices | Jobber → QuickBooks. Later edits keep syncing. | Jobber → QuickBooks, once only. Later edits go in both programs by hand. Only the Paid status updates afterward. |
| Payments | Jobber → QuickBooks, set to “when collected” or “do not sync.” | Jobber → QuickBooks, one time. |
| Refunds, tips, payouts | Each set to “when collected” or “do not sync.” | Covered in the legacy article too: payouts “can be set up to sync to QuickBooks including the fees.” |
| Timesheets | When approved. Needs QuickBooks Payroll and an exact employee-name match. | Jobber → QuickBooks. |
| Properties | Property address becomes the QuickBooks shipping address. | Never sync. Invoices go to the parent customer only. |
| Quotes & jobs | Jobber’s documentation for both integrations lists only the items above. On the new integration, though, quote deposits sync as payments: see the gotcha. | |
Source: Jobber’s item-sync articles for each integration.
Details that trip people up on the new integration
- Services land in QuickBooks as “Services” and products as “Non-inventory Products,” and costs sync. A one-off custom line item lands as a “Custom Service” with the Jobber name in the description.
- Tips post as journal entries to an “Undistributed Tips” account, with no client attached (Jobber: payments, fees and payouts).
- The optional first-connect import brings over active clients and products/services. QuickBooks sub-customers become properties in Jobber.
- “Sync older items to QuickBooks” backfills invoices, payments, payouts and timesheets, but in dependency order: payments need their invoices, and payouts need both invoices and payments.
Details that trip people up on legacy
- A bulk payment applied across several invoices doesn’t sync.
- Products and services break if they’re sub-items, categorized, or mapped to an income account other than “Sales.”
- Clients are matched on the QuickBooks first and last name fields.
When it syncs, and what edits and deletes do
New integration
- Continuous. Depending on your settings, clients sync when created or once they appear on an invoice, payment or timesheet. Invoices sync when created or once marked sent.
- Edits keep syncing after the first sync.
- Deleting only in QuickBooks doesn’t stick. An invoice deleted in QuickBooks re-syncs if it’s edited in Jobber. Jobber’s rule: “To remove an invoice that has synced to QuickBooks, it must be deleted from both Jobber and QuickBooks.”
- Jobber never deletes in QuickBooks. Removing client info in Jobber doesn’t remove it from QuickBooks; Jobber “does not have the ability to delete from QuickBooks.” And updating a client that’s inactive in QuickBooks reactivates it there.
Legacy integration
Invoices and payments sync one time, so any later edit has to be made in both programs. Only the Paid status updates afterward: an invoice marked paid in QuickBooks syncs that status back, but the balance stays open in Jobber. Jobber’s recommendation is to record payments only in Jobber.
Reading the sync screen
An error blocks an item from syncing. A warning means it synced, with changes. And one to read twice before you click: the bulk Resolve and Ignore actions apply to every item that matches your current filter, not just the page you can see (Jobber: common sync errors).
The errors that actually hurt
Ranked by how much cleanup they tend to cause, which is our editorial judgment, not a measurement. The error wording comes from Jobber’s help center: the new-integration error list and the legacy error list. Where legacy words it differently, that’s noted.
1. “Client already exists in QuickBooks”
What it means
QuickBooks requires every customer name to be unique, and on the new integration the Jobber client name maps to the QuickBooks display name. Two records with the same name, and the second one can’t sync. Legacy says it as “The name supplied already exists.”
Why it happens
The same customer ends up with two records. One Jobber user put it plainly on the community board:
“At least once a week, when syncing with quickbooks, I get an error message saying that it can’t sync CLIENT NAME because CLIENT NAME already exists.” Jobber Community thread
The causes named in that thread are ordinary. An existing customer fills in the online request form and types “NJ” where staff would autofill “New Jersey.” Or someone in the office creates a new customer while on the phone. Fixing one, the poster says, takes “half an hour.”
The first-connect import has its own matching rules on the new integration: companies match by company name, individuals by first and last name. If the email also matches, the existing client is updated; otherwise a new client is created. Multiple matches go to a duplicate-resolution screen.
The fix
- Two different people: rename one side so the names differ.
- Same person: Jobber’s documented workaround is to temporarily rename the Jobber client (for example “John Smith 1”), let it sync, then rename it back. QuickBooks prompts you to merge. Click Yes.
- Legacy only: if you have two “John Doe” clients in Jobber and only one can be in sync, Jobber says to delete the one with no sync icon.
2. Payments and payouts stuck because something upstream never synced
What it means
Errors cascade downhill: whatever broke the invoice or the payment breaks the payout too. On a payout you’ll see “Payments from the following invoices have not been pushed.” On a payment, “TxnID Cannot Be Linked” means the invoice never synced, or was deleted in QuickBooks. Or an item is waiting on a client or product that’s “not in sync.”
The fix
- Work upstream first, in the fix order below. When a client or product is the blocker, fix it, then Retry.
- For “TxnID Cannot Be Linked,” Jobber gives two routes: apply the payment to the client’s account balance, sync, then apply it to the invoice in both programs; or ask Jobber support to re-sync.
3. The bank deposit doesn’t match the invoice
This one is a reconciliation headache more than an error message. It gets its own section below.
4. Tax rate missing, mismatched, or substituted
What it means
Each tax rate has to exist in QuickBooks under a matching name, or you get “Tax rate missing in QuickBooks Online.” Lines that aren’t taxable need a 0% code in QuickBooks (“0% tax rate not found”). If the same rate exists under another name, you get a “Tax rate substituted” warning. A “Business Validation Error” about calculating tax is fixed the same way: make the rates match. Legacy has its own version: “Tax Error – check QuickBooks US/Global settings.”
Why it happens
Two lists of tax rates, maintained separately, drift. If you use QuickBooks Automatic Sales Tax, Jobber shows suggestions with an “Add tax rates to Jobber” option.
The fix
Make the rates identical in both programs, then reselect the rate on the invoice in Jobber and save it again. For a missing rate, Jobber’s other route is to remove that rate from the invoice in Jobber.
5. “Invoice number already in use”
QuickBooks already has an invoice with that number. Legacy says “DocNumber already exists.” The fix is to renumber in Jobber, which counts up from the highest number.
6. Disconnected, or “Permission denied”
- “Your Jobber account is no longer connected”: disconnect and reconnect. One known cause: the user who set up the connection was deactivated in Jobber, and deactivating that user drops the connection.
- “Permission denied”: disconnect, reconnect, and skip the import.
- Jobber also lists an ended QuickBooks subscription, or a QuickBooks billing problem, among the causes. The QuickBooks Online subscription has to stay active.
- Before you reconnect, read the reset warning below.
7. Zero totals, discounts, and rounding
- Zero or negative totals. Errors saying an amount must be “$0 or greater,” or a discount larger than the subtotal, come from QuickBooks needing an invoice total of at least $0.01.
- Rounding warning. Jobber rounds the final total; QuickBooks rounds each line. On an invoice with both taxable and non-taxable lines plus a discount, Jobber applies the discount to the non-taxable lines first, while QuickBooks spreads it proportionally. The invoice still syncs. Edit the QuickBooks total by hand if it’s off.
Also on the list: quick reference
| Message | What to do |
|---|---|
| “Too many updates” or “Unable to connect” | Wait 30 seconds, then Retry. |
| “QueryProcessingError: null” | A QuickBooks API issue. It resolves itself. |
| “Account period has closed” | Reopen the period, or make the change in QuickBooks. |
| “Duplicate product or service,” “Product or service already exists,” “Two or more matching products or services found” | Product and service names must be unique in QuickBooks. Rename. A QuickBooks “Inventory” item’s type can’t be changed, so recreate it. |
| “Invalid Reference Id: Names element id not found” | Something it points at was deleted or made inactive. Contact Jobber support (1 to 2 business days). |
| “More than 21 characters in doc_num” | Shorten the check or confirmation number on the payment. |
| Payment method not found | Add it in QuickBooks: Gear → All Lists → Payment Methods. |
| “Undeposited funds account not found” | Create an asset account named “Undeposited Funds.” |
| “Bank account not found” (payouts) | Create the Checking account. |
| “Tips not found” or “Payout retry failed to sync” | Contact Jobber support. |
| “Employee does not exist in QuickBooks” | Create the employee with the exact same name. Split overnight shifts at midnight. |
| “Too many characters” (clients) | Often a phone field with notes typed into it. Legacy caps display name at 25 characters, phone at 30, email at 100, address at 50. On the new integration, character-limit and invalid-character issues are warnings only. |
Why your bank deposit doesn’t match the invoice
If customers pay through Jobber Payments, the deposit that lands in your bank is not the invoice amount: the processing fee comes out before the money is deposited. So the invoice and the bank-feed line won’t match, and they aren’t supposed to.
How the new integration books it
- Payments land in Undeposited Funds (or Unapplied Funds).
- When the payout syncs, they move to your Checking account, and the fees split out to an account called “Jobber Payments Fees.”
- You choose that Checking account in Jobber’s Chart of Accounts settings: a QuickBooks account with type Bank and detail type Checking. That choice doesn’t change where payouts are actually deposited.
The edge cases
- Instant payouts post to Checking plus Instant Payout Clearing, and reconcile at the next standard payout.
- Refunds sit in Refunds Clearing until the payout syncs.
- Disputes are treated as lost immediately. A dispute you win moves back.
- A negative payout posts as a journal entry, because QuickBooks has no deposits under $0.
All of the above is from Jobber’s payments, fees and payouts article.
Where it goes wrong
Without payout sync, the full payment sits in Undeposited or Unapplied Funds. If your bank feed also imports the deposit, an older Jobber article describes the result: “two ‘unapplied’ payments for the same Invoice” (Jobber: reconcile payments). Jobber’s fix is to turn on payout sync. If you reconcile by hand instead, use the payout fees as the adjustment.
Intuit agrees. A QuickBooks Team answer in the QuickBooks Community says “processing fees are deducted from the payment… explains why the payment amount in your bank register doesn’t match the deposit,” and suggests matching it manually with Resolve Difference (QuickBooks Community).
There’s an error version of this, too: “Unable to associate payments, refunds, or tips with bank deposit.” It means the deposit was already recorded somewhere else. Jobber’s options: set “Deposit to” back to Undeposited Funds, delete the manual bank deposit, and Retry; or reconcile it by hand and Ignore the error.
The quote-deposit gotcha
Jobber’s new-integration docs say deposits collected on a quote are treated as payments, and they sync with payments. A quote isn’t an invoice, though, so when the deposit reaches QuickBooks there’s nothing yet to apply it to. A Jobber Ambassador described it on the community board:
“We send a quote out, it requires a 25% deposit. Jobber collects the deposit, quickbooks registers the payment, but with NO invoice # since an invoice has not been completed.” Jobber Community thread
Jobber documents deposits syncing as payments, so plan for it rather than hunting for a setting: decide who ties each deposit to its invoice once the job is invoiced, and look for orphaned deposits in Undeposited or Unapplied Funds before you close the month.
Fix in this order
Because errors cascade, fixing them out of order wastes time: you clear a payout error and it comes straight back because its invoice is still stuck. Jobber’s own recommended order:
- Clients.
- Products and services.
- Invoices.
- Payments, refunds and tips. These need their invoices.
- Payouts. These need invoices and payments.
After each fix, Retry the item. Before a bulk Resolve or Ignore, check the filter (see above).
Habits that keep it clean
- One client record per person. Search before you create, especially on the phone.
- Intake rules everyone follows. Decide how names, company names and states get written (“New Jersey,” not “NJ”), and make the request form and the office agree.
- Record payments only in Jobber. On the new integration nothing comes back from QuickBooks; on legacy, Jobber recommends it explicitly.
- Keep tax rates mirrored by name in both programs, including a 0% code for non-taxable lines.
- Keep the setup user active. Deactivating the user who connected QuickBooks drops the connection.
- Don’t reset on reconnect unless you mean to. Reconnecting to the same QuickBooks company offers “Reset and Import” (resets all mappings and reopens the import) or “Don’t import” (keeps your mappings). Connecting to a different company offers “Reset and Connect” or Cancel. Resetting throws away the links between records that already match, and that is a duplicate risk worth weighing. If you only need to restore a dropped connection, “Don’t import” is the option that keeps them.
- On legacy, before a first connect: Jobber’s advice is to start with one side empty to avoid duplicates.
Two things worth checking
We haven’t confirmed either of these in vendor documentation. They’re risks to look at in your own setup, not known behaviour:
- QuickBooks’ own invoice reminders. If they’re switched on, check whether they’re emailing customers whose invoices you already follow up on from Jobber.
- A second tool writing into QuickBooks. If another app also creates customers or invoices in the same QuickBooks company, two writers sharing one customer list is a likely source of duplicates.
If you’d rather not untangle it yourself
Everything above works without us, and the linked Jobber articles are the authority. If you’d rather hand it off, messy records and half-configured software are what our cleanup and configuration engagement is for, and the Revenue Recovery Sprint starts with a baseline of what you’re actually owed and fixes the invoice data that breaks follow-up. The intake is the way in.