ml-connector
QADADP

QAD and ADP integration

QAD runs manufacturing and finance. ADP runs payroll and HR. Connecting the two keeps your workforce and your general ledger in agreement. New hires and terminations in ADP line up with QAD departments and cost centers, and the labor cost journals ADP produces after each payroll run post into QAD's general ledger without re-keying. ml-connector handles the very different APIs on each side and moves the data on a schedule you control.

How QAD works

QAD Adaptive ERP exposes suppliers, purchase orders, supplier invoices, GL accounts, cost centers, items, and goods receipts through REST business document APIs, documented in Swagger inside each customer instance. The cloud product authenticates with a JWT session or OAuth2 bearer token against a tenant-specific URL, so there is no shared hostname. Older on-premise sites run QAD Enterprise Edition with the QXtend SOAP framework instead. QAD has no public webhook system for cloud connectors, so finance records are read by polling.

How ADP works

ADP exposes workers, payroll input, pay distributions, cost center validation tables, and general ledger documents through ADP API Central, a paid REST add-on that also supports OData query parameters. Every call requires OAuth2 client credentials and a mutual TLS client certificate, and the TLS handshake fails without the certificate. Writes to ADP go through event endpoints rather than direct field updates, and the GL documents ADP generates after payroll are read-only. ADP can also push worker and payroll events to a registered endpoint.

What moves between them

The main flow runs from ADP into QAD. After each payroll run, ml-connector reads ADP's general ledger documents and posts the labor cost journals into QAD's general ledger, mapped to the matching QAD GL accounts and cost centers. Worker records flow the same direction so QAD headcount reflects ADP hires, terminations, and rehires. Reference data such as cost centers, departments, and job codes is aligned in both directions so payroll allocations land on valid QAD dimensions. GL postings are read-only in ADP, so ml-connector never writes financial entries back to payroll.

How ml-connector handles it

ml-connector stores both credential sets encrypted and presents the ADP client certificate at the TLS layer on every request, refreshing the ADP bearer token when a call returns 401. On the QAD side it accepts the full tenant URL per customer, since QAD publishes no shared base URL, and validates entity paths against that instance. Because QAD cloud is pull-only, it polls ADP general ledger documents and worker data on a schedule tied to your payroll calendar rather than waiting for a push, and it can also receive ADP event notifications where they are enabled. Cost centers and departments are mapped first, so every payroll journal line references a GL account and cost center that already exists in QAD. ADP rate limits return HTTP 429 per gateway node, so ml-connector backs off and retries, and it tracks the ADP certificate expiry so a renewal does not turn into an outage. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized discrete manufacturer runs QAD Adaptive ERP for production, procurement, and finance, and uses ADP Workforce Now for payroll across two plants and a head office. Before the integration, the finance team exported payroll registers from ADP every pay period and re-entered the labor totals into QAD by hand, then spent the first days of month-end close chasing differences between HR headcount and the labor accounts in the ledger. With QAD and ADP connected, each payroll run's GL document flows into QAD automatically, allocated to the cost center for each plant, and worker changes keep the two systems aligned. Month-end close starts with the labor accounts already reconciled, and the manual re-keying step is gone.

What you can do

  • Post ADP payroll GL documents into QAD's general ledger after every pay run, allocated to the correct cost centers.
  • Keep QAD headcount aligned with ADP hires, terminations, and rehires.
  • Map ADP cost centers, departments, and job codes to QAD GL dimensions so payroll lands on valid accounts.
  • Authenticate ADP with OAuth2 and the required mutual TLS certificate, and QAD with its tenant-specific token.
  • 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 QAD and ADP?
The main flow is ADP into QAD. Payroll GL documents and worker records move from ADP into QAD, while cost centers and departments are aligned in both directions. ADP general ledger documents are read-only, so ml-connector does not write financial entries back into payroll.
Does ADP's mutual TLS certificate requirement need special setup?
Yes. ADP requires a client certificate at the TLS layer on every call in addition to OAuth2 credentials. ml-connector stores the certificate encrypted, presents it on each request, and tracks its expiry so a renewal is handled before it can cause an outage.
How does the integration handle QAD's tenant-specific URL and lack of webhooks?
ml-connector accepts the full QAD instance URL per customer, since QAD publishes no shared base address. Because QAD cloud is pull-only, it polls QAD and ADP on a schedule tied to your payroll calendar rather than relying on a push from QAD.

Related integrations

Connect QAD and ADP

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

Get started