{
  "slug": "quickbooks-online",
  "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/",
  "name": "QuickBooks Online",
  "vendor": "Intuit",
  "aliases": [
    "QBO",
    "QuickBooks",
    "Intuit QuickBooks Online",
    "QuickBooks Online Advanced"
  ],
  "website": "https://quickbooks.intuit.com/online/",
  "category": {
    "slug": "erp-and-accounting",
    "name": "ERP and accounting",
    "url": "https://apps.sectorgrowth.com/categories/erp-and-accounting/"
  },
  "summary": "QuickBooks Online holds the invoice, the payment and the customer file that one bookkeeper guards while everyone else queues to ask about it.",
  "answer": "Yes. The QuickBooks Online app in the HubSpot App Marketplace is HubSpot's own as of September 2026, and for most finance teams it is the right first move at 8 to 24 hours of mapping and validation. It stops when invoice status has to drive a workflow, or when a customer exists twice under two spellings.",
  "nativeApp": {
    "status": "hubspot-built",
    "name": "QuickBooks Online",
    "developer": "HubSpot",
    "verifiedAt": "2026-09-22"
  },
  "api": {
    "style": "rest",
    "auth": "oauth2",
    "webhooks": "yes",
    "changedSince": "yes",
    "sandbox": "yes",
    "rateLimit": "500 requests per minute per company file, and 10 requests per second per company file and app",
    "docsUrl": "https://developer.intuit.com/app/developer/qbo/docs/learn/rest-api-features"
  },
  "objects": [
    {
      "source": "Customer",
      "hubspot": "company",
      "direction": "two_way",
      "key": "QuickBooks customer id held in a custom HubSpot property",
      "notes": "The display name changes when the bookkeeper tidies the ledger, the id does not."
    },
    {
      "source": "Invoice",
      "hubspot": "custom",
      "direction": "to_hubspot",
      "key": "Invoice id, with the document number shown to sellers",
      "notes": "A custom object keeps invoices off the deal, which is a pipeline record."
    },
    {
      "source": "Payment",
      "hubspot": "custom",
      "direction": "to_hubspot",
      "key": "Payment id, associated to the invoice it settles"
    },
    {
      "source": "Estimate",
      "hubspot": "deal",
      "direction": "to_hubspot",
      "key": "Estimate id",
      "notes": "Only worth mapping where quoting happens in QuickBooks rather than HubSpot."
    },
    {
      "source": "Item",
      "hubspot": "product",
      "direction": "to_hubspot",
      "key": "Item id, with the name as the readable label"
    }
  ],
  "approaches": [
    {
      "kind": "native",
      "fit": "recommended",
      "why": "HubSpot's own QuickBooks Online app puts customers, invoices and products in the portal with no service to host, and it is the honest first answer for a team that wants finance data visible rather than actionable."
    },
    {
      "kind": "custom",
      "fit": "possible",
      "why": "A keyed service earns its cost once invoice status has to trigger a workflow, once more than one company file is in play, or once the native field mapping cannot carry what finance cares about."
    },
    {
      "kind": "ipaas",
      "fit": "avoid",
      "why": "A per-task automation platform turns every invoice and payment into a billable run, so the cost grows with the ledger while the value stays flat."
    }
  ],
  "effort": {
    "discoveryHours": [
      4,
      8
    ],
    "buildHours": [
      8,
      24
    ],
    "buildBand": "8 to 24 hours",
    "typicalElapsed": "1 to 2 weeks"
  },
  "pattern": "polling-watermark",
  "faqs": [
    {
      "q": "Does the HubSpot QuickBooks Online app sync invoices both ways?",
      "a": "No. The app brings finance records into the portal so sellers can see them. It is not a route for editing an invoice from HubSpot, and you should not want one. QuickBooks is the book of record, and a sales tool that can rewrite a posted invoice is an audit problem rather than a feature."
    },
    {
      "q": "How quickly does a QuickBooks Online invoice appear in HubSpot?",
      "a": "That depends on the route. A custom service can subscribe to webhooks and act within seconds of the invoice being saved. The packaged app runs on its own schedule instead, so the honest expectation is minutes to hours. If a workflow has to fire the moment an invoice posts, budget for the build."
    },
    {
      "q": "What does QuickBooks Online change data capture actually return?",
      "a": "It returns the full payload of every entity that changed inside a look-back window, which reaches back at most thirty days, and a response carries at most one thousand objects. Deleted records come back with a deleted status rather than vanishing. It is the right tool for a nightly sweep and the wrong one for a first load."
    },
    {
      "q": "Why does one QuickBooks customer turn into two HubSpot companies?",
      "a": "Almost always because something matched on the display name. Bookkeepers rename customers, add a trading name, or fix a spelling, and a name based match then treats the same customer as new. We key every write on the QuickBooks customer id in a custom property, so a rename updates the existing company instead of creating a second one."
    },
    {
      "q": "What happens when a QuickBooks Online connection stops working?",
      "a": "The sync goes quiet rather than loud, which is the dangerous part. Tokens expire, an admin disconnects the app, or a company file is closed. We treat a run that returns nothing as a failure rather than a success, alert on it, and keep the last successful watermark so the catch up reads only what was missed."
    },
    {
      "q": "Can we test a QuickBooks Online integration without touching the live books?",
      "a": "Yes. Intuit gives every developer account a sandbox company with sample data, and webhook endpoints are configured separately for sandbox and production. We build and rehearse there first. Cutover is then a token swap against the real company file, with a portal allowlist in the service so the wrong credentials cannot write to the wrong place."
    },
    {
      "q": "How many QuickBooks Online API calls will a nightly sync use?",
      "a": "Fewer than most people expect, if it is built to read changes rather than everything. Intuit allows 500 requests a minute per company file and 10 a second per company file and app, a query returns at most one thousand entities, and a batch request should hold about thirty payloads. A changed-only nightly sweep sits well inside that."
    },
    {
      "q": "How long does a QuickBooks Online and HubSpot setup take?",
      "a": "The packaged route runs to 4 to 8 hours of discovery and 8 to 24 hours of setup and validation. Most of that is reviewing the field mapping and reconciling counts against a QuickBooks report, not configuration. Calendar time is usually a week or two, and the long pole is getting an administrator on both sides in the same room to authorize the connection."
    }
  ],
  "sections": [
    {
      "depth": 2,
      "text": "Why teams connect QuickBooks Online to HubSpot",
      "anchor": "#why-teams-connect-quickbooks-online-to-hubspot",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#why-teams-connect-quickbooks-online-to-hubspot"
    },
    {
      "depth": 2,
      "text": "What syncs",
      "anchor": "#what-syncs",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#what-syncs"
    },
    {
      "depth": 2,
      "text": "Architecture",
      "anchor": "#architecture",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#architecture"
    },
    {
      "depth": 2,
      "text": "Three ways to connect",
      "anchor": "#three-ways-to-connect",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#three-ways-to-connect"
    },
    {
      "depth": 2,
      "text": "What breaks and how we prevent it",
      "anchor": "#what-breaks-and-how-we-prevent-it",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#what-breaks-and-how-we-prevent-it"
    },
    {
      "depth": 3,
      "text": "Duplicate customers from name matching",
      "anchor": "#duplicate-customers-from-name-matching",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#duplicate-customers-from-name-matching"
    },
    {
      "depth": 3,
      "text": "Expired tokens and removed apps",
      "anchor": "#expired-tokens-and-removed-apps",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#expired-tokens-and-removed-apps"
    },
    {
      "depth": 3,
      "text": "Change data capture’s thirty-day limit",
      "anchor": "#change-data-captures-thirty-day-limit",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#change-data-captures-thirty-day-limit"
    },
    {
      "depth": 3,
      "text": "500 requests a minute per file",
      "anchor": "#500-requests-a-minute-per-file",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#500-requests-a-minute-per-file"
    },
    {
      "depth": 2,
      "text": "Our approach",
      "anchor": "#our-approach",
      "url": "https://apps.sectorgrowth.com/integrations/quickbooks-online/#our-approach"
    }
  ],
  "caseStudies": [],
  "guides": [
    "https://apps.sectorgrowth.com/guides/choose-a-hubspot-integration-approach/"
  ],
  "builtBySectorGrowth": false,
  "status": "published",
  "verifiedAt": "2026-09-22",
  "updatedAt": "2026-09-25",
  "authors": [
    {
      "name": "Prash",
      "role": "Lead of Technical Integrations and AI Solutions"
    }
  ],
  "sources": [
    {
      "title": "Set up OAuth 2.0",
      "url": "https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0"
    },
    {
      "title": "API call limits and throttles",
      "url": "https://developer.intuit.com/app/developer/qbo/docs/learn/limits-and-throttles"
    },
    {
      "title": "Change data capture operation",
      "url": "https://developer.intuit.com/app/developer/qbo/docs/learn/explore-the-quickbooks-online-api/change-data-capture"
    },
    {
      "title": "Configure webhooks",
      "url": "https://developer.intuit.com/app/developer/qbo/docs/develop/webhooks/configure-webhooks"
    },
    {
      "title": "Sandbox and tools",
      "url": "https://developer.intuit.com/app/developer/qbo/docs/develop/sandboxes"
    }
  ]
}