HubSpot QuickBooks Integration: Sync Scope, Invoice Origination, Desktop Connectors and Common Errors
HubSpot QuickBooks integration explained: what the native QuickBooks Online app syncs, where invoices should originate, what breaks, and the Desktop options.
Paul Maxwell, PhD
AUTHOR
GET WEEKLY REVOPS INSIGHTS
No spam. Unsubscribe anytime.
A HubSpot QuickBooks integration can connect cleanly and still leave sales and finance reading different numbers. A deal shows no billing for work invoiced last month, because finance raised the invoice in QuickBooks and it never attached to the deal. Finance adds a change-order line to an invoice that sales created in HubSpot, and the invoice stops syncing. A customer who settled three invoices with one cheque still has three open invoices in HubSpot. Only the second of these is documented as a sync error, and all three follow from documented rules of HubSpot's own QuickBooks Online app.
This article sets out what that app does and the decisions that determine which of its behaviours a business meets. It starts with the objects the app syncs, then takes invoice origination, on which the rest depends, and customer identity. A sample month shows the arithmetic of payment status. Later sections cover capabilities outside the app, QuickBooks Desktop connectors, costs and returns, a configuration procedure, symptoms and their causes, and the limits of the evidence.
Three terms are kept apart, because the phrase "two-way sync" runs them together. Sync direction is the per-object setting that decides which way a changed record travels. The system of record for a field is the application whose value prevails when the two disagree, which the app configures as data conflict resolution. Invoice origination is the system in which an invoice is first created: a working practice rather than a setting, and the one that decides which HubSpot record the invoice attaches to and who may change it later. The surrounding process, from issued quote to collected payment, is described in quote to cash.
QuickBooks HubSpot Integration Scope: Objects, Directions and Matching
HubSpot builds and maintains the QuickBooks Online app on its data sync engine, and the listing requires a QuickBooks Online subscription on the Simple Start, Essentials, Plus or Advanced plan. The setup guide makes the app available on all HubSpot products and plans, requires a Super Admin or a user with App Marketplace permissions to connect it, and configures each object as its own sync under Settings > Integrations > Connected apps > QuickBooks Online > CRM syncs.
| HubSpot object and QuickBooks record | Direction and recommended filter | Matching and constraint |
|---|---|---|
| HubSpot object and QuickBooks recordContact and Customer | Direction and recommended filterTwo-way; the recommended filter sends a HubSpot contact to QuickBooks only when Invoice status is none of Draft, Invoice source is any of HubSpot, and Create date is after the setup date | Matching and constraintEmail; Display Name taken from the contact's company name |
| HubSpot object and QuickBooks recordProduct and Products & Services | Direction and recommended filterOne-way from QuickBooks | Matching and constraintSKU; products without a SKU are not synced by default |
| HubSpot object and QuickBooks recordInvoice and Invoice | Direction and recommended filterOne-way from QuickBooks, for invoices created after setup; the outbound filter cannot be edited | Matching and constraintInvoices from QuickBooks attach to a contact and its primary company |
| HubSpot object and QuickBooks recordCredit memo and Credit memo | Direction and recommended filterOne-way or two-way | Matching and constraintA credit split across invoices in one payment does not sync its allocation |
| HubSpot object and QuickBooks recordPayment | Direction and recommended filterFixed settings that cannot be viewed or edited | Matching and constraintOnly payments created after connection; none applied to several invoices |
| HubSpot object and QuickBooks recordDeal | Direction and recommended filterNot synced | Matching and constraintBilling is visible only through invoices associated with the deal |
Changes travel from HubSpot to QuickBooks within a few minutes and from QuickBooks to HubSpot every 30 minutes, with a Sync now button for an immediate pass. Conflict resolution offers Use HubSpot data or Use QuickBooks Online data per object, and under HubSpot's data sync rules an empty value in the winning app changes nothing in the other. Under the data sync matching defaults, a pair is made once and then held by record ID, and a record with no match is created in the other app.
Adding field mappings beyond the defaults requires Data Hub Starter, Professional or Enterprise, while the setup guide attaches no tier to switching a default mapping off, and only the first three QuickBooks custom invoice fields are exposed to added mappings. The app writes nothing to the Accounting deal property group, so what a deal has billed or collected is known only through the invoices associated with it.
Invoice Origination and the Deal Record
The point where an invoice is created, not the sync direction setting, decides what HubSpot can report about a deal and who may correct the invoice later. HubSpot documents the two halves of that trade on different pages.
The invoices guide offers Convert deal to invoice on the deal record, which copies the deal's line items into an invoice associated with the deal. Once that invoice has synced, the setup guide lets QuickBooks change invoice fields, payments, credits and service dates, but adding or removing lines, changing prices, removing a payment or adding tax fails the sync. The troubleshooting guide prescribes the only repair: reverse the change in QuickBooks and make it in HubSpot.
An invoice raised in QuickBooks is, in the words of the invoice sync guide, not automatically associated with a HubSpot deal. It attaches to the contact whose email matches the QuickBooks customer and to that contact's primary company, and it reaches a deal only if someone associates it by hand. Finance can go on amending it in QuickBooks, since the documented edit restrictions apply to invoices created in HubSpot.
A third route needs a Professional or Enterprise subscription on a HubSpot account based in the United States. A deal-based workflow running the Create a QuickBooks invoice action creates the invoice in QuickBooks and associates it with the enrolled deal. The action fails when the deal's contact is not eligible under the contact sync filters, and when a line item matches no QuickBooks product, unless it is set to create missing products.
| Route | What it keeps | What it gives up |
|---|---|---|
| RouteConvert deal to invoice in HubSpot | What it keepsThe deal association, payment status on the deal, one invoice number in both systems | What it gives upLine, price and tax changes in QuickBooks |
| RouteInvoice raised in QuickBooks | What it keepsFull control by finance of lines, prices, tax and progress billing | What it gives upAutomatic association with a deal |
| RouteWorkflow action from a deal | What it keepsThe deal association, with no rekeying | What it gives upAvailability below Professional and outside the United States |
The choice states who owns the commercial content of an invoice. Where price and lines are settled in the deal and finance only records payment, HubSpot origination takes nothing finance needs. Where finance amends invoices after issue, for change orders, progress billing or tax, QuickBooks origination keeps that work possible and moves billing out of the deal's reach; a business that needs both has a requirement the native app does not meet.
Customer Identity: Contacts, Companies and the Display Name
The app pairs a QuickBooks customer with a HubSpot contact, not with a company. A contact syncing to QuickBooks takes its Display Name from its associated company's name, or from its own name when it has no company, according to the display name section of the setup guide. Intuit's Customer entity reference requires DisplayName to be unique across all Customer, Vendor and Employee objects, so one syncing contact per company is the working limit.
The recommended contact filter sends a HubSpot contact to QuickBooks only when it carries a non-draft invoice raised in HubSpot, so the collision first appears when sales invoices a second person at a company that is already a customer. In the drawing, the billing contact matches the existing customer on email and pairs without creating anything. Each further invoiced contact from that company has no customer with its email, so the sync tries to create a customer under the company's name, and QuickBooks rejects the duplicate display name, as HubSpot documents. The Keel Marine case is derived from Intuit's rule rather than stated by HubSpot: an organisation that is also a supplier already holds its name as a vendor, so its first contact fails as well.
HubSpot's remedy is one billing contact per company, whose email is the address on the QuickBooks customer, formally associated with invoices that can still be sent to other recipients. Switching off the Display Name mapping removes the company-name collision, although the documentation does not state the name that results, and Intuit's API generates one from the contact's name components when none is supplied. Duplicate companies or contacts need resolving before the first save, because a pair once made is held by record ID, as HubSpot duplicate management explains.
Payment Status Reconciliation on Sample Data
The figures below are sample data built to make the arithmetic checkable, and they describe no client. A sample firm on a United States QuickBooks Online company issues 90 invoices worth $540,000 in one month: sales converts 60 deals to HubSpot invoices at $7,000 each, $420,000 in all, and finance raises 30 progress and change-order invoices in QuickBooks at $4,000 each, $120,000 in all.
| Invoices | Count and value | What HubSpot shows |
|---|---|---|
| InvoicesFrom deals, each settled by its own payment | Count and value50, $350,000 | What HubSpot showsPaid, on the invoice and on its deal |
| InvoicesFrom deals, settled by four cheques that each cover several invoices | Count and value10, $70,000 | What HubSpot showsOpen, on the invoice and on its deal |
| InvoicesRaised in QuickBooks, paid | Count and value12, $48,000 | What HubSpot showsPaid, on the contact and company only |
| InvoicesRaised in QuickBooks, unpaid | Count and value18, $72,000 | What HubSpot showsOpen, on the contact and company only |
QuickBooks records $468,000 received, the sum of $350,000, $70,000 and $48,000. HubSpot shows $398,000 paid, because the four multi-invoice cheques do not sync, and $142,000 open against a true $72,000, which is 1.97 times the ledger's open balance. Deals show narrower figures again: $350,000 collected, 74.8 percent of cash received, and $420,000 billed, 77.8 percent of the $540,000 invoiced, because the sync associates none of the $120,000 raised in QuickBooks with a deal and, in this sample, nobody does so by hand.
The $70,000 carries the operational risk. Where the invoice reminder automation is on, reminders go to buyers with open invoices, so the customers who paid those ten invoices receive them; the documentation treats such payments as unsupported rather than as sync errors. The repair is one QuickBooks payment record per invoice, and the control is a monthly comparison of open balances in the two systems.
Capabilities Outside the Native App
Several finance requirements fall outside the app as documented, and each is cheaper to learn before the origination decision than after it.
- Projects and job costing. No project, estimate or sales receipt sync exists; estimates, receipts and expenses can be created from HubSpot only by workflow action, and nothing returns project costs to a deal.
- Tax outside the United States. The setup guide states that most non-U.S. QuickBooks Online versions require tax on synced invoices, so non-U.S. accounts cannot use invoice sync.
- Sales tax in the United States. With the app installed, HubSpot invoices take no tax rates or one-time taxes, according to the invoices guide. The routes are automated sales tax, which needs Revenue Hub Professional or Enterprise and one Revenue Hub seat, or a tax line item that the invoice sync guide says will not reach the QuickBooks Tax Center.
- Revenue recognition. HubSpot line items carry no service date, so HubSpot invoices fail to sync while QuickBooks revenue recognition is on, as the troubleshooting guide records.
- Fees, refunds and history. Payment processing fees create no QuickBooks expense unless a workflow action or a person enters them, refunds against payments are not synced automatically, and payments created before the connection never sync, according to the invoice sync guide and the setup guide. The one automated refund path is a workflow action that creates a QuickBooks refund receipt when a full refund is taken through HubSpot payments.
HubSpot QuickBooks Desktop Integration: Connector Options
HubSpot documents no QuickBooks Desktop integration, and its app requires a QuickBooks Online plan, so a QuickBooks Desktop integration with HubSpot is a third-party connector, middleware or a custom build. Intuit documents the QuickBooks Web Connector as a Microsoft Windows application, on the same machine as QuickBooks or its local network, through which web-based applications exchange qbXML with Desktop. The Web Connector initiates every exchange, on a schedule or when a user starts it.
Through the Web Connector, data moves only when a program beside QuickBooks runs, as a scheduled batch, and a machine that is switched off stops the flow where no HubSpot screen can see it, so monitoring has to alarm on missing records rather than on errors. Four routes exist.
- A marketplace connector. The Commercient listing, one example rather than a recommendation, names Desktop Pro, Premier and Enterprise and maps customers to companies and invoices to deals, unlike HubSpot's contact-based app.
- Middleware with a Desktop connector, which reaches QuickBooks through a local component and adds a platform to monitor.
- A custom web service implementing the Web Connector's published methods, with full control of mapping and identity in exchange for code the business owns.
- Migration to QuickBooks Online, after which the native app applies.
The fourth route weighs more than it once did. Intuit stopped selling Desktop Pro Plus, Premier Plus, Mac Plus and Enhanced Payroll to new subscribers in the United States after 30 September 2024, while existing subscribers can renew and Enterprise is unaffected. The announcement dates from February 2024, and Intuit's support article on Desktop availability restates it in a revision of August 2026.
Costs and Returns of the Native App and a Custom Build
The firm writing this is a HubSpot Solutions Partner that also builds custom integrations, which is an interest in the native app appearing insufficient, so the two axes on which the native app wins are stated first.
The native app wins on cost of ownership: it is included on every plan and maintained by HubSpot, so nobody in the business owns API changes or credential renewals. It wins on observability too, since the CRM syncs tab counts syncing, failing and excluded records by object, instrumentation a custom build has to construct. It costs the constraints above: no line-level edits in QuickBooks to HubSpot invoices, one billing contact per customer, and multi-invoice payments left open.
Its case is strongest for a United States business on QuickBooks Online whose invoices are settled in the deal, drawn from a catalogue with SKUs and paid one payment per invoice. It is weakest for progress billing, project costing, multi-invoice remittances, VAT or GST, revenue recognition in QuickBooks, and Desktop.
A custom or middleware build earns its cost where the object model differs from the app's. The HubSpot QuickBooks integration case study records one such requirement: an executed contract had to become a QuickBooks project whose posted costs returned to the deal as running totals. That build matched on a stored QuickBooks customer ID rather than on names and monitored for the absence of activity, and its price is an exception queue somebody reads for as long as it runs. The wider ledger pattern is set out under HubSpot ERP integrations.
Configuration Procedure and Verification
- In QuickBooks, turn off Custom transaction number, lock closed accounting periods, give every product HubSpot will sell a SKU, and turn off revenue recognition if HubSpot invoices will sync.
- Confirm that each customer's primary email belongs to the person who receives invoices, and list any QuickBooks vendor or employee whose name equals the name of a HubSpot company that will be invoiced, since those companies' first contacts will be rejected.
- In HubSpot, mark one billing contact per company with that email, and resolve duplicate contacts and companies before saving any sync.
- Write down where each kind of invoice originates: from a deal, in QuickBooks, or by workflow action.
- Connect the app from the Marketplace, then under Settings > Integrations > Connected apps > QuickBooks Online > CRM syncs turn on the product sync, one-way from QuickBooks, first.
- Set the contact sync and its conflict resolution, then the invoice sync, adding the HubSpot-to-QuickBooks direction if deals will be converted to invoices, since the recommended filter syncs from QuickBooks only.
- Turn off credit card fees in the HubSpot payment settings, and add a Source is none of Invoice filter to any payment-triggered workflow that creates QuickBooks paid invoices or sales receipts.
- Verify with an invoice the business intends to issue, since no sandbox can be connected. Convert its deal, confirm it reaches QuickBooks under the same number with lines on synced products rather than Custom Line Item, record its payment in QuickBooks against that invoice alone, click Sync now, and confirm it shows paid in HubSpot and on the deal. Then confirm in Object view that every failing count is zero or explained by a documented rule.
Sync Errors, Silent Gaps and Their Causes
A second contact at a customer fails with The display name is a duplicate. The contact sync names customers after companies, and QuickBooks keeps names unique across customers, vendors and employees; one billing contact per company prevents it.
An invoice fails with An invoice should have an associated customer. The email of the contact on the invoice differs from the QuickBooks customer's, and switching the invoice to the billing contact lets it sync.
A HubSpot invoice stops syncing after finance edited it. Line, price and tax changes cannot be made outside HubSpot, so the edit is reversed in QuickBooks and remade in HubSpot.
The sync reports Duplicate Document Number Error. Custom transaction number is on, so QuickBooks invoices adopted HubSpot's prefix and collided with its numbers; renumbering them and turning the setting off clears the error.
An invoice paid in full in QuickBooks stays open in HubSpot, with no error anywhere. The payment was applied to several invoices at once, which the setup guide says does not sync, or a payment that originated in HubSpot was edited in QuickBooks, which the same guide says can leave the HubSpot invoice unpaid without an error message. One QuickBooks payment per invoice prevents the first, leaving HubSpot-originated payment records untouched prevents the second, and the monthly comparison of open balances finds either.
Revenue from HubSpot invoices lands in one QuickBooks income account. The line items matched no product by SKU and fell to the Custom Line Item product and its income account, so invoices are built from synced products.
Boundaries of the Evidence
This covers HubSpot's QuickBooks Online app and the routes to Desktop, not QuickBooks Payments, payroll, other ledgers or migration from Desktop to Online; the NetSuite connector is examined in HubSpot NetSuite integration. Behaviour is as documented in September 2026, read from HubSpot's knowledge base, the marketplace listings and Intuit's pages on 27 September 2026, and the setup guide is authoritative as the app changes.
The evidence is documentary: nothing here was retested in a live portal for this article, and the sample month is invented. The documentation is silent on whether QuickBooks sub-customers and jobs, which Intuit models as nested Customer objects, sync as contacts; on whether the edit restrictions cover invoices a workflow action creates; and on whether a customer without an email syncs, which the data sync default of syncing only contacts with an email suggests it does not. The two HubSpot sources also disagree on mappings: the listing says changing the default mappings requires Operations Hub Starter, where the knowledge base gates only added mappings, on Data Hub Starter. No frequency of any symptom above is claimed.
Frequently Asked Questions
Does a QuickBooks HubSpot integration need a paid HubSpot subscription?
Not for the app itself, which is available on all products and plans. Field mappings added beyond the defaults need Data Hub Starter or above, the QuickBooks workflow actions need a Professional or Enterprise hub, and automated sales tax needs Revenue Hub Professional or Enterprise.
Is the HubSpot integration with QuickBooks a two-way sync?
Contacts, products, invoices and credit memos can each sync in either direction or both, while payments run on fixed settings. The recommended defaults make products and invoices one-way from QuickBooks, so HubSpot invoices reach QuickBooks only after the invoice direction is changed.
Can a QuickBooks and HubSpot integration create invoices from deals?
Convert deal to invoice creates a HubSpot invoice that syncs to QuickBooks, and on Professional or Enterprise in the United States the Create a QuickBooks invoice workflow action creates one in QuickBooks directly. Both keep the deal association that an invoice raised in QuickBooks does not receive automatically.
Does the HubSpot and QuickBooks integration work with QuickBooks Desktop?
HubSpot's app requires QuickBooks Online, so a HubSpot CRM integration with QuickBooks Desktop runs through a third-party connector, middleware or custom code built on Intuit's Web Connector.
Is a QuickBooks integration HubSpot builds usable outside the United States?
Contact and product sync are available, but HubSpot states that non-U.S. QuickBooks Online accounts cannot use invoice sync, because those versions require tax on synced invoices, and the workflow actions are limited to HubSpot customers based in the United States.
In Summary
HubSpot's QuickBooks Online app is available on every HubSpot plan and syncs contacts with customers, products, invoices and credit memos, with payment status returning on fixed settings. Each QuickBooks customer pairs with one HubSpot contact by email and takes its company's name as a display name that QuickBooks holds unique, so each company has one billing contact.
Deals do not sync. An invoice converted from a deal keeps the deal and locks its lines, prices and tax against edits in QuickBooks, while an invoice raised in QuickBooks stays editable and reaches a deal only when someone associates it by hand. The app beats a custom build on ownership cost and sync visibility, and falls short on project costing, multi-invoice remittances, non-U.S. tax and revenue recognition; Desktop has no HubSpot-built path at all.
The record to make before connecting anything is where each kind of invoice will be created and who each customer's billing contact is. In the sample month, that record is the difference between deals that show 77.8 percent of billing and deals that show all of it, and a monthly comparison of open balances confirms it is still followed.