Acumatica and ADP integration
Acumatica runs finance, distribution, and operations. ADP runs payroll and HR. Connecting the two keeps your general ledger and your workforce in agreement without re-keying. After each payroll run, the GL document ADP produces posts into Acumatica as a balanced journal transaction, allocated to the right accounts and subaccounts. New hires and terminations in ADP keep the Acumatica employee list current, and ml-connector handles the very different authentication and data shapes on each side.
What moves between them
The main flow runs from ADP into Acumatica. After each payroll run, ml-connector reads ADP's general ledger documents and posts the labor cost entries into Acumatica as journal transactions, mapped to the matching GL accounts and subaccounts. Worker records flow the same direction so the Acumatica employee list reflects ADP hires, terminations, and rehires. Cost centers and departments are aligned so payroll allocations land on valid Acumatica subaccounts. ADP GL documents are read-only, so ml-connector never writes financial entries back into 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, re-calling the ADP token endpoint when a call returns 401. On the Acumatica side it accepts the full instance URL and the exact endpoint version per customer, since a version mismatch returns 404, and it wraps every field value in the required value object so writes do not fail with a 400. ADP GL documents read after each run become balanced journal transactions in Acumatica, with cost centers mapped to subaccounts first so every line references a dimension that already exists. Because Acumatica cloud is reliably polled, it reads ADP GL documents and worker data on a schedule tied to your payroll calendar, and can also receive ADP event notifications where enabled. Both sides return HTTP 429 under load, so ml-connector backs off with jitter, and it tracks the ADP certificate expiry so a renewal does not become an outage.
A real-world example
A mid-sized distribution company with around 300 employees runs Acumatica Cloud ERP for inventory, purchasing, and finance, and uses ADP Workforce Now for payroll across a warehouse and two branch offices. Before the integration, accounting exported the payroll register from ADP every pay period and typed the labor totals into Acumatica by hand, then spent the first days of month-end close reconciling headcount against the labor accounts in the ledger. With Acumatica and ADP connected, each payroll run's GL document posts into Acumatica automatically, allocated to the subaccount for each location, and worker changes keep both systems aligned. Close starts with the labor accounts already reconciled, and the manual re-keying is gone.
What you can do
- Post ADP payroll general ledger documents into Acumatica as balanced journal transactions after every pay run.
- Keep the Acumatica employee list aligned with ADP hires, terminations, and rehires.
- Map ADP cost centers and departments to Acumatica accounts and subaccounts so payroll lands on valid dimensions.
- Authenticate ADP with OAuth2 and its required mutual TLS certificate, and Acumatica with its version-locked tenant login.
- Poll on a schedule tied to your payroll calendar, with retries, error replay, and a full audit trail on every record.
Questions
- Which direction does data move between Acumatica and ADP?
- The main flow is ADP into Acumatica. Payroll GL documents and worker records move from ADP into Acumatica, while cost centers and departments are aligned so allocations match. ADP general ledger documents are read-only, so ml-connector does not write financial entries back into payroll.
- Does ADP's mutual TLS certificate need special setup?
- Yes. ADP requires a client certificate at the TLS layer on every call, in addition to OAuth2 client credentials, and the handshake fails without it. 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 Acumatica's version-locked URL and field wrapping?
- ml-connector accepts the full Acumatica instance URL and the exact endpoint version per customer, since a version mismatch returns a 404. It also wraps every field value in the value object Acumatica requires, so journal transactions post without a 400 error. Because Acumatica cloud is reliably polled, reads run on a schedule tied to your payroll calendar.
Related integrations
More Acumatica integrations
Other systems that connect to ADP
Connect Acumatica and ADP
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started