Integrations

QuickBooks API Integration: Connect Your App to QuickBooks

A QuickBooks API integration lets your app, online store, CRM, or field software write invoices, payments, and customers into QuickBooks without anyone retyping them. This guide covers how the API works, when a connector is enough, and what a custom build costs.

HS

Harasis Singh

Head of Engineering · September 26, 2026 · 9 min read

Desk with financial charts, a calculator app, and a notebook

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. 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. 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. 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. 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. 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. 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. 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 scopeTypical hoursEstimated cost
Connector or Zapier setup with field mapping and testing20-60$2,000-$10,500
One-way sync, such as invoices and customers from your app to QuickBooks Online80-160$8,000-$28,000
Two-way sync with customers, items, invoices, and payments, plus an error queue180-360$18,000-$63,000
QuickBooks Desktop integration through the Web Connector150-300$15,000-$52,500
Multi-channel or job costing sync with classes, locations, and reconciliation reports350-700$35,000-$122,500
Ongoing monitoring, API changes, and small fixes6-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.

Questions

Things people ask before starting

Can't find what you're looking for? Reach out and we'll answer directly.

Yes. Intuit publishes the QuickBooks Online Accounting API, a REST API that reads and writes records such as customers, invoices, payments, bills, items, accounts, and journal entries. Developers register an app on the Intuit Developer portal, connect to each company through OAuth 2.0, and test against a free sandbox company before touching live books. Intuit also offers a separate Payments API for card and bank payments.