
Payroll integration
SAP SuccessFactors to ADP iHCM integration: salary, allowances and leavers for Dutch payroll at ADP
An integration between SAP SuccessFactors Employee Central and ADP iHCM brings pay changes, recurring and one-off pay components and leavers of the Dutch employees from SuccessFactors to the right ADP pay group and pay period. Each kind of data uses the ADP route intended for it, so a one-off payment never reaches ADP as a salary change.
What the integration does
Organisations that record HR worldwide in SAP SuccessFactors and run Dutch payroll at ADP iHCM send ADP an overview of salaries, allowances and bonuses each period. Payroll retypes it into ADP, and a bonus with a wrong period stays unlinked in ADP until someone attaches it.
- HR records a pay change, allowance, bonus or leaver for a Dutch employee in Employee Central.
- KoppelHet fetches the changed records with their validity date and looks up the matching ADP employee.
- Base pay goes to ADP as a salary change, variable amounts as a batch for the pay group's pay period.
- A termination in Employee Central starts the termination in ADP, with last working day and reason.
- ADP reports per line what was processed; rejected lines go on the difference list for payroll.
What to watch for with SAP SuccessFactors and ADP iHCM
- ADP iHCM NL has its own API per kind of pay component. Base pay runs through a salary change, variable amounts through a batch, numeric fields without taxability through Additional Remuneration and deductions through a route of their own. KoppelHet decides per SuccessFactors pay component which route it takes.
- One-off payments in SuccessFactors have a pay date, not a validity period. ADP wants the start and end date of the pay group's pay period with every variable amount. KoppelHet finds the ADP period in which the pay date falls and sends that along.
- Recurring pay components in SuccessFactors are effective dated. A retroactive change becomes a retroactive entry in ADP, but ADP rejects a date before the start of the ADP contract. KoppelHet passes such a line to payroll instead of letting it bounce.
- When a batch is replaced, ADP deletes every line that is not sent again, and ADP has no list of earlier batches. KoppelHet therefore keeps the batch ID and the full content of what went to ADP for each period.
- SuccessFactors can reverse a termination or change its date. ADP has no modified termination; KoppelHet cancels the termination in ADP, starts it again with the new date, and waits for ADP's confirmation.
- Not every employee in iHCM has an associateOID, and a change through the ADP API does require it. KoppelHet therefore links the SuccessFactors employee once to the ADP employee number and requests the associateOID where it exists.
- Pay components in SuccessFactors are set up for the whole group, the variable fields in ADP per pay group. A SuccessFactors component without an ADP field in the Multipay mapper is reported to payroll by KoppelHet instead of dropping the amount.
How we build and run it
- The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
- Every sync and every error is visible in the functional log; on an error your administrator is notified.
- A change that cannot go through is not half-applied but queued for another attempt.
- KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
- After go-live we manage the integration and adjust it when your process changes.
- The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.
Implementation and price
This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.
A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.
Frequently asked questions
Why does a new hire not reach ADP automatically?
We found no API to create an employee in ADP's public iHCM guides. The integration therefore starts with employees already in ADP; KoppelHet reports the hire to payroll as a task.
What happens to payroll tax data?
They stay in ADP. SuccessFactors only sends salary, pay components and leavers; Dutch tax choices are managed by payroll in ADP.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- SAP SuccessFactors Employee Central through the OData API with OAuth 2.0, filtered on lastModifiedDateTime and the Dutch company - EmpJob, EmpPayCompRecurring (payComponent, paycompvalue, frequency, startDate), EmpPayCompNonRecurring (payComponentCode, value, payDate) and EmpEmploymentTermination (endDate, eventReason). Technical user with read rights on the Dutch legal entity.
- ADP iHCM through GET /hr/v2/workers (payrollfilenumber and paygroupcode), the Base Remuneration Change API (fields 2416 and 2417), the Pay Data Input API for iHCM NL (.add and .replace, no OData parameters, validation on pay group, field and period), Additional Remuneration Change for numeric fields without taxability and the Worker Terminate API (worker.terminate, worker-termination.cancel; completion only through events). Every URI in the Consumer Application Registry (CAR).
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in SAP SuccessFactors | Field in ADP iHCM | Notes |
|---|---|---|
userId / personIdExternal | Sleutel bij de ADP-medewerker (payrollfilenumber) | Linked once and stored |
company (EmpJob) | payrollGroupCode | Dutch legal entity to ADP pay group |
EmpPayCompRecurring (basissalaris) | Salariscode 2416 en salarisbedrag 2417 | |
EmpPayCompRecurring (toeslag) | Additional Remuneration | Numeric fields without taxability |
EmpPayCompNonRecurring (payComponentCode, value, payDate) | Variabel veld (Vxxx) via Pay Data Input | Through a lookup table per pay component |
EmpEmploymentTermination (endDate, eventReason) | Beëindiging met datum en reden |
- SAP SuccessFactors – EmpPayCompRecurring
- SAP SuccessFactors – EmpPayCompNonRecurring
- SAP SuccessFactors – EmpEmploymentTermination
- SAP SuccessFactors – Last modified queries and effective dated entities
- ADP – Pay Data Input API Guide for iHCM NL
- ADP – Worker Management API Guide for ADP iHCM
- ADP – Worker Terminate API Guide for ADP iHCM
- ADP Marketplace – SAP Integration for ADP iHCM by Flexspring
Related
Ashby → SAP SuccessFactors
Ashby to SAP SuccessFactors integration: hire as a new employee in Employee Central
Bullhorn → SAP SuccessFactors
Bullhorn to SAP SuccessFactors integration: placements as employees or contingent workers in Employee Central
Carerix → SAP SuccessFactors
Carerix to SAP SuccessFactors integration: successful placement as a new employee in Employee Central
Greenhouse → SAP SuccessFactors
Greenhouse to SAP SuccessFactors integration: a hire as a new employee in Employee Central