Sage People logoADP iHCM logo

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.

  1. HR records a new salary record, a bonus or an end date in Sage People for an employee of the Dutch payroll company.
  2. KoppelHet reads the changed records through the Sage People Salesforce API and looks up the ADP employee number stored with the team member.
  3. The base salary goes to ADP as a salary change; bonuses go in as variable lines in the batch for the pay period.
  4. An end date on the employment starts the termination in ADP with last working day and reason.
  5. Anything ADP rejects goes on a list for payroll and HR, with the error message.
Sage People → KoppelHet → ADP iHCMSOURCESage PeopleTARGETADP iHCMKoppelHetmapping · logging · monitoringSage People → KoppelHet → ADP iHCMSOURCESage PeopleTARGETADP iHCMKoppelHetmapping · logging · monitoring
Out: Salary record with amount, period, award date and start date · Bonus entries on the employment · End date and reason of the employment · Link between team member and ADP employee number

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, architecture and compliance

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.

Price indication · Complex

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

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 PeopleField in ADP iHCMNotes
Employee Number (fHCM2__Team_Member__c)payrollfilenumberLinked once and stored by KoppelHet
SPPUK_Payroll_Company__c (dienstverband)payrollGroupCodeLookup per payroll company
Salarisrecord Amount en PeriodSalariscode 2416 en salarisbedrag 2417Converted to the amount per ADP period
Salarisrecord Start DateIngangsdatum van de salariswijziging
Bonusregel (bedrag, datum)Variabel veld (Vxxx) via Pay Data InputLookup per bonus type
Einddatum en reden dienstverbandBeëindiging met datum en reden

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.