Epicor Kinetic and UKG integration
Epicor Kinetic runs your manufacturing ERP, managing production, procurement, and the general ledger. UKG runs payroll and HR across your organization. Connecting the two keeps your labor costs properly allocated in Epicor and your headcount aligned with reality. Payroll GL documents from UKG flow into Epicor after every pay run, posted to the correct cost centers and GL accounts, and your month-end close starts with labor accounts already reconciled.
What moves between them
The primary flow runs from UKG into Epicor Kinetic. After each payroll run, ml-connector reads UKG's payroll GL journal export, maps cost centers and GL account segments to their Epicor equivalents, and posts labor cost journals into Epicor's general ledger. Employee records can also flow from UKG to Epicor to keep headcount and department assignments aligned. The sync is unidirectional for GL posting since Epicor's accounts are the source of truth for finance, and UKG payroll events can trigger the sync on a schedule tied to your payroll calendar or via UKG webhooks where enabled.
How ml-connector handles it
ml-connector stores both credential sets encrypted and manages Epicor's OAuth2 token refresh on every call, keeping track of the approximately one-hour expiry. On the UKG side it authenticates with Basic Auth plus the two custom API keys, or refreshes an OAuth2 token if webhooks are configured. Since Epicor has no webhooks, ml-connector polls UKG for payroll GL journals and employee records on a schedule aligned to your payroll calendar. Cost centers are mapped first, ensuring every payroll journal line references a GL account and cost center that exist in Epicor. UKG webhooks offer near-real-time notification of payroll completion if enabled, but ml-connector also maintains a polling fallback for zero-tolerance integrations since UKG webhook retention is limited to 14 days. Payroll GL posting in Epicor follows the two-step pattern required by the API: GetNewAPInvHed followed by UpdateMaster for the invoice header and lines. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized discrete manufacturer runs Epicor Kinetic for production, procurement, and financial accounting, and uses UKG for payroll processing across two plants and a head office. Before the integration, the accounting team pulled the payroll register from UKG each period and manually posted labor cost totals to Epicor's general ledger, allocating lines to the correct plant cost centers. This process took two to three hours per pay cycle and often left labor accounts out of balance until month-end close, when discrepancies between headcount in UKG and labor account balances in Epicor had to be investigated. With Epicor and UKG connected, each payroll GL journal automatically posts into Epicor's ledger, cost-allocated to each plant, and employee hires and terminations keep both systems synchronized. The month-end close process now begins with labor accounts already reconciled, and the manual re-keying step is eliminated.
What you can do
- Post UKG payroll GL journals into Epicor Kinetic's general ledger after every pay run, allocated to the correct cost centers.
- Keep Epicor headcount and department assignments aligned with UKG employee hires, terminations, and transfers.
- Map UKG cost centers and GL account segments to Epicor GL accounts and cost centers so payroll lands on the correct accounts.
- Manage Epicor OAuth2 token refresh and UKG dual authentication, with polling on a schedule tied to your payroll calendar.
- Receive near-real-time payroll completion notifications from UKG webhooks when enabled, with a polling fallback for zero-tolerance integrations.
Questions
- Which direction does data move between Epicor Kinetic and UKG?
- The main flow is from UKG into Epicor Kinetic. Payroll GL journals and employee records move from UKG into Epicor, while cost centers are aligned so that payroll GL postings reference valid Epicor cost centers and GL accounts. Epicor's general ledger is the source of truth, so ml-connector does not post back to UKG.
- How does the integration handle Epicor's token expiry and two-step write pattern?
- ml-connector tracks Epicor's OAuth2 bearer token expiry (approximately one hour) and refreshes on each API call before the token times out. When posting payroll GL journals to Epicor, ml-connector follows the required two-step pattern: first calling GetNewAPInvHed to create a new invoice header, then calling UpdateMaster to write the header and associated cost-allocated lines in a single transaction.
- Does the integration use UKG webhooks or polling?
- Where UKG Webhooks Premium is enabled, ml-connector receives near-real-time HMAC-signed events when payroll completes, triggering the sync immediately. UKG webhook retention is limited to 14 days, so ml-connector also maintains a scheduled polling fallback using UKG's delta endpoint for zero-tolerance integrations and to catch any events outside the retention window.
Related integrations
More Epicor Kinetic integrations
Other systems that connect to UKG
Connect Epicor Kinetic and UKG
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started