NewIntroducing PartnerView. Software built for partner services firms.Read the field note →
← Field Notes

QuickBooks integration is the feature every tool claims and almost nobody actually ships

Every operations tool says it integrates with QuickBooks. We shipped ours in four stages. Here is what each one does and what we left in QBO on purpose.

Every operations tool says it integrates with QuickBooks Online.

A buyer on a demo asks what that means and gets a confident answer. Six months in, they discover what “integration” actually was. A CSV export they have to run manually. A one-shot OAuth that broke when the token expired and never refreshed itself. A stub that pushed customers but not invoices. A “sync” that ran once a night and dropped half the records because the API throttled it.

“We integrate with QuickBooks” is the question every operations buyer asks. The honest answer takes longer than the demo allows. So we will write down what we actually shipped, in the four stages we shipped it, and what each stage did when the test connection failed.

Why this question is hard to answer in one sentence

QuickBooks Online is not one surface. It is a customer list, a service item catalog, a class hierarchy, an invoice ledger, a payment ledger, and a journal entry ledger. Integrating with it means choosing which of those surfaces you write to, which you read from, what direction the source of truth runs, and what happens when the two systems disagree.

Most tools that claim QBO integration have made one of those choices and stopped there. They sync customers. They do not sync invoices. They sync invoices in one direction but the rev rec stays in a spreadsheet. They push payments but cannot match an inbound payment that came in through a different processor.

The buyer finds out which choice the vendor made in production, by hitting the seam.

Stage 39, the connection itself

QBO-CORE-a is OAuth at /admin/integrations/qbo. The admin connects the company file, the tokens land encrypted, and auto-refresh runs on a schedule so the token does not expire silently in the middle of a quarter.

The push direction is one-way, from PartnerView to QBO. Customers, service items, and practice classes go over. Invoices go over, but only after a submit and approve gate. An invoice is drafted in PartnerView. A finance lead reviews it. The push to QBO is a deliberate action, not a background job. The thing that lands in the QBO ledger is the thing finance approved.

When the test connection failed, the gate blocked the push. The invoice stayed in draft. The error showed up in the admin queue, not silently in the QBO error log.

Stage 40, payment sync that does not lose payments

QBO-PAYMENT-a is webhook-primary, with a 15-minute polling backstop.

The webhook is the fast path. When a payment hits QBO, the webhook fires and the matching invoice in PartnerView is marked paid within seconds. The polling backstop is the safety net. Every 15 minutes, a job reconciles recent QBO payments against PartnerView invoices, in case the webhook dropped one.

The hard case is the unmatched payment. A payment lands in QBO that does not match an invoice on file in PartnerView, because the deal was logged outside the system, or the customer paid against an invoice that was edited, or somebody applied the payment to the wrong customer in QBO. Most tools fail those silently. The payment lands, nothing matches, and the books reconcile six weeks later when finance notices.

The unmatched payment in PartnerView goes to a manual reconciliation queue. Finance sees a list. They match each payment to the right invoice, or they leave it for the next pass with a note. Nothing is dropped. Nothing is silently misallocated.

Stage 41, rev rec that balances by construction

QBO-REVREC-a posts monthly revenue recognition journal entries from PartnerView to QBO.

The math is per revenue model. A subscription deal recognizes ratably. A milestone deal recognizes per milestone. A T&M deal recognizes as time is logged. The recognition schedule lives on the deal. The journal entry posts the recognized amount against the right accounts, with the right class on each line.

Before any journal entry is persisted, a hard assertion runs. Debit equals credit. The two sides of the entry are summed and compared. If they are not equal to the cent, the entry is rejected before it touches the ledger. An unbalanced journal entry cannot exist in this system, even as a draft.

The schedule-change case is the one most tools handle badly. A deal’s recognition schedule changes mid-stream. Most tools either edit the prior month’s posted entry, which mangles the ledger history, or do nothing, which leaves the books wrong. PartnerView posts a reversing entry against the original, and posts the new entry. The ledger history is preserved. The current period reflects the corrected schedule.

Stage 42, the documentation that proves the boundary

REVENUE-FLOW-DOCS-a is the writeup of where the line is. PartnerView owns the deal-to-invoice lifecycle. QuickBooks Online stays the system of record for the ledger. Journal entries flow one-way, from PartnerView to QBO. Account-level changes are made in QBO, not in PartnerView. The chart of accounts is QBO’s.

What “where it matters” means in practice: the firm’s bookkeeper opens QuickBooks every morning, not PartnerView, because that is the right tool for the books. The deal owner opens PartnerView, not QuickBooks, because the deal is in PartnerView. The two systems exchange the right artifacts in the right direction, and the boundary is documented so that nobody has to guess where to make a change.

What PartnerView ships

QBO integration is four stages, all live. OAuth and one-way push of customers, service items, classes, and approved invoices through a submit-approve-push gate. Webhook-primary payment sync with a polling backstop and a manual reconciliation queue for unmatched payments. Balanced-by-construction monthly rev rec journal entries with reversing entries on schedule changes. A documented boundary that keeps the ledger in QBO and the deal lifecycle in PartnerView.

The honest answer to “do you integrate with QuickBooks” is yes, in these four specific ways, with these specific failure modes. That answer is longer than a sales-call answer. It is the answer the buyer needs.

Recognize your firm in this note?

Bring an active engagement. We will model it in PartnerView live.

Get a demo