ml-connector
Epicor KineticUKG

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.

How Epicor Kinetic works

Epicor Kinetic exposes vendors, purchase orders, AP invoices, GL accounts, cost centers, and parts through REST OData endpoints at a tenant-specific URL on the Epicor SaaS platform or your on-premises server. It authenticates with OAuth2 client credentials (cloud SaaS) or Token Resource Service (on-premises), with an API key header required in addition to the bearer token. Write operations follow a two-step pattern: GetNewXxx followed by UpdateMaster. Epicor has no outbound webhooks, so payroll GL journals must be polled using OData filters on UpdatedOn timestamps. Bearer tokens expire in approximately one hour and require refresh logic.

How UKG works

UKG exposes employee records, compensation details, pay statements, cost centers, and payroll GL journals through REST APIs at a tenant-assigned hostname. Authentication uses HTTP Basic Auth with two custom API key headers (one for tenant, one for service account), or OAuth2 client credentials for the Webhooks Premium platform. UKG offers near-real-time HMAC-signed webhooks for employee and payroll events, with a 14-day retention window, and also supports polling via a delta endpoint for changed employees. OAuth tokens expire in one hour. The platform has no native GL accounts endpoint, but exposes payroll GL segments via the thirdpartypay endpoint for third-party postings.

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

Connect Epicor Kinetic and UKG

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

Get started