Payroll integration
Sage People to ADP iHCM integration: salary records, bonuses and leavers of the Dutch payroll company to ADP
An integration between Sage People and ADP iHCM passes new salary records, bonuses and leavers of the Dutch payroll company in Sage People to the right pay group and pay period in ADP iHCM. Employees who already exist in ADP get their base salary, variable amounts and termination without payroll retyping anything; creating a new employee in ADP remains a task for payroll.
What the integration does
Organisations that use Sage People as their HR system and run Dutch payroll in ADP iHCM email ADP an overview of pay rises, bonuses and leavers every period. Payroll retypes it in ADP, and a pay rise recorded in Sage People with retroactive effect easily ends up outside the right period.
- HR records a new salary record, a bonus or an end date in Sage People for an employee of the Dutch payroll company.
- KoppelHet reads the changed records through the Sage People Salesforce API and looks up the ADP employee number stored with the team member.
- The base salary goes to ADP as a salary change; bonuses go in as variable lines in the batch for the pay period.
- An end date on the employment starts the termination in ADP with last working day and reason.
- Anything ADP rejects goes on a list for payroll and HR, with the error message.
What to watch for with Sage People and ADP iHCM
- Sage People runs on Salesforce. KoppelHet reads the objects fHCM2__Team_Member__c and fHCM2__Employment__c with SOQL, through an External Client App with client credentials and a Salesforce Integration licence with the Minimum Access – API Only profile. The integration therefore needs no regular user licence.
- On a Sage People salary record the award date decides whether a change is future-dated or back-dated. If the award date is after the start date, it is a retroactive pay rise. KoppelHet sends it to ADP with the original start date, so ADP calculates the back pay itself.
- Sage People calculates the annual salary as Amount times Annual Multiplier, and the Period field can indicate the amount per pay period. ADP iHCM NL expects the salary amount per period in field 2417. KoppelHet uses the period amount when it is there, and otherwise converts the annual amount to the period of the ADP pay group.
- Sage People has its own export mechanism for payroll providers, Payflow, with a download service per flow. ADP iHCM NL, however, takes salaries, variable amounts and terminations through separate APIs, not as a file. KoppelHet therefore reads directly from Sage People and calls the right ADP API for each kind of data.
- ADP wants the exact start and end date of the pay group's pay period with every variable amount. A bonus in Sage People has one date. KoppelHet looks up the ADP period that date falls in, and turns a bonus for a period already closed in ADP into a message for payroll.
- In Sage People, access to HR departments determines which team members a user can see. KoppelHet gives the API user read access only to the HR departments of the Dutch payroll company, so salaries from other countries never reach ADP.
- An end date cannot be edited in ADP; the termination has to be cancelled and started again. If HR moves the end date of an employment in Sage People, KoppelHet takes those two steps in ADP and waits for the confirmation before the new date counts.
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
Does the integration also create new employees in ADP iHCM?
No. We found no public ADP API to create an employee in iHCM NL. KoppelHet reports a new employee from Sage People to payroll and links them as soon as they exist in ADP.
Can the payslips from ADP come back to Sage People?
Sage People can load payslips as PDF through inbound Payflow, so employees see them in WX. That is not in the first version and can be added later as an extension.
What if we have several Dutch employers?
Each payroll company in Sage People gets its own ADP pay group in the lookup table. Otherwise the integration stays the same.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Sage People through the Salesforce REST API (/services/data/v62.0/query with SOQL on fHCM2__Team_Member__c, fHCM2__Employment__c with SPPUK_Payroll_Company__c, and the salary and bonus records on the employment), filtered on LastModifiedDate. OAuth 2.0 client credentials through an External Client App; Integration licence, Minimum Access – API Only profile and a permission set with View All on the objects used.
- ADP iHCM through GET /hr/v2/workers (payrollfilenumber, paygroupcode), the Base Remuneration Change API (fields 2416 and 2417), the Pay Data Input API for iHCM NL (.add and .replace with payPeriodStartDate and payPeriodEndDate equal to the pay group) and the Worker Terminate API (worker.terminate, worker-termination.cancel). Every URI must be in the Consumer Application Registry (CAR).
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Sage People | Field in ADP iHCM | Notes |
|---|---|---|
Employee Number (fHCM2__Team_Member__c) | payrollfilenumber | Linked once and stored by KoppelHet |
SPPUK_Payroll_Company__c (dienstverband) | payrollGroupCode | Lookup per payroll company |
Salarisrecord Amount en Period | Salariscode 2416 en salarisbedrag 2417 | Converted to the amount per ADP period |
Salarisrecord Start Date | Ingangsdatum van de salariswijziging | |
Bonusregel (bedrag, datum) | Variabel veld (Vxxx) via Pay Data Input | Lookup per bonus type |
Einddatum en reden dienstverband | Beëindiging met datum en reden |
- Sage People – API Setup
- Sage People – Create salary and related records
- Sage People – Payflow introduction
- Sage People – Payflow services
- Sage People – Payroll integrations
- ADP – Pay Data Input API Guide for iHCM NL
- ADP – Base Remuneration Change API Guide for iHCM NL
- ADP – Worker Terminate API Guide for ADP iHCM
Related
Sage People → Active Directory
Sage People to Active Directory integration: domain accounts for the Dutch office
Sage People → AFAS Profit
Sage People to AFAS integration: Dutch employees and salaries from Sage People in AFAS Profit
Sage People → Arbodienst (SIVI)
Sage People to the occupational health service via SIVI: absence records as absence reports
Sage People → DATEV
Sage People to DATEV integration: German payroll changes from Sage People to DATEV