QuickBooks integration
Your QuickBooks
should already know.
When a job finishes somewhere else, somebody re-types it into QuickBooks. Then they re-type the invoice. I connect the two so that stops happening — and so the number in QuickBooks is the same number as everywhere else, without anyone maintaining it by hand.
Desktop and Online are
two different jobs.
This is the part most quotes get wrong, so it is worth being plain about. QuickBooks Desktop and QuickBooks Online are not two versions of one product as far as an integration is concerned. They are two unrelated pieces of engineering.
Desktop is reached through the Desktop SDK, exchanging qbXML through the QuickBooks Web Connector — a small Windows application that runs on a machine you control, on a schedule, against a company file. It is local, it is stateful, and most of the work is in making it survive the real world.
Online is a REST API over OAuth 2.0. It is reached over the internet, there is no Windows machine in the middle, and the hard parts are different ones — token handling, rate limits, and the fact that the data model is not the same shape as Desktop's.
The practical consequence: an integration built for Desktop does not move to Online. It gets rebuilt. If anyone has told you otherwise, that is the question to press them on.
Intuit's own documentation, if you want to check any of this: the Desktop SDK and the Online API.
What I connect it to
Whatever you're
re-typing from.
- Field and delivery systems
- A job closed on a phone in the field posts to QuickBooks and the invoice updates itself. This is the one I am asked for most.
- CRM
- Salesforce or whatever you run. A won deal becomes a customer and an invoice without anyone copying fields between two tabs.
- E-commerce and payments
- Shopify, Square and Stripe. Orders, fees and payouts land in the right accounts, reconciled, instead of as one lump nobody can explain.
- Spreadsheets and the office suite
- Google Workspace or Microsoft 365. The month-end sheet builds itself from the same numbers rather than from a copy-paste marathon.
- Anything with no API at all
- Older systems that were never meant to talk to anything. There is almost always a seam — a database, an export, a file drop — and twenty years of looking for them helps.
The honest part
What usually
goes wrong.
None of these are hypothetical. They are the four things that turn a two-week integration into a two-month one, and you are entitled to ask any developer how they handle each.
- 01
The Web Connector stops and nobody notices
It is a Windows application that has to be running, scheduled, and pointed at an open company file. It fails quietly, which means the first symptom is usually a month of missing invoices rather than an error message.
- 02
The same customer, three times
Two systems with no shared identifier will happily create duplicates forever. Deciding what makes a record the same record is most of the real work, and it is a conversation about your business, not about code.
- 03
The chart of accounts does not survive contact
An integration that posts to the wrong account is worse than no integration, because it is quiet and your accountant finds it in March. Mapping gets agreed in writing before anything is built.
- 04
Someone upgrades QuickBooks
Versions change, and so do the rules about what a connected application may do. Builds that assumed a fixed world need re-touching; builds that expected change mostly do not.
Intuit keeps a list of the common Web Connector errors. If you are hitting one of those today, you are welcome to ring me about it whether or not it turns into work.
Cost and time
From $1,500.
Usually weeks, not months.
A first integration — one system, one direction, one clear rule about what makes a record the same record — starts at $1,500. Two-way sync, several systems, or a mapping nobody has written down yet costs more, and I will say so on the call rather than in month two.
I quote fixed where the scope can be pinned down, which is most of the time. What I will not do is give you a number before I know which QuickBooks you run and what is on the other end of the connection, because that number would be fiction.
Worth knowing
Desktop is
being wound down.
Intuit has stopped selling new Desktop subscriptions to most US customers and is retiring editions on a rolling schedule. The specific dates have already moved once, so they live on a page of their own with the date I last checked them, rather than buried here going quietly stale.
What matters for you is the bit above: a Desktop integration does not survive the move to Online. If you are running a custom sync against Desktop today, you are holding something with an expiry date on it, and the replacement is a build rather than a setting. That is worth knowing a year early instead of a week late.
Before you email anyone
Questions I get
every time.
- Which QuickBooks do I need to be on?
- Any of them. Desktop Pro, Premier, Enterprise or Mac through the SDK and the Web Connector; QuickBooks Online through its REST API. What matters is that you tell me which one before anyone quotes you, because the two are different builds and a quote that does not ask is a quote to be careful with.
- Do you need access to our books?
- For Desktop, access to a machine that can reach the company file, and a QuickBooks user for the integration to act as. For Online, you authorise the connection yourself and can revoke it at any time without ringing me. I ask for the narrowest access that does the job, and your accountant is welcome on the call.
- Will it sync both ways?
- It can, and often it should not. Two-way sync means deciding what happens when both sides change the same record, and that is a business rule, not a technical one. Most first builds go one direction, prove themselves for a month, and grow from there — which is also the cheaper order to do it in.
- How long does it take?
- A single one-directional integration with a clear matching rule is usually a couple of weeks from go-ahead, most of which is testing against your real data rather than writing code. Several systems, or a mapping that has never been written down, runs longer and I will say so before you commit.
- What happens when it breaks at month six?
- It tells me, not you. Anything I build reports its own failures, because the worst version of this work is the one that stops quietly and nobody notices until the month-end numbers are wrong. I stay on for the fixing, and you are not buying a system only I can maintain.
- We already have a developer. Can you just do the QuickBooks end?
- Yes, and that is often the sensible split. I have spent twenty years on the side of this that bites, and there is no sense in your team learning the Web Connector's failure modes from scratch for one project.
Thirty minutes, no charge, and at the end of it an honest shortlist of what I would fix first — spoken, on the call.