Start a project

Connecting QuickBooks, Stripe and payroll: when an integration beats double entry

When a QuickBooks integration with Stripe and payroll beats retyping, when Zapier is enough, and what idempotency and reconciliation mean in plain words.

Baris TaskiranFounding engineer

Hands on a calculator beside a keyboard and a yellow mug
On this page 8 sections
  1. When Zapier-style tools are enough
  2. Idempotency: recording everything exactly once
  3. Reconciliation: proving the systems agree
  4. An example from our own books
  5. What a client integration looks like, from QuickBooks to Gusto
  6. Payroll is its own case
  7. Before you build anything
  8. Talk about your tools

In most small businesses, someone spends part of every week copying numbers from one system into another. Stripe payments go into QuickBooks. Hours from the time clock go into payroll. Payroll totals go back into QuickBooks. Each copy is a chance for a typo, and the real cost shows up later, when two systems disagree and nobody knows which is right.

A QuickBooks integration removes the copying. This post covers when a no-code tool such as Zapier is enough, when a built integration pays off, and two ideas that separate a reliable integration from a fragile one: idempotency and reconciliation. Both are simpler than they sound.

When Zapier-style tools are enough

No-code automation tools are good at simple handoffs: when someone submits a form, add a row to a sheet; when a deal closes, send a message. For low volumes and low stakes, they are the right answer. They are fast to set up, and you can change them yourself.

They start to strain when:

  • Volume grows. Most charge per task, so costs rise with every record.
  • Rules get specific. A deposit and its final balance should be one deal in QuickBooks, not two unrelated sales.
  • Mistakes are expensive. A duplicated invoice or a missed payment in your books is worse than a missed notification.
  • Failures go unnoticed. If a step fails quietly at 2am, you may not find out until month end.

If two or more of these describe you, a built QuickBooks integration is worth scoping.

Idempotency: recording everything exactly once

Integrations fail in ordinary ways. A network blips, a service is down for maintenance, a request times out. The safe response is to try again. But if the first attempt actually succeeded and only the reply was lost, a naive retry records the payment twice.

Idempotency means a request can be repeated safely: the second, third or tenth attempt has the same effect as the first. The usual technique is to send a unique key with each request. The receiving system remembers keys it has seen and ignores repeats. Stripe, for example, accepts an idempotency key on requests that create things, and QuickBooks Online offers a similar request id.

On your side, the integration should also keep its own record of what it has already sent, keyed on the source system's id. Then even a full re-run can't create duplicates.

Reconciliation: proving the systems agree

Reconciliation is checking that two systems tell the same story. For example, your bookkeeper already does this with bank statements. An integration should do it too.

That means:

  • Every payment in Stripe has a matching entry in the books.
  • Every payout from Stripe matches a deposit on the bank statement.
  • Anything that doesn't match shows up on a list a person can see, with a way to fix or retry it.

An integration without reconciliation works until the first time it doesn't, and then nobody can tell what is missing.

An example from our own books

We run our own bookkeeping in software we built, so we live with this every month. Our Stripe-to-books sync works like this:

  • It runs a few seconds after every money-moving event Stripe tells us about, again every hour, and whenever we press "Sync Stripe."
  • Only one sync runs at a time, so two can't race each other.
  • The sync records each Stripe item once, keyed on its Stripe id. Running the sync again changes nothing that is already there.
  • When a bank statement comes in, the books reconcile on their own if they tie to the cent. If they don't, the month won't close on its own until a person looks.

That last rule is the important one. In short, automation does the routine work, and anything unusual stops for a human.

What a client integration looks like, from QuickBooks to Gusto

For clients, we build connections into the software they already run, so a record is entered once. The integrations page lists the tools we have connected, including QuickBooks Online and Desktop, Stripe, QuickBooks Payments and Gusto. A few design choices are standard:

  1. You sign in to each tool yourself. The software receives a key that reaches only your account, stored encrypted. We never see passwords.
  2. Failed changes wait and retry. From a minute later up to twelve hours later, with the same request id each time, so nothing is recorded twice.
  3. Failures are visible. Anything still failing appears on a list with a Retry button.
  4. Your accountant keeps working as before. We agree accounts, items and settings with them before anything is written.

QuickBooks Online connects through Intuit's API with a one-click sign-in, under our own Intuit app, which Intuit has approved for production. By contrast, QuickBooks Desktop connects through Intuit's Web Connector, which syncs on a schedule from the computer that runs QuickBooks.

Payroll is its own case

Hours flow into payroll, and payroll totals flow into the books. The risk is that a correction in one place never reaches the other. So a sound setup treats each approved payroll run as final and sends corrections as adjustments in the next run. For staffing agencies, where every hour has a pay rate and a bill rate, this matters even more. We covered that in time tracking and payroll for staffing agencies.

Before you build anything

Write down every place someone retypes a number today, how often, and who does it. Then mark which ones cause the most cleanup. Start with that one. Our build or buy checklist helps if you are unsure whether a ready-made connector would do.

Talk about your tools

List the tools you use and where the retyping happens. We reply within one business day, and the first walk-through says whether each tool can be connected before you pay for anything. Get in touch.

Cover photo by Towfiqu barbhuiya on Unsplash.

Keep reading

All posts
  1. Adding an AI assistant to your website without it making things up

    How an AI chatbot for a small business website stays grounded in your own content, what to test before launch, and what to ask any vendor.

    AI

    4 min

  2. AI Automation for Small Businesses: 5 Safe Ways to Use It

    AI automation for small business without the hype: five jobs worth handing to AI, three that aren't, and the guardrails we use in our own tools.

    AI

    4 min

Your vision. Our solutions.

A few lines about the project and when it needs to ship is enough to start. Replies usually come within one business day.

Start a project