On this page
- 1Does QuickBooks Online have an API, and what can it do?
- 2QuickBooks Desktop is a different job
- 3The QuickBooks integrations businesses ask for most
- 4When a connector is enough and when to build custom
- 5Design decisions that make or break the sync
- 6QuickBooks integration cost: planning estimates
- 7How we approach a QuickBooks API integration
- 8Planning your integration
Somewhere in most growing businesses there is a person who copies orders, invoices, or timesheets from one screen into QuickBooks every afternoon. A QuickBooks API integration replaces that copying with software. Your web app, Shopify store, CRM, dispatch board, or point of sale sends the records to QuickBooks on its own, and the books stay current without the afternoon of typing.
We build these integrations for companies whose software and accounting have drifted apart. This guide explains how the QuickBooks APIs work, which integrations come up most, when an off-the-shelf connector is the smarter buy, the design decisions that decide whether your accountant trusts the data, and what a custom build costs.
Does QuickBooks Online have an API, and what can it do?
Yes. People ask 'does QuickBooks Online have an API' because the product looks closed from the outside, but Intuit publishes the QuickBooks Online Accounting API, a REST interface that exchanges JSON. Each QuickBooks company is identified by a company ID, and your app works with that company's records once the owner grants access.
The records you will touch most are the core accounting entities:
- Customer and Vendor, the people you bill and the people who bill you
- Item, the products and services that appear on invoice lines
- Invoice, SalesReceipt, and Payment, which cover money coming in
- Bill and BillPayment, which cover money going out
- Account, the chart of accounts every transaction posts against
- JournalEntry, for adjustments that don't fit a standard form
Developers register an app on the Intuit Developer portal, which issues credentials and a sandbox company filled with sample data. Authorization uses OAuth 2.0. The business owner signs in to QuickBooks, approves your app, and your server receives a short-lived access token and a refresh token. Your code has to refresh tokens before they lapse and store them securely, because a lost refresh token means asking the customer to reconnect.
Webhooks notify your app when records change inside QuickBooks, for example when a bookkeeper edits an invoice or records a payment by hand. The notification tells you what changed, and your app then fetches the record. Intuit also offers a separate Payments API for processing card and bank payments through QuickBooks Payments.
One more thing to check before you plan a budget: Intuit has changed its developer program, partner tiers, and API fees over time. Read Intuit's current developer terms for your use case instead of relying on an old forum thread or a blog post, this one included.
QuickBooks Desktop is a different job
Many contractors, distributors, and manufacturers still run QuickBooks Desktop, and the integration path is very different. Desktop has no REST API like QuickBooks Online. Integrations go through the QuickBooks SDK using qbXML, an XML request format. For a web or cloud app, the common pattern is the QuickBooks Web Connector, a Windows utility installed on the machine running Desktop. It polls a web service you host, picks up queued qbXML requests, runs them against the company file, and sends the results back.
That design has practical consequences. Syncs happen on a schedule instead of instantly, the Desktop machine has to be on, and errors often surface as cryptic status codes in a log file. If a company is planning a move to QuickBooks Online within a year, we usually advise building for Online and bridging Desktop with a lighter, temporary process.
The QuickBooks integrations businesses ask for most
The requests we hear fall into a handful of patterns. Each one looks small on a whiteboard and gets more interesting once real data shows up.
- Invoices from your own app. A SaaS platform, booking system, or customer portal creates the invoice, and QuickBooks receives it with the right customer, items, and tax so the bookkeeper never retypes it.
- Shopify and Stripe sales. Orders, refunds, processor fees, and payouts land in QuickBooks in a form that matches the bank deposit, which is where most e-commerce books go wrong.
- Payroll and time data. Hours captured in a field app or time clock flow to payroll and to job costs, so labor shows up against the job it was spent on.
- Job costing for contractors. Estimates, change orders, purchase orders, and vendor bills are tagged to a job or project, so a project manager can see margin while the job is still running.
- CRM to accounting. A closed deal in the CRM creates the customer and the first invoice, and payment status flows back so sales can see who is overdue.
Construction and trades companies lean hardest on the job costing pattern, and we cover the wider software picture for that industry in our guide to construction software development. Plants that need production orders, material usage, and finished goods to reach the books face a similar problem, discussed in our article on manufacturing software development.
When a connector is enough and when to build custom
We tell people to try the cheap option first. QuickBooks has an app marketplace full of native integrations, and tools like Zapier can create a customer or invoice in QuickBooks when something happens in another app. For a small store or a service business with simple pricing, a connector can be running in a day.
Connectors start to strain in predictable places. They map fields one way, and if your accountant wants revenue split by class or location, or wants a job number on every line, the connector may not have a slot for it. They tend to create a new customer whenever a name is spelled slightly differently. They rarely handle partial payments, deposits, or credit memos the way your process does. And when a sync fails at 2 a.m., the error usually goes to an email inbox nobody reads.
A custom QuickBooks API integration makes sense when the rules live in your business and not in the connector. That includes multi-step approvals before an invoice posts, pricing logic that lives in your own system, several sales channels feeding one set of books, or a volume of transactions where per-task connector fees add up month after month. Custom also lets the sync live inside your own product, which matters for software companies that want 'Connect to QuickBooks' as a feature their customers can switch on.
Key takeaway
If a connector maps your data the way your accountant wants, use it. Build custom when your business rules, fields, or volume outgrow what the connector can express.
Design decisions that make or break the sync
Most failed accounting integrations don't fail because the API call was wrong. They fail because two systems disagreed about what a customer, an item, or a sale is. These are the questions we settle before writing sync code.
- 1
Customer and item mapping
Decide which system owns each record and how you match them. Store the QuickBooks ID on your side once a match is made, instead of matching by name every time.
- 2
Duplicates
Build a lookup step before every create. Two customers named 'Smith Plumbing' and 'Smith Plumbing LLC' will split a customer's history and confuse collections.
- 3
Sales tax
Decide whether your app calculates tax or QuickBooks does. Mixing the two produces invoices that differ by a few cents, and those cents become a reconciliation chore.
- 4
Classes and locations
If the business reports by department, branch, or region, every transaction has to carry the right tag from the start. Fixing tags after a year of syncing is slow, manual work.
- 5
Sync direction
Pick one-way or two-way per record type. Invoices might flow out of your app while payments flow back from QuickBooks. Two-way sync on everything invites edit conflicts.
- 6
Error handling
Every failed record should land in a queue someone can see, with the reason and a retry button, plus alerts when failures pile up.
- 7
Reconciliation
Run a regular check that compares totals in both systems for a period and flags differences before month-end close, while they are still easy to trace.
There are smaller technical details too. QuickBooks uses a version number on each record to stop two edits from overwriting each other, so updates must send the latest version or they get rejected. The API has rate limits, so a first-time import of years of history needs batching and backoff. Deleted and voided transactions need their own rules. Most of the effort in a reliable integration goes into this layer, and it is the part off-the-shelf tools tend to hide from you until something breaks.
When the integration is one piece of a larger operations system, such as a portal, a dispatch tool, or an internal admin app, we usually design it alongside the rest of the data model. Our custom CRM and ERP systems work often includes a QuickBooks sync for exactly this reason, so the accounting side isn't bolted on at the end.
QuickBooks integration cost: planning estimates
QuickBooks integration cost depends on how many record types you sync, whether data flows one way or two ways, how much history needs importing, and whether you are on Online or Desktop. To build these ranges we multiplied typical hours by $100-$175, what US agencies usually charge per hour. Treat them as planning estimates for budgeting, not quotes.
| Integration scope | Typical hours | Estimated cost |
|---|---|---|
| Connector or Zapier setup with field mapping and testing | 20-60 | $2,000-$10,500 |
| One-way sync, such as invoices and customers from your app to QuickBooks Online | 80-160 | $8,000-$28,000 |
| Two-way sync with customers, items, invoices, and payments, plus an error queue | 180-360 | $18,000-$63,000 |
| QuickBooks Desktop integration through the Web Connector | 150-300 | $15,000-$52,500 |
| Multi-channel or job costing sync with classes, locations, and reconciliation reports | 350-700 | $35,000-$122,500 |
| Ongoing monitoring, API changes, and small fixes | 6-16 per month | $600-$2,800 per month |
These figures cover our build time. They don't include QuickBooks subscriptions, connector subscriptions, payment processing fees, or any fees Intuit charges developers, which change over time and should be checked on Intuit's current pages. Connector tools typically charge per month, per task, or per connected account, so model your real transaction volume before comparing them with a custom build.
If you want to see how integration work fits into a larger budget, our guide to custom software development cost explains how scope drives the number.
Key takeaway
The biggest cost drivers are two-way sync, the number of record types, and Desktop support. A tight one-way sync is often all a business needs.
How we approach a QuickBooks API integration
The first conversation is with your accountant or bookkeeper. They know which accounts, classes, and tax codes the business relies on, and they are the person who will notice first if the numbers look wrong. From that conversation we write a mapping document that lists every field going in each direction and which system wins in a conflict.
Next we build against an Intuit sandbox company loaded with realistic test data: odd customer names, partial payments, refunds, and voided invoices. Before going live, we run the sync in parallel with your current process for a short period and compare results line by line. The integration ships with a simple admin screen showing recent syncs, failures, and a way to retry, so your team isn't dependent on us to see what happened.
Many QuickBooks syncs sit inside a wider set of automations, such as approval routing, document generation, or notifications to the field. Our workflow automation team designs those flows together so data moves once and stays consistent.
Planning your integration
Before you call any developer, gather three things: a list of the records that get retyped today, a sample month of those records, and the reports your accountant runs at month-end. With those in hand, it becomes clear quickly whether a connector will do or whether a custom QuickBooks API integration will pay for itself.
Send us that list and we will tell you which route fits, what could go wrong with your data, and what the work should cost. After a free consultation you get a fixed-scope estimate with the price set before work begins. Book a free integration consultation and we will review your setup with you.
