Oracle JD Edwards and UKG integration
Oracle JD Edwards runs your financials and procurement. UKG runs your payroll and HR. Connecting the two keeps your employee records aligned and your general ledger current without re-keying. When UKG completes a pay run, ml-connector reads the payroll GL export and posts labor cost journals into Oracle JD Edwards, allocated to the correct GL accounts and cost centers. Employee hires, terminations, and demographic changes in UKG sync into JD Edwards address book so headcount records match between systems.
What moves between them
The main flow is UKG into Oracle JD Edwards. After each pay run, ml-connector reads UKG payroll GL export from the thirdpartypay endpoint and posts labor cost journals into JD Edwards GL ledger (table F0911Z1 batch entries), mapped to matching GL accounts and cost centers. Employee master records flow from UKG into JD Edwards address book (table F0101) so new hires, terminations, and demographic updates in UKG keep JD Edwards headcount current. Cost centers and departments are aligned in both directions so payroll GL lines reference valid JD Edwards GL accounts and cost centers before posting. GL postings are read-only in UKG, so ml-connector never writes financial entries back to payroll.
How ml-connector handles it
ml-connector stores both credential sets encrypted: the customer AIS Server hostname and JD Edwards service account password for token refresh, and the UKG customer API key and OAuth client credentials. On the JD Edwards side, it requests a fresh session token every time because the default 30-60 minute lifetime is unpredictable, and it detects HTTP 444 (token expired) and re-authenticates immediately. On the UKG side, it caches the OAuth token for the full 1-hour lifetime and refreshes only at expiry or on 401 response. Because JD Edwards has no webhooks, ml-connector polls both UKG and JD Edwards on a schedule tied to your payroll calendar, using UKG's thirdpartypay export endpoint and JD Edwards data service queries filtered by UPMJ (date updated). Cost centers and GL accounts are mapped first via a configuration step so every payroll journal line references an account that exists in JD Edwards. When UKG webhooks are enabled, ml-connector can subscribe to employee. events for near-real-time hiring and terminations, with secondary polling as a fallback because UKG retains events for only 14 days. Every record carries a full audit trail and can be replayed if a downstream GL posting fails.
A real-world example
A mid-sized logistics company runs Oracle JD Edwards for procurement, inventory, and financial accounting across four distribution centers, and uses UKG for payroll and time tracking across the same footprint. Before the integration, the finance team exported payroll GL summaries from UKG each pay period and manually posted labor costs into JD Edwards GL by distribution center, spending hours allocating payroll to the correct GL accounts and cost centers, and then validating that employee headcount matched between systems during month-end close. With Oracle JD Edwards and UKG connected, each payroll run's GL export posts directly into JD Edwards GL, automatically allocated to the correct cost center for each location, and employee hires and terminations sync into JD Edwards address book. Month-end close now starts with labor accounts already reconciled and headcount already aligned.
What you can do
- Post UKG payroll GL journals into Oracle JD Edwards general ledger after each pay run, allocated to the correct GL accounts and cost centers.
- Keep Oracle JD Edwards employee records synced with UKG hires, terminations, and demographic changes.
- Map UKG cost centers to Oracle JD Edwards GL accounts so payroll costs land on valid ledger lines.
- Handle Oracle JD Edwards session tokens that expire every 30-60 minutes and UKG OAuth tokens with 1-hour expiry, refreshing transparently on each request.
- Poll Oracle JD Edwards and UKG on a schedule tied to your payroll calendar, with retries and a full audit trail on every record.
Questions
- How does ml-connector handle Oracle JD Edwards session tokens that expire every 30-60 minutes?
- ml-connector requests a fresh session token on each API call to avoid token expiry surprises, and it detects the HTTP 444 response (token expired) and immediately re-authenticates if a token expires mid-request. This eliminates the need for ml-connector to guess the remaining lifetime and request a new token speculatively.
- Why does ml-connector poll instead of relying on Oracle JD Edwards webhooks?
- Oracle JD Edwards has no native outbound webhook capability, so data must be fetched by polling. ml-connector polls both systems on a schedule you define, tied to your payroll calendar, using JD Edwards data service queries filtered by date updated (UPMJ field) and UKG delta polling endpoints to fetch only changed records since the last sync.
- How are payroll GL lines matched to the correct GL accounts and cost centers in Oracle JD Edwards?
- ml-connector requires a mapping configuration step before the first sync that aligns UKG cost centers to Oracle JD Edwards GL accounts and cost centers. Every payroll GL line is then validated against this mapping before posting, ensuring the GL posting references valid JD Edwards accounts and cost centers.
Related integrations
More Oracle JD Edwards integrations
Other systems that connect to UKG
Connect Oracle JD Edwards and UKG
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started