Microsoft Dynamics 365 Business Central and Paylocity integration
Microsoft Dynamics 365 Business Central runs finance and the general ledger. Paylocity runs payroll, HR, and benefits. Connecting the two keeps your workforce and your ledger in agreement without re-keying. After each Paylocity payroll run, the gross earnings, taxes, and deduction totals post into Business Central as general journal lines, and new hires, changes, and terminations in Paylocity line up with Business Central employee records. ml-connector handles the different APIs on each side and moves the data on the cadence your payroll calendar sets.
What moves between them
The main flow runs from Paylocity into Microsoft Dynamics 365 Business Central. After each payroll run, ml-connector reads the Paylocity pay statement totals and posts the earnings, tax, and deduction amounts as general journal lines into Business Central, mapped to the matching GL accounts and dimensions. Employee records flow the same direction so Business Central headcount reflects Paylocity hires, terminations, and changes. Reference data such as departments and pay codes is aligned so each payroll line lands on a valid account and dimension. Pay statements are read only in Paylocity, so ml-connector never writes financial entries back into payroll.
How ml-connector handles it
ml-connector stores both credential sets encrypted and mints a fresh token for each side, refreshing the one-hour Paylocity token before it expires and the Entra ID token for Business Central when a call returns 401. It listens for the Paylocity Payroll Processed webhook, then uses the companyId and processId from that lightweight payload to pull the full pay statement totals, since the webhook itself carries identifiers only. Because Business Central GL accounts are read only, payroll totals are written through general journal lines rather than against the chart of accounts directly. Departments and pay codes are mapped first, so every journal line references a GL account and dimension that already exist in Business Central. Paylocity sends no HMAC signature, so the callback endpoint is secured with TLS and the optional Basic auth Paylocity supports, and a scheduled poll using lastModifiedDateTime backfills employees a webhook missed. Paylocity rate limits return HTTP 429, so ml-connector backs off and retries, tracks the annual client secret rotation, and keeps a full audit trail with replay on every record.
A real-world example
A mid-market professional services firm of about four hundred employees runs Microsoft Dynamics 365 Business Central for finance and the general ledger and uses Paylocity for payroll and HR across several locations. Before the integration, the accounting team exported a payroll register from Paylocity every pay period and keyed the labor, tax, and deduction totals into Business Central by hand, then chased differences between HR headcount and the payroll accounts during month-end close. With the two systems connected, each payroll run posts into Business Central automatically, allocated to the dimension for each location, and employee changes keep the two systems aligned. Close starts with the payroll accounts already reconciled and the manual re-keying gone.
What you can do
- Post Paylocity payroll earnings, tax, and deduction totals into Business Central general journals after every pay run.
- Keep Microsoft Dynamics 365 Business Central employee records aligned with Paylocity new hires, changes, and terminations.
- Map Paylocity departments and pay codes to Business Central GL accounts and dimensions so payroll lands on valid accounts.
- Authenticate Paylocity with its one-hour OAuth token and Business Central with Entra ID client credentials, refreshing each before expiry.
- Trigger on the Paylocity Payroll Processed webhook, with scheduled polling, retries, and a full audit trail as backup.
Questions
- Which direction does data move between Microsoft Dynamics 365 Business Central and Paylocity?
- The main flow is Paylocity into Business Central. Payroll totals and employee records move from Paylocity into Business Central, while departments and pay codes are aligned so postings land on valid accounts. Paylocity pay statements are read only, so ml-connector does not write financial entries back into payroll.
- How does the integration post payroll if Paylocity has no GL accounts and Business Central accounts are read only?
- Paylocity is an HCM and payroll system with no chart of accounts, and the Business Central GL accounts endpoint is read only. ml-connector pulls the pay statement totals from Paylocity, maps the earnings, tax, and deduction codes to GL accounts, and writes them as general journal lines in Business Central, which is the writable posting path.
- How does the integration handle Paylocity webhooks that carry only identifiers?
- Paylocity webhooks such as Payroll Processed and New Hire are lightweight and send only identifiers, with no full record data and no HMAC signature. ml-connector uses the companyId and processId or employeeId from the payload to fetch the full record from the API, secures the callback with TLS and optional Basic auth, and runs a scheduled poll to backfill anything a webhook missed.
Related integrations
More Microsoft Dynamics 365 Business Central integrations
Other systems that connect to Paylocity
Connect Microsoft Dynamics 365 Business Central and Paylocity
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started