ml-connector
QuickBooks DesktopWorkday HCM

QuickBooks Desktop and Workday HCM integration

QuickBooks Desktop runs accounting for small and mid-sized businesses. Workday HCM handles workforce management and payroll across multiple organizations and cost centers. Connecting them keeps your chart of accounts and workforce headcount aligned, so payroll cost allocations land on valid QuickBooks accounts and your ledger reflects current employee counts. ml-connector manages the on-premises QuickBooks polling agent and the cloud Workday API integration simultaneously, ensuring accurate financial and HR data flow.

How QuickBooks Desktop works

QuickBooks Desktop exposes employees, vendors, accounts, bills, journal entries, and purchase orders through QBXML, an XML format transmitted via SOAP. A customer-hosted agent called QBWC (QuickBooks Web Connector) polls a remote SOAP endpoint you provide on a configurable schedule (minimum 1 minute, typically 5-15 minutes). Authentication uses a session-token handshake: the QBWC agent provides username and password, your service returns a GUID session ticket valid for all subsequent calls. QuickBooks must be open and running on Windows at the customer site for the agent to process requests. The product has no webhook system, so all data retrieval is polling-based with ModifiedDateRangeFilter queries to detect changes.

How Workday HCM works

Workday HCM is a cloud-based platform accessed via both SOAP and REST APIs depending on data type. REST covers HCM and staffing data like workers and positions, while SOAP (Web Services for Workday, or WWS) handles financial and procurement records including GL accounts, cost centers, and accounting journals. REST uses OAuth2 with a 60-minute access token and long-lived refresh token; SOAP uses WS-Security with Integration System User credentials. All queries are polling-based with HTTP 429 rate-limit responses that include a Retry-After header. Workday publishes no webhooks, so integrations must implement their own polling schedule.

What moves between them

Worker records flow from Workday into QuickBooks Desktop, where they appear as employees. Cost centers and organizations from Workday map to expense accounts in QuickBooks so that payroll allocations reference valid GL dimensions. Accounting journals generated after each Workday payroll run are read into QuickBooks and posted to the correct chart of accounts. The main cadence is aligned with Workday's payroll calendar so that payroll GL documents post into QuickBooks on the same day the journals are generated, keeping the ledger current through the accounting close cycle.

How ml-connector handles it

ml-connector maintains two concurrent polling loops: one speaking SOAP/QBXML to the customer-hosted QuickBooks Web Connector agent, the other speaking SOAP/REST to Workday's cloud endpoints. On the QuickBooks side, it manages the session-token handshake, crafts QBXML requests with ModifiedDateRangeFilter for change detection, and handles the 60-second timeout by paginating large result sets. On the Workday side, it refreshes OAuth2 tokens on a 50-minute interval (before the 60-minute expiry) and retries HTTP 429 responses using the Retry-After value. Worker records are deduplicated by external ID across payroll cycles so a rehire does not create a duplicate entry. Cost center and GL account mappings are cached and validated before posting any payroll journal. The system tracks which QBXML version the customer's QuickBooks edition supports and adjusts the envelope accordingly, since different QB versions and regional editions use different schemas.

A real-world example

A regional construction company with 250 employees and three office locations runs QuickBooks Desktop for accounting and Workday HCM for payroll and benefits. Before the integration, the finance team manually entered payroll GL distributions into QuickBooks each week after Workday generated the payroll journals, mapping cost centers by hand to job codes in QB and occasionally posting to the wrong account during month-end crunch. With QuickBooks Desktop and Workday HCM connected, each payroll run's GL postings flow automatically into QB, mapped to the correct cost center and expense account, and new hires created in Workday appear in QuickBooks the next payroll cycle. The accounting team no longer re-keys payroll; they verify the automated postings and close the books faster.

What you can do

  • Sync Workday workers into QuickBooks Desktop as employees, including hire, termination, and rehire events.
  • Post Workday payroll GL journals into QuickBooks Desktop general ledger on the payroll cycle, allocated to correct cost centers and expense accounts.
  • Map Workday cost centers and organizations to QuickBooks chart of accounts so payroll always lands on valid GL dimensions.
  • Authenticate QuickBooks via the Web Connector session-token handshake and Workday via OAuth2 refresh token, handling token expiry and rate limits.
  • Poll both systems on a configurable schedule with deduplication, paginated queries, and full audit trail on every record.

Questions

How does ml-connector reach QuickBooks Desktop if it runs on a customer's Windows machine?
The customer deploys the QuickBooks Web Connector (QBWC) agent on the Windows machine where QuickBooks is installed and running. QBWC is configured to poll your SOAP endpoint at a specified URL on a regular interval. ml-connector's SOAP server receives those poll requests, issues QBXML commands, and receives QBXML responses back from QuickBooks through the QBWC agent. This means QuickBooks and QBWC must be running for the integration to work.
Which Workday API surface handles payroll GL journals that need to post into QuickBooks?
Payroll GL journals are financial records, so they come through Workday's SOAP API (Web Services for Workday, or WWS), not the REST API. ml-connector uses Workday's SOAP endpoint with WS-Security Integration System User credentials to retrieve accounting journals after each payroll run, then translates them into QBXML and posts them into QuickBooks via the Web Connector agent.
What happens if the customer's QuickBooks edition uses a different QBXML schema than expected?
Different QuickBooks editions (Pro, Premier, Enterprise) and regions (US, UK, Canada, Australia) use different QBXML schemas with different field names and entities. ml-connector tracks the customer's QuickBooks version and regional edition at setup and adjusts the QBXML envelope accordingly. If the schema changes mid-integration, the system will error on the next poll so you can update the configuration before payroll records are affected.

Related integrations

Connect QuickBooks Desktop and Workday HCM

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

Get started