ml-connector
QuickBooks DesktopServiceTitan

QuickBooks Desktop and ServiceTitan integration

ServiceTitan manages dispatch and field invoicing for service contractors, while QuickBooks Desktop handles accounting on the customer's Windows machine. Connecting the two keeps your field revenue and accounts payable in sync without manual data entry. Invoices generated in ServiceTitan flow into QB automatically, payments are posted, and AP bills for materials purchased through ServiceTitan are recorded in the correct QB accounts. ml-connector manages the QBWC session token handshake and retries when QuickBooks is temporarily busy.

How QuickBooks Desktop works

ServiceTitan is a cloud field-service-management platform that exposes invoices, payments, inventory bills, purchase orders, vendors, customers, and job data through REST APIs authenticated with OAuth2 client credentials. Every request requires an ST-App-Key header and tenant ID in the URL path. ServiceTitan supports outbound webhooks with HMAC-SHA256 signature verification, but AP bills are read-only (generated automatically when a purchase order is marked received). ServiceTitan rate-limits at 60 calls per second per app per tenant.

How ServiceTitan works

QuickBooks Desktop is a locally-installed Windows accounting system that integration partners reach through the QBWC Web Connector, a customer-hosted agent that calls your remote SOAP endpoint on a configurable schedule (typically every 5 to 15 minutes). Authentication uses a session-token handshake: QBWC provides credentials, your service returns a GUID session ticket for all subsequent calls. QuickBooks must be open and logged into the company file for QBWC to process requests. The API uses QBXML, an XML-based format, and requires that all modify operations include an EditSequence version counter to prevent concurrent-edit collisions.

What moves between them

The main flow moves from ServiceTitan into QuickBooks Desktop. Invoices and payments are synced on a schedule determined by your QBWC configuration interval (minimum 1 minute, typical 5 to 15 minutes). ServiceTitan inventory bills are read-only, so ml-connector reads them and posts corresponding AP entries into QB without attempting to write back. Vendor and customer records are synchronized bidirectionally to keep both systems aligned. Because QB is local-only and QBWC is synchronous, the polling interval determines sync latency; data from ServiceTitan reaches QB within minutes of creation.

How ml-connector handles it

ml-connector runs QBWC-compliant SOAP request handlers that receive the customer's credentials, return a session token to QBWC, and then process queries in the session. For each ServiceTitan invoice and payment received via webhook or polled from the ServiceTitan API, ml-connector constructs QBXML requests that add the corresponding Invoice or Check record in QuickBooks. Before every Modify operation, ml-connector re-queries the QB object to capture the current EditSequence, preventing collision errors if the same record is edited locally in QB. ServiceTitan AP bills are mapped to QB Vendor Bills with line items routed to the correct GL accounts and class codes if configured. Rate-limit handling: if ServiceTitan returns 429, ml-connector backs off and retries. QB session timeout (approximately 60 seconds per request) is handled by queuing large multi-record syncs and retrying individual requests if the QB session drops. Every record sync is logged with a full audit trail, including the QB transaction ID on successful post.

A real-world example

A mid-size plumbing and HVAC contractor runs ServiceTitan for dispatch, job scheduling, and field invoicing across 12 service trucks and 20 technicians, and uses QuickBooks Desktop for accounting on an office Windows machine. Before the integration, the office manager spent two hours each day exporting job invoices from ServiceTitan and re-entering them into QB, then reconciling material costs from purchase orders against AP. With ServiceTitan and QuickBooks Desktop connected via ml-connector, job invoices post to QB automatically when the technician completes them in ServiceTitan, material purchases sync as AP bills, and the cash flow statement reflects field revenue the same day. Month-end reconciliation that used to take three days now takes one, and the AP ledger is never out of sync with ordered materials.

What you can do

  • Sync ServiceTitan invoices and payments into QuickBooks Desktop automatically on the QBWC polling schedule, with full GL posting.
  • Map ServiceTitan inventory bills to QB vendor bills and post them to the correct accounts and cost centers.
  • Handle the QBWC session-token authentication handshake and retry when the QB session is temporarily busy.
  • Prevent concurrent-edit collisions by re-querying the current EditSequence on every QB record modification.
  • Maintain a complete audit trail of every synced record, including QB transaction IDs, for reconciliation and replay on failure.

Questions

How often do invoices and payments sync between ServiceTitan and QuickBooks Desktop?
Sync latency is determined by the QBWC polling interval you configure in the QBWC setup dialog. The minimum is 1 minute; most deployments use 5 to 15 minutes. ml-connector processes all pending ServiceTitan invoices and payments within that window and posts them to QB in the same batch, so the entire day's field revenue is typically in QB within 15 minutes of job completion.
Can ServiceTitan AP bills be modified or deleted in QuickBooks?
ServiceTitan AP bills are read-only in the ServiceTitan API; ml-connector posts them to QB as Vendor Bills but does not attempt to modify them if they change in ServiceTitan. Any amendments to AP bills must be made directly in QuickBooks or back in ServiceTitan, and the systems will reconcile on the next sync cycle.
What happens if the customer's QuickBooks is closed when QBWC tries to sync?
If QuickBooks is not running or not logged into the company file when QBWC calls ml-connector, the sync will fail for that cycle. ml-connector logs the failure and retries on the next QBWC interval. QB must be running continuously for reliable real-time sync; if downtime is expected, the QBWC interval can be configured to poll more frequently during business hours.

Related integrations

Connect QuickBooks Desktop and ServiceTitan

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

Get started