ml-connector
Exact OnlineDayforce

Exact Online and Dayforce integration

Exact Online runs your accounting and ERP. Dayforce runs your HR and payroll. Connecting them keeps your GL and your payroll in agreement. Employees and cost allocations flow from Dayforce into Exact Online, and after each payroll run, the labor cost journals Dayforce generates post into your GL without manual re-keying. ml-connector handles the different regional base URLs Exact Online uses per country, refreshes both OAuth tokens, and keeps payroll allocation lines mapped to the right GL accounts and cost centers.

How Exact Online works

Exact Online is a cloud ERP covering accounting, purchasing, sales, and inventory through an OData-flavored REST API. The API uses region-specific base URLs (Netherlands, Belgium, UK, Germany, France, Spain, USA) and requires a division ID appended to every call. Authentication uses OAuth 2.0 Authorization Code Grant with a 10-minute access token lifetime and a rotating 30-day refresh token. Key entities include GL accounts, cost centers, journal entries, transaction lines, suppliers, customers, and purchase and sales documents. Exact Online supports webhooks for a significant set of resources with HMAC-SHA256 signature verification and up to 10 retries. However, webhook payloads contain only the entity key and action type, so full entity data must be fetched separately via REST.

How Dayforce works

Dayforce is a cloud HCM platform covering HR, payroll, workforce management, benefits, and talent management. It exposes employees, org units, jobs, positions, and payroll summaries through a REST API at a client-specific base URL that must be refreshed daily. Authentication uses OAuth 2.0 Resource Owner Password Credentials with one-hour Bearer JWT tokens that expire and must be refreshed before they expire. Dayforce has no native accounts payable or GL accounts endpoint, but GL account codes are configured inside the platform and appear in payroll reports. The platform is poll-only; it offers no native outbound webhooks but supports internal scheduled syncs within Dayforce Integration Studio. Scopes are role-based and set inside the Dayforce admin console, not via OAuth parameters.

What moves between them

Employees, job codes, and cost allocations flow from Dayforce into Exact Online after each payroll run. Payroll GL entries that Dayforce generates are read by ml-connector and posted into Exact Online's journal as balanced transaction lines, allocated to the cost centers and GL accounts mapped from Dayforce. No data moves back into Dayforce; the direction is unidirectional from payroll into accounting.

How ml-connector handles it

ml-connector stores both OAuth credential sets encrypted and refreshes the Exact Online access token every 10 minutes and the Dayforce JWT every 55 minutes, before either expires. Since Exact Online requires a region-specific base URL and a division ID, ml-connector accepts the region and division per customer, fetches the current division metadata on first sync, and caches it with a daily refresh. Dayforce's client-specific URL is also refreshed daily. On the Dayforce side, ml-connector queries the employee and org unit endpoints with filterUpdateDateRangeMin and filterUpdateDateRangeMax to poll only changed records per cycle, reducing query volume. Cost allocations and GL account mappings are configured first so every payroll journal line references an existing GL account and cost center in Exact Online. If Exact Online returns a 401 for an expired token or a 404 for a missing GL account, ml-connector backs off, refreshes, and retries the journal posting.

A real-world example

A mid-sized services firm operates out of three offices in the UK and Germany, uses Exact Online for accounting and project costing, and runs Dayforce for payroll across both offices. Before this integration, the finance team exported payroll summaries from Dayforce each pay period, manually mapped costs to Exact Online cost centers by office, and keyed payroll GL entries by hand, then spent days at month-end close reconciling headcount between Dayforce and the labor accounts in the ledger. With Exact Online and Dayforce connected, each payroll run's GL entries flow into Exact Online automatically, allocated to the cost center for each office, and employee records keep the two systems aligned. Month-end close starts with payroll accounts already reconciled, and the manual mapping and entry step is eliminated.

What you can do

  • Post Dayforce payroll GL entries into Exact Online's journal after each pay run, allocated to the correct cost centers.
  • Keep Exact Online headcount aligned with Dayforce employees, transfers, and terminations.
  • Map Dayforce cost allocations and job codes to Exact Online GL accounts and cost centers so payroll lands on valid accounting dimensions.
  • Authenticate Exact Online with OAuth 2.0 and its region-specific base URL and division ID, and Dayforce with OAuth 2.0 Resource Owner Password Credentials.
  • Poll Dayforce on your payroll cycle with refreshed tokens, mapped allocations, and full audit on every GL entry.

Questions

Which direction does data move between Exact Online and Dayforce?
Data flows unidirectionally from Dayforce into Exact Online. Employees, job codes, and payroll GL entries move from Dayforce into Exact Online and are mapped to the matching GL accounts and cost centers. No data moves back into Dayforce; Exact Online is the system of record for accounting, and Dayforce remains the system of record for payroll.
How does the integration handle Exact Online's region-specific URLs and division IDs?
ml-connector accepts the region (Netherlands, Belgium, UK, Germany, France, Spain, USA) and the division ID per customer setup. On first sync, it fetches the division metadata and caches it with a daily refresh. The region determines the base URL for all API calls, and the division ID is appended to every REST endpoint call per Exact Online's requirement.
How does ml-connector keep both OAuth tokens current given their short lifespans?
Exact Online's access token expires in 10 minutes, and Dayforce's JWT expires in 1 hour. ml-connector refreshes the Exact Online token every 10 minutes (before it expires) and the Dayforce token every 55 minutes (5 minutes before expiry). If a call returns 401, ml-connector refreshes immediately and retries the operation, so a token expiry does not cause a sync to fail.

Related integrations

Connect Exact Online and Dayforce

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

Get started