Epicor Kinetic and Paylocity integration
Epicor Kinetic runs your manufacturing and distribution business. Paylocity runs payroll and HR. Connecting the two keeps labor costs in the general ledger synchronized with payroll and ensures employee records in Epicor stay aligned with new hires, terminations, and role changes in Paylocity. After each payroll run, earned and deducted amounts flow from Paylocity into Epicor's general ledger without manual re-entry or reconciliation delays.
What moves between them
Employee records and payroll data flow from Paylocity into Epicor. After each payroll run, ml-connector reads Paylocity earnings and deductions and posts corresponding GL journal lines into Epicor's general ledger, mapped to the correct GL account and cost center based on job code, work location, and department. Employee hires, terminations, and role changes from Paylocity are synced into Epicor to keep headcount and job assignments current. Deduction types are mapped once and reused, so each payroll run references GL accounts that already exist in Epicor.
How ml-connector handles it
ml-connector stores both credential sets encrypted and refreshes the Paylocity Bearer token before each request or on 401. For Epicor, it builds the correct v2 OData URL per tenant, includes both the API Key header and Bearer token as required, and polls for changed records using OData $filter on update timestamps to retrieve only records modified since the last sync. Paylocity webhook events are ingested where enabled and supplement polling to catch real-time employee changes. Cost centers and GL accounts are mapped at setup time, so every payroll GL line references an existing Epicor dimension. Epicor's two-step write pattern for complex objects is handled transparently, and short-lived Bearer tokens are refreshed without interrupting the sync. Each record is tracked by its Paylocity employee ID and payroll period, preventing duplicate GL posts if a retrieval needs to be retried.
A real-world example
A mid-sized distribution company runs Epicor Kinetic for procurement, inventory, and accounting across three regional warehouses. Paylocity handles payroll for 150 employees split across the three locations. Before the integration, the payroll team exported a spreadsheet each pay period and mailed it to accounting, who manually entered earnings and deductions into Epicor, allocating them to the correct warehouse and department. Month-end close was delayed by a week while finance chased missing payroll entries and reconciled labor costs against the employee records in Epicor. With Paylocity connected to Epicor, each payroll run posts automatically to the right GL accounts and cost centers, and employee changes in Paylocity update Epicor within minutes. The manual entry step is eliminated, payroll and labor costs stay in sync throughout the month, and month-end close starts with the labor accounts already reconciled.
What you can do
- Post Paylocity payroll earnings and deductions into Epicor Kinetic GL accounts after each pay run, allocated to the correct cost centers by work location and job code.
- Sync employee data from Paylocity into Epicor, keeping headcount, job assignments, and termination status aligned.
- Map Paylocity deduction types to Epicor GL accounts once at setup, eliminating manual mapping on every pay run.
- Authenticate Paylocity with OAuth2 client credentials and token refresh, and Epicor with API Key headers and tenant-specific Bearer tokens.
- Ingest Paylocity webhook events for real-time employee and payroll changes while polling Epicor on a schedule, with retries and a full audit trail on every GL post.
Questions
- Which direction does data move between Epicor and Paylocity?
- The main flow is Paylocity into Epicor. Payroll earnings, deductions, and employee changes move from Paylocity into Epicor's general ledger and employee records. Deduction types and cost centers are mapped bidirectionally at setup so Paylocity payroll allocates correctly, but Epicor GL posts are read-only from Paylocity's perspective.
- How does the integration handle Epicor's API Key requirement and short-lived Bearer tokens?
- ml-connector stores the API Key encrypted and includes it in every request header alongside the Bearer token, as Epicor requires both even with OAuth2. The Bearer token is refreshed before each request or immediately upon receiving a 401 response, so token expiry never causes sync failures.
- Why does ml-connector use polling instead of relying solely on Paylocity webhooks?
- Paylocity webhooks deliver only identifiers and fire multiple times per minute on employee changes, requiring follow-up API calls to fetch full record data. ml-connector uses webhooks for real-time awareness but also polls on a payroll-aligned schedule to ensure no changes are missed and to retrieve the complete GL and employee details needed for posting to Epicor.
Related integrations
More Epicor Kinetic integrations
Other systems that connect to Paylocity
Connect Epicor Kinetic and Paylocity
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started