# HubSpot QuickBooks integration: what the native sync puts on the deal, and what a manager still reconciles by hand

https://salesbond.app/blog/hubspot-quickbooks-integration-invoice-payments-on-deal/
Published: 2026-10-24 · Updated: 2026-10-26

The HubSpot QuickBooks integration (HubSpot’s native QuickBooks Online app) syncs contacts, products, invoices and payments, but an invoice raised in QuickBooks arrives attached to a company, not to a deal. HubSpot does not associate it with a deal record automatically, so payment status shows on a deal only after someone links the invoice to it. The app also does not write to the Accounting deal property group, and a payment applied to several invoices does not sync at all. That is why a sales manager still compares Closed Won deals against invoices once a week, working from the Invoices object rather than from deal properties.

Most of what’s written about this integration is about connecting it. This is about what you see afterwards, from the manager’s chair.

## Won is not paid: what a sales manager needs from accounting

A deal goes to Closed Won when the rep gets the signature. The money arrives later, and in between the pipeline report and the bank account disagree. Finance already knows which invoices are open. The manager’s question is narrower: which won deals have no invoice yet, and whose deals keep ending up unpaid?

Three facts per deal, then. Is there an invoice. Is it paid. If not, since when. DSO and the collections call belong to finance, as we argued in [days sales outstanding for a sales manager](https://salesbond.app/blog/days-sales-outstanding-payment-terms-deal-field-hubspot/). Sales needs the three facts on the deal.

## What the HubSpot QuickBooks integration syncs, and in which direction

Connecting it is short. A Super Admin, or a user with App Marketplace permissions, installs the QuickBooks Online app from the HubSpot Marketplace, signs in to QuickBooks, and then sets the sync rules under Integrations > Connected apps ( [HubSpot: connect HubSpot and QuickBooks Online](https://knowledge.hubspot.com/integrations/connect-hubspot-and-quickbooks-online)). The app is available on all HubSpot products and plans. It is built for QuickBooks Online, and a QuickBooks sandbox cannot be connected, so the first test happens on live books.

Direction matters more than the list of objects. Contacts sync both ways. Products come from QuickBooks into HubSpot by default and are matched by SKU, so by default products without one are skipped. Invoices start as a one-way sync from QuickBooks into HubSpot, filtered to invoices created from the setup day onwards, and can be switched to two-way. Credit memos can be one-way or two-way. Payments come into HubSpot, and only payments created after the connection make the trip. Changes made in HubSpot reach QuickBooks within a few minutes; changes made in QuickBooks are picked up every 30 minutes, with a Sync now button for when you cannot wait.

We don’t think the 30 minutes matters, since a weekly check does not notice a half-hour lag. The “created after connection” rule matters a great deal: every payment the bookkeeper recorded before go-live is invisible to HubSpot and always will be.

## What lands on the deal, and what lands only on the company

An invoice synced from QuickBooks is associated with the primary company of the contact on that invoice; if that contact has no company in HubSpot, the invoice has no company either. It is not associated with any deal. HubSpot’s invoice help page says so in one line: invoices synced from QuickBooks Online won’t be automatically associated to a HubSpot deal record ( [HubSpot: using the QuickBooks Online data sync for invoices](https://knowledge.hubspot.com/integrations/using-the-quickbooks-online-data-sync-integration-for-invoices)).

Payment information does show on deals associated with an invoice, so a deal shows paid or unpaid only after someone links the invoice to it by hand. No link, no payment information on the deal.

The place that always has the answer is the Invoices object: in HubSpot it sits under Revenue > Invoices, and each invoice there shows its company, its associations and a Payments card with the source, date and status of every payment.

One more constraint. Display names in QuickBooks must be unique, and HubSpot recommends one billing contact per company. If the rep’s champion and the billing contact are different people, the invoice follows the billing contact’s primary company, and that company had better be the the one the deal sits under.

## Five gaps that make you check by hand

HubSpot’s own help page lists the limitations, and read from a manager’s seat they are exactly the cases where a deal looks paid, or unpaid, and isn’t ( [HubSpot: connect HubSpot and QuickBooks Online](https://knowledge.hubspot.com/integrations/connect-hubspot-and-quickbooks-online)).

1. Split payments. A payment applied to several invoices does not sync, so a customer who settles three invoices with one transfer leaves three invoices reading as open in HubSpot.
2. Payments before the connection stay in QuickBooks.
3. Fees. Credit card fees switched on in HubSpot’s payment settings don’t sync to the QuickBooks invoice, and Stripe or HubSpot payments processing fees don’t become an expense in QuickBooks. HubSpot itself calls this manual reconciliation. A gap between the two systems the size of a fee is a fee, not a short payment.
4. A credit memo applies to only one invoice per payment; spread across several invoices in one payment, the credit doesn’t sync. What a memo should do to the won amount is a separate question, covered in [credit memos and Closed Won deal value](https://salesbond.app/blog/credit-memo-closed-won-deal-value-hubspot/).
5. The app does not write to the Accounting property group. Any report or workflow reading those deal properties reads nothing from QuickBooks. The help page says to use the Invoices object instead, and so do we.

The fifth one is the trap. A manager builds a dashboard on the Accounting properties, sees blanks and concludes the sync is broken. It was never going to write there.

## The Monday check: won deals against invoices

This is our practice, not a HubSpot feature.

1. Open a list of deals in Closed Won with a close date in the last 30 days.
2. Go to Revenue > Invoices and look at recent invoices by company. An invoice from QuickBooks that has a company but no deal gets associated with the matching won deal now; from then on the deal carries its payment information.
3. Walk the won deals. Each lands in one of three piles: paid invoice, open invoice, no invoice.
4. For the open pile, read the invoice date, not the close date. A deal closed on the 2nd and invoiced on the 20th is not a slow payer. It is a slow handoff, and that is a sales problem.
5. Anything partially paid, or paid in QuickBooks but open in HubSpot, gets checked against the five gaps before anyone calls the customer late. HubSpot also warns that editing in QuickBooks a payment that started in HubSpot can leave the invoice showing unpaid with no error message.
6. Write the result where the rep will see it. We add one deal property of our own, a date field named “Invoice checked”, and set it on every won deal reviewed that week. Blank means nobody looked.

![Flow chart of the Monday check: Closed Won deals split into paid, open and no invoice, each with its next action](https://salesbond.app/wp-content/uploads/2026/10/hubspot-quickbooks-integration-invoice-payments-on-deal-2.png)

Step 3 is where the manager learns something. The paid pile is boring. The no-invoice pile is where the reps are. Teams that take card payments through Stripe can run the same check with the [HubSpot Stripe integration](https://salesbond.app/blog/hubspot-stripe-integration-payment-status-on-deal-manager-check/) and a payment status on the deal.

## What to do with a won deal that has no invoice after 7 days

Seven days is our threshold, not HubSpot’s. A won deal with no invoice a week later is a handoff that did not happen, a link nobody made or a deal that was never really won.

Start with the link, because the integration does not make it for you. The invoice may already sit on the right company with no deal attached, or on a different company because QuickBooks has another customer name.

If the Invoices object turns up nothing, ask the rep one question, in writing: “Is there a signed order for this?” If yes, the invoice exists or will exist, and the remaining work is fixing the company and the invoice association in HubSpot. If no, the deal goes back a stage. Harsh on a Monday morning, but it keeps the won column honest.

A payment that came in and then bounced is a different signal from one that never came; for subscription deals its the one that predicts churn. We wrote that up in [failed payments as a renewal risk](https://salesbond.app/blog/failed-payment-subscription-renewal-at-risk-hubspot/).

## What stays in QuickBooks

Pre-connection payments, split payments, fees and the real receivables aging never come across in full. Answer “how much are we owed” from HubSpot and you get a number that is wrong in a direction you cannot predict.

So the division we hold to: HubSpot answers “which won deals are not invoiced, and which invoices are open”, because the Invoices object can carry that once the links are made. QuickBooks answers everything with a currency sign on it. For teams on Pipedrive the shape of the check is the same, and we described it in [QuickBooks on the customer record in Pipedrive](https://salesbond.app/blog/quickbooks-crm-customer-record-invoice-status-pipedrive/).

A disclosure: we build SalesBond, a sales management layer on top of the CRM a team already uses; we started with Pipedrive. It works on top of HubSpot today. The Monday check still needs a person to ask the rep that one question. [Check your CRM with SalesBond](https://salesbond.app/).
