MYOB and Paychex integration
MYOB runs accounting and finance for SMEs across Australia and New Zealand. Paychex runs payroll and HR. Connecting the two keeps your employee records and payroll dimensions aligned between systems. Paychex worker changes sync into MYOB employee records, job codes and cost centers flow both ways so payroll reports land on valid MYOB dimensions, and every change carries a full audit trail.
What moves between them
Paychex worker and job data flows into MYOB. When Paychex issues a webhook notification of a hire, termination, or employment change, ml-connector fetches the full worker and job record from Paychex, maps the job code and organization to MYOB employee category and cost center, and writes or updates the contact record in MYOB. Job codes and cost centers are synchronized in both directions so payroll reports and journals allocate to valid MYOB GL dimensions. MYOB employee records are always the source of truth for downstream payroll processing.
How ml-connector handles it
ml-connector subscribes to Paychex webhooks (WRKR_DEM, WRKR_EMPL, WRKR_ADD) and stores both OAuth2 credential sets encrypted. On webhook notification, it calls Paychex to fetch the full worker record, since webhook payloads contain only notification metadata. It maps Paychex job codes and organizations to MYOB employee categories and cost centers using a configured lookup table, then calls MYOB to create or update the contact record as an Employee type. Because MYOB requires company file credentials on every call, ml-connector supplies them in the x-myobapi-cftoken header alongside the OAuth2 bearer token. MYOB rate limits are 8 requests per second, so ml-connector batches writes and retries with exponential backoff on 429 responses. Every record carries a job ID for deduplication and a full audit trail, so if a downstream sync fails the operation can be replayed without duplicating the employee record.
A real-world example
A mid-sized professional services firm in Sydney runs MYOB Business for accounting and MYOB Payroll for payroll processing. When new contractors or permanent hires join, HR creates them in Paychex, but the finance team had to manually enter the new employee into MYOB and assign them to the correct cost center for billing and reporting. With Paychex and MYOB connected, each new hire in Paychex triggers an automatic sync into MYOB with the correct cost center and job code, so payroll journals and billing reports are accurate from day one. Terminations and job changes sync the same way, keeping the two systems aligned without manual re-keying.
What you can do
- Sync Paychex worker hires, terminations, and employment changes into MYOB employee contact records with correct cost center and job code mapping.
- Keep MYOB GL categories and cost centers aligned with Paychex job codes and organizations so payroll and billing reports land on valid dimensions.
- Bridge Paychex OAuth2 webhooks with MYOB OAuth2 plus company file authentication on every API call.
- Deduplicate worker changes using job IDs and track every record in a full audit trail so failed syncs can be replayed without duplicates.
- Poll MYOB for job code and cost center reference data and cache it to validate Paychex payroll allocations before writing to MYOB.
Questions
- How does ml-connector handle Paychex webhooks that contain only metadata?
- Paychex webhook payloads do not include changed data, only a notification of a worker or employment event. ml-connector receives the webhook, extracts the worker ID, calls Paychex to fetch the full worker and job record, then uses that data to create or update the contact in MYOB. This two-step process ensures complete and current information is always written.
- Does the integration require any special setup for MYOB company file authentication?
- Yes. Every MYOB API call requires three headers: the OAuth2 Authorization Bearer token, an API Key (x-myobapi-key), and the company file credentials encoded in x-myobapi-cftoken. ml-connector stores all credentials encrypted and supplies them on every request. Access tokens expire in 20 minutes, so ml-connector refreshes them proactively before expiry.
- What happens if a job code or cost center in Paychex does not exist in MYOB?
- ml-connector caches MYOB job codes and cost centers at startup and validates all Paychex payroll dimensions against them before writing an employee record. If a mapping is missing, ml-connector flags the record in the audit trail and holds it for manual review rather than writing an invalid dimension to MYOB, preventing invalid GL allocations.
Related integrations
More MYOB integrations
Other systems that connect to Paychex
Connect MYOB and Paychex
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started