Quickbooks to MySQL: How to Move Your Data

Move QuickBooks into MySQL with Airbyte. Why the Realm ID scopes one company per source, why sandbox and production need different keys, and exposing views.

Summarize with AI:

Moving QuickBooks into MySQL puts accounting data where an application or an internal tool can query it. A client portal, an approvals workflow or a management dashboard that needs invoice and payment status is far simpler to build against a database it already connects to than against Intuit's API.

This guide covers the managed path with Airbyte. The structural thing to know first is that a source connects to one QuickBooks company, which matters because the businesses using QuickBooks very often have several.

QuickBooks to MySQL at a glance:

CapabilitySupportedWhat it means for this pipeline
Companies per sourceOneThe Realm ID selects it, so several entities means several sources
Sandbox toggleYesBut sandbox and production need different Intuit keys
AuthenticationOAuth 2.0Client ID, secret and a refresh token that rotates
VolumeAround 10GBAirbyte's guidance for relational destinations
Data sensitivityHighFinancial records warrant their own access controls

Why move data from QuickBooks to MySQL?

Two situations account for most of these pipelines.

The first is giving an application accounting context without giving it QuickBooks credentials. A portal showing a customer their invoice history reads a local table rather than calling Intuit on every page load, which is faster and removes a dependency from your request path.

The second is joining accounting data to whatever already lives in that database, such as matching invoices to your own order records. If you want multi-year financial analysis or consolidation across many companies, a warehouse is the better destination.

What do you need before you start?

Two of these involve the Intuit developer portal rather than Airbyte, so start them first:

An Intuit app with OAuth credentials. A client identifier, client secret and refresh token. Intuit's OAuth 2.0 playground is the easiest way to obtain them, and the QuickBooks source documentation walks through it.

The right keys for the environment you are targeting. Intuit issues development keys that work against sandbox companies, and production keys for real ones. Those are different credentials, so moving from testing to live is more than flipping the sandbox toggle in Airbyte.

A Realm ID for each company. The Realm ID, also called the company ID, identifies which QuickBooks company the source replicates. It is a required field, so a group or a bookkeeping practice needs one source per company and the IDs are worth collecting up front.

A MySQL user with write access. On the target schema, ideally one dedicated to synced data. Use a schema with its own grants, because invoices and payments are not something to land beside general application tables.

If your organisation restricts inbound traffic by IP, add the Airbyte Cloud IP addresses to the allow list on the MySQL side before you begin.

How do you build a QuickBooks to MySQL pipeline in Airbyte?

Step 1: Count your companies and collect Realm IDs

Work out how many QuickBooks companies you need and collect a Realm ID for each. This step sizes the whole project: one company is an afternoon, eight companies is eight sources, eight connections and a consolidation layer on top. Better established now than discovered halfway through.

Step 2: Configure the QuickBooks source

Click Sources in the left navigation, then New Source, and select QuickBooks, following adding a source. Supply the OAuth credentials, the Realm ID and a start date, and set the sandbox toggle to match the keys you are using. Name each source after the company rather than accepting a default.

Step 3: Configure the MySQL destination

Click Destinations, then New Destination, and select MySQL, following adding a destination. Supply the host, port, database and credentials. If you are syncing several companies, decide now whether they share a schema with the company distinguished by a column, or get their own, because retrofitting that is tedious.

Step 4: Create the connection and expose views

Click Connections, then New connection, select your streams and a sync mode. Daily suits accounting data, which changes at the pace of bookkeeping. Then build views over the raw tables so your application reads a stable interface rather than Airbyte's metadata columns.

Compare a period's totals against QuickBooks after the first sync. This is finance data somebody reconciles, and a twenty-minute check now is worth considerably more than the same check after a customer has queried an invoice.

Why does one source mean one company?

Because Intuit's API scopes every request to a company, and the connector takes the Realm ID as a single required configuration value. There is no field for a list, so the company is fixed when you create the source.

For a single business that is invisible. For a group running a company per trading entity, or an accountancy practice managing client books, it is the defining characteristic of the project. Ten companies means ten sources, ten connections, ten sets of credentials to keep working, and a consolidation layer that unions them with a company column.

Two habits make that manageable. Name sources and connections after the company so failures are attributable at a glance, and decide the schema layout before you build the second one. Both are trivial at the start and awkward once several exist.

Why is the sandbox toggle not the whole story?

Because the environment is decided by your Intuit credentials as much as by the Airbyte setting. Intuit issues development keys that work against sandbox companies and production keys that work against real ones, and they are different values obtained through different parts of the developer portal.

So a team that validates the pipeline against a sandbox company cannot simply untick a box to go live. They need production keys, a fresh refresh token authorised against the real company, and the actual Realm ID rather than the sandbox one. That is a small amount of work and a surprise if nobody expected it.

Plan the production credentials early, because obtaining them involves Intuit rather than only your own team. Testing against a sandbox first remains sensible, and it is worth knowing that the transition is a credential change rather than a configuration flag.

Frequently asked questions

Can one source sync several QuickBooks companies?

No. The Realm ID selects a single company, so create one source per company and union them in a consolidation layer with a company column.

Where do I find the Realm ID?

It is the company ID for your QuickBooks company, visible in Intuit's developer tooling and in the OAuth playground when you authorise against a company.

I tested against sandbox. What changes for production?

More than the toggle. You need production keys from Intuit, a refresh token authorised against the real company, and that company's Realm ID.

My syncs started failing on authentication. What should I check?

The refresh token, since Intuit rotates them. Alert on sync failures rather than relying on somebody noticing, because an authentication failure on this source stops the pipeline entirely.

Can I do this without writing code?

Yes. The setup above is entirely UI-driven, apart from obtaining credentials through Intuit's playground. You will want MySQL views so your application reads a stable interface.

Get your QuickBooks data into MySQL

Count your companies first, because that sizes the project. Get production credentials early since the sandbox toggle is not the whole story, name every source after its company, expose views rather than raw tables, and reconcile a period against QuickBooks before anyone relies on it.

Airbyte's connector catalog includes 600+ pre-built connectors, so accounting data can reach an application and a warehouse at once. For another accounting source scoped the same way, see Xero to BigQuery, and for payment data alongside it, Stripe to BigQuery.

Start syncing now →

Integrate with 700+ apps using Airbyte

Move data from 700+ sources into warehouses, lakes, and beyond. Set up pipelines in minutes with pre-built connectors and the Connector Builder.