ml-connector
QuickBooks OnlinePaylocity

QuickBooks Online and Paylocity integration

QuickBooks Online runs your books. Paylocity runs your payroll. Connecting the two moves payroll results into your general ledger without re-keying, keeps employee records synchronized, and allocates payroll costs to the right accounts. After each payroll run, Paylocity's earnings and deductions flow into QuickBooks Online as journal entries, and employee hires and terminations stay in sync across both systems.

How QuickBooks Online works

QuickBooks Online exposes vendors, customers, employees, items, accounts, departments, bills, journal entries, and other accounting entities through the QuickBooks Online Accounting API v3, a REST service over HTTPS at quickbooks.api.intuit.com. All requests require OAuth 2.0 authorization and must include the company realm ID. QuickBooks supports webhooks for Create, Update, Delete, and Merge operations across most entity types, though webhook payloads contain only the entity ID and require a follow-up GET request to fetch the full record. Webhook payloads are best-effort and may arrive out of order or duplicated. A CDC (change data capture) endpoint is also available for polling the last 30 days of changes. Access tokens expire in 1 hour and refresh tokens rotate every 24 to 26 hours.

How Paylocity works

Paylocity is a cloud-based HCM and payroll platform accessible through REST APIs at api.paylocity.com/api/v2. All API calls require OAuth 2.0 client credentials flow, obtaining a bearer token that lasts 3600 seconds. Paylocity exposes employees, pay statements, earnings, deductions, work locations, and positions. Like QuickBooks, Paylocity sends webhooks on events such as New Hire, Employee Change, Termination, and Payroll Processed, but webhook payloads carry identifiers only and require follow-up API calls to fetch full details. Employee Change events may fire multiple times per minute. Paylocity requires TLS 1.2 minimum and annual client secret rotation, and API access requires existing customer status or a signed Marketplace Partner Agreement.

What moves between them

The main flow runs from Paylocity into QuickBooks Online. After each payroll cycle, ml-connector reads Paylocity pay statements and breaks down the earnings and deductions into individual journal entry lines, maps each earning and deduction type to the corresponding QuickBooks general ledger account, and posts a balanced journal entry dated on the payroll end date. Employee records including names, hire dates, and termination dates flow from Paylocity into QuickBooks Online as employee entities so headcount remains aligned. Deduction and earning codes are pre-mapped so payroll costs land on valid GL accounts. The integration polls Paylocity's Payroll Processed events on a schedule tied to your payroll calendar, since timing is critical for month-end close.

How ml-connector handles it

ml-connector stores OAuth credentials for both systems encrypted and refreshes access tokens before they expire. On the Paylocity side it authenticates with client credentials, and on the QuickBooks side it uses the stored realm ID and handles the refresh token rotation. When a Paylocity payroll cycle completes, ml-connector fetches the full pay statement for each employee, computes the gross-to-net deductions and earning allocations, and constructs a balanced journal entry. Each line in the journal entry is mapped via a lookup table from Paylocity earning and deduction codes to QuickBooks account numbers. The journal entry is posted with the SyncToken required by QuickBooks' optimistic concurrency control. If the post fails due to a conflict or network error, ml-connector retries with exponential backoff. Every posted record is audit-logged with timestamps, account mappings, and the original Paylocity pay statement ID so it can be traced and replayed if a downstream GL reconciliation shows a difference.

A real-world example

A regional services company with 150 employees across four locations runs Paylocity for HR and biweekly payroll processing and QuickBooks Online for accounting. Before the integration, after each payroll run, the accounting manager manually exported the payroll register from Paylocity, summed the gross, taxes, and deductions by account, and typed the journal entries into QuickBooks. The process took 2 to 3 hours and was error-prone during high-change periods like open enrollment. With the integration, the journal entries post automatically within an hour of the payroll cycle completion, and the accounts are balanced by design. Month-end close now starts with payroll GL entries already complete and verified.

What you can do

  • Post Paylocity payroll journal entries into QuickBooks Online, allocated to the correct GL accounts by earning and deduction code.
  • Sync employee hire dates, terminations, and rehires between Paylocity and QuickBooks Online so headcount is always in agreement.
  • Map Paylocity earning codes and deductions to QuickBooks account numbers via a configurable lookup table.
  • Handle OAuth 2.0 token refresh and rotation for both Paylocity and QuickBooks Online, with automatic retry on token expiry.
  • Audit every payroll posting with timestamps, account mappings, and the source Paylocity pay statement ID for full traceability.

Questions

Which direction does payroll data flow between Paylocity and QuickBooks Online?
The main flow is from Paylocity into QuickBooks Online. Pay statements, earnings, and deductions move as journal entries into the general ledger. Employee records including hires and terminations are synced from Paylocity to QuickBooks to keep the employee master list aligned. The integration reads from Paylocity and writes to QuickBooks; it does not reverse the flow.
How does ml-connector handle the OAuth token refresh on both sides?
ml-connector stores the OAuth credentials for Paylocity and QuickBooks Online encrypted in the database and refreshes tokens before they expire. Paylocity access tokens last 3600 seconds, and QuickBooks refresh tokens rotate every 24 to 26 hours. ml-connector handles rotation transparently and retries any call that fails due to token expiry without requiring manual re-authorization.
How are earning and deduction codes from Paylocity mapped to QuickBooks account numbers?
ml-connector uses a configurable lookup table that maps each Paylocity earning and deduction code to a QuickBooks general ledger account number. The mapping is set up once during initial configuration and is reused for every payroll cycle. If a code is not in the table, the posting is flagged and audited so the mapping can be corrected before the next cycle.

Related integrations

Connect QuickBooks Online and Paylocity

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

Get started