ml-connector
MYOBSAP SuccessFactors

MYOB and SAP SuccessFactors integration

MYOB is an Australian/New Zealand accounting software used by SMEs for GL, AP, and AR. SAP SuccessFactors is a cloud HR system where employees, jobs, org structure, and cost centers live. Connecting the two keeps payroll and organizational data aligned. Employee records from SuccessFactors sync into MYOB so headcount is current, and cost centers are mapped so payroll can be allocated to the right GL accounts without re-keying. ml-connector bridges the authentication differences on each side and moves the data on a schedule you define.

How MYOB works

MYOB Adaptive for cloud and desktop exposes contacts, purchase and sales documents, GL accounts, journals, and inventory through the MYOB Business API (AccountRight Live API v2) with REST transport and OData v3 query parameters. Authentication requires OAuth2 Authorization Code flow plus company file username and password supplied in headers on every call. Access tokens expire in 20 minutes; refresh tokens last 1 week. MYOB does not support webhooks, so employee and cost center records are read by polling with OData $filter on LastModified timestamps. API rate limits are 8 requests per second and 1 million requests per day per API key.

How SAP SuccessFactors works

SAP SuccessFactors Employee Central is a cloud HR system accessible via REST OData V2 and V4 over HTTPS at datacenter-specific URLs. Authentication uses OAuth 2.0 with SAML Bearer Assertion: register an OAuth2 client in Admin Center, generate an RSA key pair, upload the public certificate, sign a SAML assertion with the private key, and POST to the /oauth/token endpoint to receive a Bearer token valid for 24 hours. HR lifecycle events can be configured in Admin Center to push callbacks, but the recommended approach for reliable payroll sync is pull-only using delta queries on lastModifiedDateTime. Max page size is 1000 records; default is 20, so requests must set $top=1000 explicitly.

What moves between them

The main flow is SAP SuccessFactors into MYOB. New hires, terminations, job changes, and compensation changes are read from SuccessFactors on a payroll cycle schedule and synced into MYOB contacts. Cost centers and org structure are synchronized in both directions so payroll allocations land on GL accounts that exist in MYOB. In some implementations, MYOB GL journals generated from payroll feeds are read back into SuccessFactors for audit and cost analysis, but the primary direction is HR data into accounting.

How ml-connector handles it

ml-connector stores MYOB OAuth token and company file credentials separately and supplies the required OAuth Bearer, API Key, and CF token headers on each MYOB API call, refreshing the OAuth token when it expires or a call returns 401. On the SuccessFactors side it generates SAML Bearer Assertions on demand by signing with the registered RSA private key, exchanges the assertion for a 24-hour Bearer token, and caches it until close to expiry. Because SuccessFactors recommends pull-only sync for payroll-grade reliability and MYOB has no webhook surface, ml-connector polls both systems on a schedule tied to your pay period calendar using OData $filter on lastModifiedDateTime to detect changes. It validates that cost centers exist in MYOB before mapping, maps employee records to MYOB contact entities, and retries on network transients. SuccessFactors enforces a max of 10 concurrent threads per client, so ml-connector uses a single-threaded loop for SuccessFactors queries.

A real-world example

A mid-sized services firm in Australia uses MYOB for GL, AR, and AP, and runs SAP SuccessFactors Employee Central for payroll and HR across three offices. Before the integration, the HR team exported employee lists from SuccessFactors each pay period and emailed them to Finance, who manually updated MYOB contact records and cost center allocations. This created a lag where new hires did not appear in MYOB for 2-3 days after HR added them to SuccessFactors, and payroll allocations to cost centers were often stale or wrong. With the integration, employees sync from SuccessFactors to MYOB automatically, cost centers stay aligned, and the payroll finance team sees current GL allocations immediately after each payroll run.

What you can do

  • Sync employee records from SAP SuccessFactors into MYOB contacts on a payroll cycle schedule.
  • Map SAP SuccessFactors cost centers and org structure to MYOB GL accounts and job codes so payroll allocations are accurate.
  • Authenticate SAP SuccessFactors using SAML Bearer Assertion and OAuth2, and MYOB using dual OAuth and company file credentials.
  • Poll on a schedule tied to your payroll calendar with full audit trail and error replay on every employee and cost center record.
  • Detect changes using OData delta queries on lastModifiedDateTime and sync only records that have changed since the last run.

Questions

Which direction does data move between MYOB and SAP SuccessFactors?
The main flow is SAP SuccessFactors into MYOB. Employee records, job titles, and cost centers flow from SuccessFactors into MYOB so payroll can be allocated to the correct GL accounts. Cost centers are synchronized in both directions to keep the two systems aligned. MYOB GL journals are read-only in this context.
How does ml-connector handle MYOB's dual authentication requirement?
MYOB requires both OAuth2 token and company file credentials (CF username and password) on every API call supplied as headers. ml-connector stores the OAuth token and CF credentials separately, refreshes the OAuth token when it expires or a call returns 401, and supplies all three required headers (Authorization Bearer, x-myobapi-key, x-myobapi-cftoken) on each request.
Why does ml-connector poll rather than use webhooks or event push?
MYOB Business API does not offer webhooks or push notifications, so reliable payroll sync requires polling with OData filters on lastModifiedDateTime. SAP SuccessFactors supports event callbacks, but pull-only with delta queries on lastModifiedDateTime is the recommended approach for payroll-grade change detection. ml-connector uses a single thread to stay within SuccessFactors concurrency limits.

Related integrations

Connect MYOB and SAP SuccessFactors

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

Get started