ml-connector
Exact OnlineADP

Exact Online and ADP integration

Exact Online runs accounting and finance for your business. ADP runs payroll and HR. Connecting the two keeps your general ledger accurate with each payroll cycle and your workforce records aligned. When ADP processes a pay run, the resulting labor cost journals post automatically into Exact Online's GL, mapped to the correct cost centers. Worker hires, terminations, and role changes in ADP update Exact Online's employee records without re-keying. ml-connector bridges the gap between the two systems, handling their very different authentication schemes and data models.

How Exact Online works

Exact Online is a cloud ERP and accounting platform covering GL, accounts payable and receivable, sales orders, purchase orders, and inventory, with separate HR and payroll modules. It exposes accounts, invoices, orders, GL accounts, cost centers, items, employees, and journal entries through a REST API with OData v3 query syntax (filter, select, orderby, pagination). Authentication is OAuth 2.0 Authorization Code Grant with short-lived access tokens (10-minute lifetime) and rotating refresh tokens (30-day lifetime). The platform supports webhooks for entity changes across accounts, sales invoices, purchase orders, GL accounts, journal entries, and other resources, with HMAC-SHA256 signature validation. Exact Online requires a division ID on all calls, and permissions flow from the user's role within the division.

How ADP works

ADP provides payroll processing, HR management, and workforce analytics through ADP API Central, a paid add-on REST API. It exposes workers, payroll processing records, GL documents, pay distributions, pay statements, and validation tables including cost centers and job codes. Every API call requires OAuth 2.0 client credentials and a mutual TLS client certificate and private key presented at the TLS layer; the handshake fails without the certificate. ADP supports webhooks for worker lifecycle events (hire, terminate, rehire), payroll data changes, and legal document updates, retrying up to 20 times on failure. The platform enforces rate limits per node (75-195 calls per minute depending on tier) and uses OData pagination with max 100 records per request for Workforce Now.

What moves between them

The primary data flow moves from ADP to Exact Online. After each payroll run, ml-connector polls ADP for the generated GL documents and posts them into Exact Online's general ledger journal entries, with each line item allocated to the matching Exact Online cost center. Worker records, job codes, and cost center reference data flow from ADP to Exact Online to keep headcount and dimensions aligned. The sync runs on a schedule tied to your payroll calendar. Exact Online GL documents are read-only to the integration, and ADP payroll GL is generated by ADP, not written by the integration.

How ml-connector handles it

ml-connector stores both credential sets encrypted. For ADP, it presents the client certificate at the TLS layer on every request, uses the client credentials grant to obtain bearer tokens, and refreshes tokens transparently when calls return 401. For Exact Online, it accepts the division ID per customer and manages the 10-minute access token and 30-day rotating refresh token to avoid re-authorization. When ADP returns HTTP 429 rate limit errors, ml-connector backs off and retries with exponential jitter. Cost centers and job codes are mapped first, ensuring every payroll GL line references dimensions that already exist in Exact Online. The integration uses ADP webhooks where available for worker events (hire, terminate, rehire) and can supplement with polling on a schedule. Every record carries a full audit trail and is idempotent, so replay is safe if a downstream call fails.

A real-world example

A mid-sized services company runs Exact Online for accounting, AP, AR, and GL across three regional offices, and uses ADP Workforce Now for payroll across all locations. Before the integration, the finance team exported payroll GL registers from ADP at the end of each pay period, manually coded each line to the correct cost center and GL account in Exact Online, then re-entered the totals by hand. Reconciliation was error-prone and took days. With Exact Online and ADP connected, each payroll run's GL documents flow in automatically, routed to the correct regional cost center and GL account. The GL is accurate and balanced on day one, and the manual re-entry step disappears.

What you can do

  • Post ADP payroll GL documents into Exact Online's general ledger after every pay run, allocated to the correct cost centers.
  • Keep Exact Online employee records aligned with ADP hires, terminations, and rehires.
  • Map ADP cost centers and job codes to Exact Online GL dimensions so payroll lines land on valid accounts.
  • Authenticate ADP with OAuth2 and the required mutual TLS client certificate, and Exact Online with short-lived OAuth tokens.
  • Poll on a schedule tied to your payroll calendar, with retries and a full audit trail on every record.

Questions

Which direction does data move between Exact Online and ADP?
The primary flow is ADP to Exact Online. Payroll GL documents and worker records move from ADP into Exact Online, while cost centers and job codes are aligned in both directions. Exact Online's GL documents are read-only to the integration, so ml-connector does not write financial entries back into Exact Online outside the payroll journal post.
How does ml-connector handle ADP's mutual TLS certificate requirement?
ADP requires a client certificate at the TLS layer on every API call, in addition to OAuth2 credentials. ml-connector stores the certificate and private key encrypted, presents them on each request during the TLS handshake, and tracks the certificate expiry date so renewals can be issued before they cause an outage.
How does the integration handle Exact Online's short-lived tokens and multiple divisions?
Exact Online access tokens expire every 10 minutes and refresh tokens rotate on each refresh. ml-connector caches tokens and refreshes transparently before expiry. Since all Exact Online API calls require a division ID, ml-connector accepts the division ID per customer and includes it on every request.

Related integrations

Connect Exact Online and ADP

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

Get started