Acumatica and SAP SuccessFactors integration
Acumatica runs finance, distribution, and operations. SAP SuccessFactors runs core HR, jobs, and org structure. Connecting the two keeps the workforce and finance coding in one ERP aligned with the HR system of record. New hires, terminations, job moves, and cost center changes in SuccessFactors flow into Acumatica so employee records and finance dimensions stay current 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 flow runs from SAP SuccessFactors into Acumatica. ml-connector reads person, employment, and EmpJob records and creates or updates the matching Acumatica employee records, so hires, terminations, and rehires keep ERP headcount current. Department and cost center foundation objects from SuccessFactors are aligned to the corresponding Acumatica codes so HR org changes flow into the dimensions finance posts against. SuccessFactors is treated as the HR source of record, so ml-connector does not write employee or org master data back into it. Reads run on a delta filter on a cadence you set, typically aligned to your payroll and HR change calendar.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the SuccessFactors side it signs a SAML assertion with the customer RSA private key, exchanges it for a Bearer token, and refreshes the token before its 24 hour expiry rather than per call. On the Acumatica side it accepts the full instance URL and the endpoint version per customer, since a version mismatch returns 404, and it wraps every field value in the required value object so flat payloads do not return 400. Because SuccessFactors never hard-deletes, a leaver shows up as a status change, not a deletion, so ml-connector syncs on status rather than waiting for a delete event. Cost centers and departments are mapped first, matching the SuccessFactors externalCode to the Acumatica code, so every employee lands on a department and cost center that already exists in the ERP. SuccessFactors throttling returns 429 or 503 with no rate-limit headers, so ml-connector keeps concurrency low and backs off with jitter, and Acumatica throttling and its concurrent-session license cap are respected the same way. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A regional construction firm of about 600 employees runs Acumatica for project accounting, AP, and the general ledger, and runs SAP SuccessFactors for hiring, job assignments, and org structure across several field offices. Before the integration, HR maintained employees and cost center assignments in SuccessFactors while finance kept a parallel employee list in Acumatica by hand, so a transfer or a new cost center took days to reach the ledger and labor was sometimes coded to a center that did not yet exist in the ERP. With Acumatica and SAP SuccessFactors connected, each hire, termination, and job change flows into Acumatica with the correct department and cost center, and finance posts labor against dimensions that match HR on day one.
What you can do
- Create and update Acumatica employee records from SAP SuccessFactors hires, terminations, and rehires.
- Align SuccessFactors departments and cost centers to Acumatica dimensions so labor codes to valid centers.
- Map SuccessFactors job and org changes into Acumatica so the ERP reflects the HR system of record.
- Bridge the SuccessFactors SAML Bearer token exchange and Acumatica version-locked OAuth login.
- Poll SuccessFactors on a delta filter on a schedule you set, with retries and a full audit trail on every record.
Questions
- Which direction does data move between Acumatica and SAP SuccessFactors?
- Data moves from SAP SuccessFactors into Acumatica. Employee, job, department, and cost center records flow from the HR system into the ERP so headcount and finance coding stay current. SuccessFactors is the HR source of record, so ml-connector does not write employee or org master data back into it.
- How does the integration authenticate to SAP SuccessFactors?
- SuccessFactors uses OAuth 2.0 SAML Bearer Assertion, not a simple client ID and secret. ml-connector signs a SAML assertion with the customer RSA private key, exchanges it for a Bearer token that lasts up to 24 hours, and refreshes the token before it expires. The API user also needs Role-Based Permissions in Admin Center for every entity, since a missing grant returns 403 rather than 401.
- Does this use webhooks or polling?
- It uses delta polling as the reliable path. SuccessFactors Intelligent Services can push HR events, but there is no programmatic subscription and no delivery guarantee, so ml-connector reads changes on a lastModifiedDateTime filter on a schedule you set. Because SuccessFactors deactivates rather than deletes employees, the sync keys on status changes instead of deletion events.
Related integrations
More Acumatica integrations
Other systems that connect to SAP SuccessFactors
Connect Acumatica and SAP SuccessFactors
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started