Skip to content

QuickBooks and databases

QuickBooks Online vs Desktop: how each exposes data to a database

QuickBooks Online and Desktop give very different access to your data: a cloud REST API versus a local SDK and company file. What each means for syncing to MySQL or SQL Server.

· 5 min read

"Can I get my QuickBooks data into a database?" has two different answers depending on which QuickBooks you run. QuickBooks Online and QuickBooks Desktop share a name and most of the accounting concepts, and almost nothing else about how a program gets at the data. Knowing which side you are on decides the tools, the cost and what is even possible.

Where the data lives

QuickBooks Desktop keeps everything in a company file (.QBW) on a PC or a file server in your office. Programs reach it through the QuickBooks SDK, which has to run on a Windows machine that has QuickBooks installed and can open the file. The data never leaves your network unless you send it somewhere.

QuickBooks Online keeps everything on Intuit's servers. There is no file. Programs reach it through a REST API over the internet, after the company's administrator authorises the app through OAuth 2.0. Your own office network is not involved at all.

How a program reads it

QuickBooks DesktopQuickBooks Online
InterfaceQuickBooks SDK: qbXML requests, or the QBFC library from .NETREST API, JSON, OAuth 2.0
Runs whereOn a Windows machine with QuickBooks installedAnywhere with internet access
Needs QuickBooks runningThe file must be openable by the sync user; a service can do this unattendedNo
Picking up changesQuery by TimeModified, plus a deleted-records queryQuery by LastUpdatedTime, or the Change Data Capture endpoint; webhooks for near-real-time
ThroughputLimited by the machine and the file; large files are slowIntuit throttles requests per company per minute; bulk reads are paged
ODBCThird-party drivers (e.g. QODBC) against the fileThird-party drivers over the API
Built-in exportReports and lists to Excel/CSVReports and lists to Excel/CSV

What that means for a database sync

Desktop: local, fast, Windows-bound

A Desktop sync is a Windows program sitting next to the company file. It can read a large file quickly because nothing crosses the internet, it works whether or not your office connection is up, and it can run on a schedule from the system tray of the machine where QuickBooks is open. The constraint is that it is tied to that machine: the sync, QuickBooks and the file all have to be together on one Windows box. This is the environment QBSync is built for: it works alongside the open Desktop company file and keeps a MySQL or SQL Server copy current on a schedule.

Online: anywhere, rate-limited, token-managed

An Online sync is a web-style program that calls Intuit's API with an access token. It can run on any server, including the one hosting the database. The work is in the plumbing: refreshing tokens before they expire, staying within the request limits, paging through large result sets, and mapping JSON entities into tables. The Change Data Capture endpoint makes incremental runs straightforward once that plumbing exists. We build these as custom integrations, sized to the company and the objects that matter.

The objects are mostly the same

Both products have customers, vendors, items, accounts, invoices, bills, payments and journal entries, and both carry a stable ID and a modified timestamp on each record. A database schema designed for one translates to the other with renamed keys (ListID/TxnID on Desktop, numeric Id on Online) and a few field differences. The reports you build on top are the same.

The exceptions worth knowing: Desktop has richer inventory (assemblies, units of measure, sites in Enterprise) and job costing; Online has features that do not exist on Desktop (for example its own payments and some app integrations). If your reporting depends on one of those, it only exists on the side that has it.

Choosing the approach

  • Desktop, want reporting or a feed to other systems: a scheduled sync utility on the file server. QBSync does this with a free demo.
  • Desktop, need data posted back into QuickBooks: a custom SDK integration.
  • Online, any direction: a custom API integration, hosted wherever your database is.
  • Both products in the same business (common after a partial migration): a copy of each in one database is often the only place the combined numbers can be seen.

Questions people ask

Something not covered here? Ask us directly.

Does QBSync work with QuickBooks Online?

QBSync is built for QuickBooks Desktop company files. For QuickBooks Online we build the database sync as a custom integration against Intuit's API, which can be hosted next to your database rather than on a Windows PC.

Is the QuickBooks Online API free to use?

Intuit does not charge for API access to your own company. The cost is in building and hosting the integration, and in any app you buy that uses the API on your behalf.

Can a QuickBooks Desktop sync run without someone logged in?

A custom SDK integration can be built to run as a Windows service under its own QuickBooks login. QBSync takes the simpler route: it runs in the system tray while QuickBooks is open, with automatic runs every few minutes or daily, which suits the usual setup where QuickBooks stays open on a PC or server through the working day.

If we migrate from Desktop to Online, does the database copy survive?

The tables survive; the sync feeding them has to change, because the interface is completely different. Keeping the same schema on both sides is what makes the migration a swap of the feed rather than a rebuild of the reports.

Need a hand?

Tell us what you are trying to get out of QuickBooks

Describe the report, the system or the workflow, and we will tell you whether a product, a sync or a custom integration is the right fit, and what it would take.