SAP Business One and UKG integration
SAP Business One runs financials and operations for small-to-midsize businesses. UKG runs payroll and HR for your workforce. Connecting the two keeps your labor costs in the general ledger aligned with your headcount in HR. Payroll GL journals flow from UKG into SAP Business One's ledger after each pay run, mapped to the cost centers where your employees work. Employee hire, termination, and compensation changes in UKG sync to SAP Business One so your operations data reflects the real workforce.
What moves between them
The integration flows primarily from UKG into SAP Business One on your payroll schedule. After each payroll run, ml-connector reads UKG's payroll GL export (containing labor cost journals with GL account codes and debit/credit amounts) and posts these journals into SAP Business One's chart of accounts and profit centers. Employee records (hire, termination, demographic updates) flow the same direction so SAP Business One headcount reflects UKG workforce changes. Cost centers and GL accounts are validated in both directions, ensuring payroll postings land on existing SAP Business One dimensions. GL postings are read-only in UKG, so no financial entries are written back to the payroll system.
How ml-connector handles it
ml-connector polls UKG's payroll GL export and employee endpoints on a schedule tied to your payroll calendar, refreshing the OAuth 2.0 token when the 1-hour lifetime expires. On the SAP Business One side, it maintains a persistent session to avoid the cold-start cost of repeated authentication (reusing the B1SESSION cookie and refreshing when the 30-minute inactivity timeout is reached). Before posting any payroll GL journal, it validates that the target SAP Business One cost center and GL account exist, and maps the UKG cost center codes to their SAP Business One equivalents. If a journal post fails due to a transient error (network, rate limiting), ml-connector retries with exponential backoff. Because SAP Business One is on-premise and behind a firewall, push notifications are not relied upon; instead, the polling cadence is aligned to your payroll processing window. Every journal entry and employee change carries an audit trail so reconciliation is traceable and replay is possible if a downstream system step fails.
A real-world example
A regional manufacturing company runs SAP Business One on-premise for production scheduling, purchasing, and finance across three plants in different states. The company uses UKG for centralized payroll and HR covering all plants and the head office. Before the integration, the accounting team pulled payroll journals from UKG every pay period and manually re-entered labor totals into SAP Business One, then spent days reconciling differences between UKG employee counts and actual SAP Business One labor costs. With the integration, each payroll run posts its GL journal automatically into SAP Business One, allocated by plant location, and employee changes keep the two systems in sync. Month-end close starts with labor costs already reconciled and the manual re-keying step eliminated.
What you can do
- Post UKG payroll GL journals into SAP Business One's general ledger on your payroll schedule, allocated to the correct cost centers and GL accounts.
- Keep SAP Business One headcount and employee records synchronized with UKG hires, terminations, and compensation changes.
- Validate UKG cost centers and GL account codes against SAP Business One before posting payroll journals to prevent posting to invalid accounts.
- Manage UKG OAuth token refresh (1-hour expiry) and SAP Business One session reuse (30-minute inactivity timeout) to minimize authentication overhead.
- Maintain a complete audit trail on every journal entry and employee change, with replay capability if a posting fails.
Questions
- Which direction does data move between SAP Business One and UKG?
- The main flow is from UKG into SAP Business One. Payroll GL journals and employee records move from UKG into SAP Business One, while cost centers are validated bidirectionally to ensure payroll postings land on valid SAP Business One accounts. GL postings are read-only in UKG, so ml-connector does not write financial entries back to the payroll system.
- How does ml-connector handle SAP Business One's on-premise deployment and 30-minute session timeout?
- Because SAP Business One is on-premise and accessed through a customer-specific Service Layer URL, ml-connector accepts the full endpoint URL from the customer. It reuses a persistent B1SESSION cookie across multiple requests to avoid repeated authentication overhead, and refreshes the session when the 30-minute inactivity timeout approaches. For UKG, it manages the 1-hour OAuth token lifetime and refreshes proactively to avoid failed API calls.
- What happens if a payroll GL journal post to SAP Business One fails?
- ml-connector validates the target cost center and GL account exist before attempting to post, and retries transient failures with exponential backoff. Every journal entry is logged with a full audit trail, and failed postings can be replayed once the underlying cause (invalid account, network error, or cost center mismatch) is resolved.
Related integrations
More SAP Business One integrations
Other systems that connect to UKG
Connect SAP Business One and UKG
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started