ml-connector
QuickBooks DesktopChargebee

QuickBooks Desktop and Chargebee integration

Chargebee handles your subscription billing and invoice lifecycle, while QuickBooks Desktop manages your on-premises accounting and financial records. Keeping the two systems synchronized means every customer and invoice created in Chargebee flows into QuickBooks Desktop automatically, without re-keying or manual reconciliation. The integration respects QuickBooks Desktop's on-premises architecture by working through the QBWC polling agent on your customer's network.

How QuickBooks Desktop works

Chargebee exposes customers, subscriptions, invoices, credit notes, transactions, and payment sources through REST APIs secured with HTTP Basic Auth using an API key. Chargebee publishes webhooks for over 200 event types including customer creation, subscription changes, and invoice generation, with automatic retries up to 2 days. It supports region-specific endpoints and offset-based pagination with a maximum page size of 100 records per request.

How Chargebee works

QuickBooks Desktop is a locally-installed Windows accounting application that integrates with remote systems through the QBWC Web Connector agent running on the customer's premises. It exposes vendors, customers, invoices, bills, accounts, and journal entries through SOAP-based QBXML queries over HTTPS. Authentication uses a session-token handshake where the connector provides credentials and receives a GUID session ticket for the polling cycle. QuickBooks must be open and logged into the company file for QBWC to process requests, and requests timeout after approximately 60 seconds.

What moves between them

Customer records and invoices move from Chargebee into QuickBooks Desktop. When a customer is created or updated in Chargebee, ml-connector creates a corresponding Customer record in QuickBooks Desktop with the billing address and contact information. When an invoice is generated in Chargebee, ml-connector creates an Invoice record in QuickBooks Desktop linked to the corresponding customer, with line items and amounts. The integration operates on a configurable polling schedule that QBWC enforces on the customer's network, typically every 5 to 15 minutes.

How ml-connector handles it

ml-connector stores the QuickBooks Desktop SOAP endpoint URL and the Chargebee API key encrypted. On each polling cycle initiated by QBWC on the customer's network, ml-connector authenticates to the SOAP endpoint by passing the provided credentials to the authenticate() method and receives a session GUID. It then queries Chargebee via REST using HTTP Basic Auth with the stored API key and fetches customers and invoices modified since the last sync. For each new or updated Chargebee record, ml-connector builds the corresponding QBXML request and submits it within the session. Because QuickBooks Desktop does not support idempotency keys and modifies require the current EditSequence version counter, ml-connector queries the existing record before updating to retrieve the latest version. The integration respects the 60-second QBWC request timeout by breaking large queries into paginated batches of 100 records and retries failed requests on the next polling cycle.

A real-world example

A mid-market SaaS company runs Chargebee for subscription management and invoicing, and uses QuickBooks Desktop on a Windows server at their office for accounting and financial reporting. Previously, the accounting team received a daily exported list of new customers and invoices from Chargebee and manually entered them into QuickBooks Desktop, a process that introduced data entry errors and delays in month-end close. With Chargebee and QuickBooks Desktop connected, every new customer and invoice flows into QuickBooks Desktop on the polling cycle, the accounts receivable ledger stays current with billing activity, and the accounting team can focus on analysis rather than data entry.

What you can do

  • Create and update QuickBooks Desktop customers from Chargebee customer records, including billing address and contact details.
  • Create QuickBooks Desktop invoices from Chargebee subscription billing events with line items, amounts, and customer links.
  • Authenticate to QuickBooks Desktop through the QBWC agent using SOAP session tokens, handling the local on-premises architecture.
  • Respect EditSequence version counters to prevent concurrent edit conflicts and retrieve the latest record state before updates.
  • Poll on a configurable interval set by QBWC on the customer's premises, with batch pagination to handle the 60-second request timeout.

Questions

How does the integration work with QuickBooks Desktop running on a customer's premises?
ml-connector does not connect directly to the local QuickBooks Desktop machine. Instead, it acts as the remote SOAP web service that the QBWC polling agent on the customer's premises calls on a configurable interval. The customer specifies the ml-connector endpoint URL in their QBWC configuration, and QBWC handles authentication, polling frequency, and request queuing.
Does the integration handle QuickBooks Desktop's EditSequence requirement?
Yes. Because QuickBooks Desktop uses EditSequence as a version counter to prevent concurrent edit conflicts, ml-connector retrieves the existing record and its EditSequence before performing any update. This ensures modifications do not fail due to version mismatch and maintains data consistency.
What happens if a request times out or QBWC is offline?
QBWC has a configurable polling interval (minimum 1 minute, typical 5 to 15 minutes). If a request times out or QBWC is temporarily offline, ml-connector holds the changes and retries on the next polling cycle. The integration maintains audit logs of each sync so administrators can track what records succeeded and what requires manual intervention.

Related integrations

Connect QuickBooks Desktop and Chargebee

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started