MYOB and ADP integration
MYOB runs accounting and finance for small and mid-sized businesses across Australia and New Zealand. 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 MYOB cost centers and GL accounts, and the labor cost journals ADP produces after each payroll run post into MYOB'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.
What moves between them
The main flow runs from ADP into MYOB. After each payroll run, ml-connector polls ADP for general ledger documents and posts the labor cost journals into MYOB's general ledger, mapped to the matching MYOB GL accounts and cost centers. Worker records flow the same direction so MYOB headcount reflects ADP hires, terminations, and rehires. Reference data such as cost centers and departments is aligned in both directions to ensure payroll allocations land on valid MYOB 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 connection. For MYOB it handles the three-header OAuth2 plus company file credentials dance on each request, refreshing the Bearer token when expiry approaches and re-supplying the Base64 company file credentials. MYOB token refresh windows are tight (20 minutes), so ml-connector pre-checks expiry before every call. Because both systems support polling, ml-connector polls ADP for payroll GL documents and worker events on a schedule tied to your payroll calendar, starting with cost centers and departments so every GL line references a valid MYOB account and cost center. ADP returns HTTP 429 when the per-node rate limit is exceeded (75-195 calls per minute depending on tier), so ml-connector backs off and retries. MYOB returns HTTP 429 at 8 requests per second, and it also returns 409 Conflict if a RowVersion field on a record is stale, so every PATCH must pre-fetch the current RowVersion. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A growing services business in Melbourne runs MYOB for accounting and financial reporting and uses ADP Workforce Now for payroll across three office locations and a mix of full-time employees and contractors. Before the integration, the finance team exported the payroll GL register from ADP every pay period and re-entered labor totals and cost center allocations into MYOB by hand, spending two days in month-end chase reviewing the payroll accounts against ADP and the employee register. With MYOB and ADP connected, each payroll run's GL document flows into MYOB automatically, broken down by cost center for each location, and worker changes keep headcount in sync. The finance team now opens the payroll ledger on pay day and sees all entries posted and balanced against the employee roster.
What you can do
- Post ADP payroll GL documents into MYOB's general ledger after every pay run, allocated to the correct cost centers.
- Keep MYOB headcount aligned with ADP hires, terminations, and rehires.
- Map ADP cost centers and departments to MYOB GL dimensions so payroll allocations land on valid accounts.
- Authenticate ADP with OAuth2 and mutual TLS certificate, and MYOB with OAuth2 plus company file username and password.
- Poll on a schedule tied to your payroll calendar, with retries for rate limits and stale records, and a full audit trail on every entry.
Questions
- Which direction does data move between MYOB and ADP?
- The main flow is ADP into MYOB. Payroll GL documents and worker records move from ADP into MYOB, 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.
- How does ml-connector handle MYOB's three-header authentication requirement?
- MYOB requires OAuth2 Bearer token, x-myobapi-key header, and x-myobapi-cftoken header with Base64 company file credentials on every call. ml-connector manages the OAuth2 token refresh cycle (20-minute expiry), refreshes the Base64 company file credentials, and supplies all three headers on each request.
- How does ml-connector manage the rate limits for both systems?
- MYOB enforces 8 requests per second and 1 million requests per day; ADP enforces 75-195 calls per minute per node in its 4-node cluster. ml-connector tracks usage, backs off on HTTP 429 responses, and retries using exponential backoff with jitter. MYOB also returns 409 Conflict on stale RowVersion, so ml-connector pre-fetches the current RowVersion before every PATCH.
Related integrations
More MYOB integrations
Other systems that connect to ADP
Connect MYOB and ADP
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started