ml-connector
Epicor KineticDayforce

Epicor Kinetic and Dayforce integration

Epicor Kinetic drives manufacturing, distribution, and service operations. Dayforce runs payroll, HR, and workforce management. Connecting the two keeps your employee records and labor cost journals in sync. New hires and terminations in Dayforce flow into Epicor Kinetic's employee roster, and payroll GL data from Dayforce is posted into Epicor Kinetic's general ledger on a schedule tied to your payroll calendar, with every change tracked and auditable.

How Epicor Kinetic works

Epicor Kinetic exposes vendors, purchase orders, GL accounts, customers, parts, business objects, and reports through REST APIs with OData v4 query support. Cloud instances are hosted at https://<tenant>.epicorsaas.com/<instance>/api/v2/odata/<Company>/ and on-premises installations use https://<server-host>/<instance>/api/v2/odata/<Company>/. Authentication uses Basic Auth, API Key headers, OAuth2 client credentials (cloud only), or Token Resource Service (on-premises). Epicor Kinetic has no native outbound webhooks, so finance and operational records must be polled using OData filters on date fields to retrieve changed records since the last sync, with offset pagination via $top and $skip parameters.

How Dayforce works

Dayforce is a cloud-based HCM platform that exposes employees, organizational units, jobs, positions, pay summaries, and employee balance periods through REST APIs at https://www.dayforcehcm.com/api/{clientNamespace}/V1/. Authentication uses OAuth2 Resource Owner Password Credentials, exchanging username, password, and client credentials for a Bearer JWT that expires in one hour. The client-specific optimized URL must be refreshed at least daily via /V1/ClientMetadata to avoid redirect overhead. Dayforce also has no native outbound webhooks; data must be polled using filterUpdateDateRangeMin and filterUpdateDateRangeMax query parameters to fetch records changed within a time window.

What moves between them

Employee records and payroll GL data flow from Dayforce into Epicor Kinetic. After each payroll cycle, ml-connector reads Dayforce employee records and GL postings and syncs employees into Epicor Kinetic's employee master, then posts payroll GL entries into Epicor Kinetic's general ledger, mapped to the correct company segment and GL accounts. The sync runs on a schedule aligned with your payroll calendar. Organizational units and job codes are kept in alignment so payroll allocations reference valid Epicor Kinetic dimensions.

How ml-connector handles it

ml-connector stores Dayforce OAuth2 credentials and refreshes the Bearer token before expiry (one-hour window). On the Epicor Kinetic side, it accepts the tenant URL and company segment for cloud or on-premises instances, and retrieves authentication credentials (Basic Auth, API Key, or OAuth2) for that instance. Both systems are polled on a schedule using date-filtered queries: Dayforce uses filterUpdateDateRangeMin and filterUpdateDateRangeMax, while Epicor Kinetic uses OData $filter on UpdatedOn timestamp fields. Employee records are synced first to establish the roster, then payroll GL entries are mapped to the appropriate Epicor Kinetic GL accounts and posted. Epicor Kinetic write operations for GL entries use the two-step GetNewXxx followed by UpdateMaster pattern that complex objects require. ML-connector tracks the Dayforce token expiry and re-authenticates before expiry to avoid mid-sync failures, and maintains a full audit trail of every record moved and any downstream errors.

A real-world example

A mid-sized distribution company runs Epicor Kinetic on-premises for procurement, inventory, and finance, and uses Dayforce cloud for payroll across three regional warehouses and a head office. Before the integration, the HR team submitted manual payroll journals to finance each cycle, and the finance team manually entered the labor totals and cost allocations into Epicor Kinetic by company and warehouse. Employee changes in Dayforce were not automatically reflected in Epicor Kinetic, causing mismatches during payroll reconciliation. With Epicor Kinetic and Dayforce connected, each payroll run automatically posts labor cost GL entries into Epicor Kinetic allocated by warehouse, employee records stay current, and the finance team's month-end reconciliation now starts with validated payroll data rather than manual re-keying.

What you can do

  • Sync Dayforce employees into Epicor Kinetic, keeping the workforce roster current with hires, terminations, and job changes.
  • Post Dayforce payroll GL entries into Epicor Kinetic's general ledger after each pay cycle, allocated to the correct company segment and GL accounts.
  • Refresh Dayforce OAuth2 Bearer tokens automatically before expiry to prevent mid-sync authentication failures.
  • Poll both Dayforce and Epicor Kinetic on a schedule using date-filtered queries to retrieve only changed records since the last sync.
  • Maintain a full audit trail of every employee record, payroll entry, and API call, with the ability to replay failed transactions.

Questions

Which direction does data flow between Epicor Kinetic and Dayforce?
The main flow is from Dayforce into Epicor Kinetic. Employee records and payroll GL entries move from Dayforce into Epicor Kinetic. Organizational units and job codes are aligned in both directions to ensure payroll allocations land on valid Epicor Kinetic dimensions. Payroll GL entries in Dayforce are read-only in this integration, so ml-connector does not write financial data back to Dayforce.
How does ml-connector handle the different authentication methods between Epicor Kinetic and Dayforce?
ml-connector stores Dayforce OAuth2 credentials and manages token refresh automatically before the one-hour expiry window. For Epicor Kinetic, it accepts the customer's chosen authentication method (Basic Auth, API Key, or OAuth2 for cloud, or Token Resource Service for on-premises) and maintains separate credentials per instance. Both credential sets are encrypted in storage and managed through the same secure credential pipeline.
Since neither Epicor Kinetic nor Dayforce has native outbound webhooks, how often does the sync run?
ml-connector polls both systems on a schedule that aligns with your payroll calendar. Epicor Kinetic queries use OData $filter on UpdatedOn date fields, while Dayforce queries use filterUpdateDateRangeMin and filterUpdateDateRangeMax parameters to retrieve only records changed since the last sync. The polling frequency is configurable and can be adjusted based on your payroll cycle and batch processing windows.

Related integrations

Connect Epicor Kinetic and Dayforce

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

Get started