Sage 100 and Dayforce integration
Sage 100 handles finance, purchasing, and inventory for small to mid-sized manufacturers and distributors. Dayforce runs HR and payroll in the cloud. Connecting the two eliminates the month-end pain of manually posting payroll journal entries into Sage 100, keeps employee counts aligned, and ensures that labor costs land on the correct GL accounts and cost centers. Every payroll run's general ledger impact flows into Sage 100 automatically, with a complete audit trail for every entry.
What moves between them
Payroll cost allocation data flows from Dayforce into Sage 100. After each payroll cycle, ml-connector fetches employee pay summaries and cost allocation records from Dayforce, maps them to Sage 100 GL accounts and cost centers based on the customer's configuration, and posts the resulting labor cost journal entries into Sage 100's general ledger. Reference data such as employees and organization units is also synced so headcount in Sage 100 stays aligned with Dayforce changes. GL postings flow one direction only; ml-connector does not write payroll data back into Dayforce.
How ml-connector handles it
ml-connector runs a local Windows agent on the customer's Sage 100 server that maintains encrypted credentials and wraps the BOI COM layer to fetch GL accounts, vendors, and journal entry templates. It stores the Dayforce OAuth credentials encrypted and refreshes the Bearer JWT token one hour before expiry to avoid repeated 401 responses. The agent polls Sage 100 for GL accounts on a daily schedule and Dayforce employee records on a schedule matching the customer's payroll cycle, using filterUpdateDateRangeMin and filterUpdateDateRangeMax to fetch only changed records. A mapping table configured per customer translates Dayforce cost centers and job codes to Sage 100 GL segments and cost centers. When a payroll run completes, ml-connector reads the cost allocation detail, constructs a multi-line journal entry with all GL segments populated, and posts it into Sage 100 via the BOI layer, checking for idempotency using Sage 100's DateLastModified field and retrying with backoff on COM record-locking conflicts. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A regional distributor with three warehouses runs Sage 100 on-premises for AP, GL, and inventory. They use Dayforce for payroll across all locations. Before the integration, the finance team exported employee rosters and payroll cost allocations from Dayforce every two weeks, manually allocated labor costs by warehouse and department, and re-entered the journal entries into Sage 100 by hand. Reconciling payroll labor costs against the GL took three to four days of month-end close, and differences between Dayforce headcount and Sage 100 manual entries triggered restatements. With Sage 100 and Dayforce connected, each payroll cycle's cost allocation automatically posts into Sage 100 by warehouse and department, the labor accounts are reconciled on the payroll run date, and the restatement cycle is eliminated.
What you can do
- Post Dayforce payroll cost allocations into Sage 100's GL automatically after every payroll cycle, allocated to the correct cost centers and GL accounts.
- Keep Sage 100 employee and organization unit records aligned with Dayforce hires, terminations, and org changes.
- Map Dayforce pay codes and cost centers to Sage 100's multi-segment GL account format and cost center fields.
- Authenticate to Sage 100 via the local Windows agent and BOI COM layer, and to Dayforce via OAuth2 tokens with automatic refresh before expiry.
- Poll on a schedule tied to the payroll calendar, with retries and a full audit trail on every journal entry and record change.
Questions
- Does ml-connector run in the cloud or on premises?
- ml-connector runs a local Windows agent on the customer's Sage 100 server to access the BOI COM layer directly. The control plane is cloud-hosted but the agent that wraps Sage 100 runs on premises. Dayforce communication happens from the cloud-hosted control plane over HTTPS.
- Which direction does payroll data flow between Sage 100 and Dayforce?
- Payroll cost allocation data flows from Dayforce into Sage 100. Employee records and organization units are also synced from Dayforce to keep Sage 100 headcount aligned. GL journal entries are read-only in Dayforce, so ml-connector does not write financial entries back into payroll.
- How does ml-connector handle Sage 100's lack of webhooks and the two different authentication models?
- Sage 100 has no webhooks or push events, so ml-connector polls the BOI COM layer on a daily schedule for GL accounts and on a payroll-cycle schedule for vendor and cost center changes. ml-connector stores both credential sets encrypted: it uses username and password for Sage 100 SOAP calls via the local agent, and OAuth2 for Dayforce, refreshing the JWT token one hour before expiry to avoid 401 errors.
Related integrations
More Sage 100 integrations
Other systems that connect to Dayforce
Connect Sage 100 and Dayforce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started