ADP iHCM logoProtime logo

Leave, absence and time

ADP iHCM to Protime integration: employees and contract from ADP in Protime, calculated hours per pay period back to ADP

With an integration between ADP iHCM and Protime, every employee from ADP appears in Protime automatically, with contract hours, full-time norm and work location on the date ADP specifies. The hours Protime calculates per day go back to ADP per pay period as variable pay data, with the same employee number as the key.

What the integration does

Organisations that run payroll in ADP iHCM and have employees clock in Protime enter every new colleague twice. Hours calculated by Protime reach ADP as an export or by hand, and a change in contract hours only reaches Protime when someone notices.

  1. HR records a new employee, a change or a departure in ADP iHCM.
  2. KoppelHet receives the notification from ADP and fetches the employee with their work assignment.
  3. Protime receives the person with the ADP employee number as reference, a contract in minutes and the work location with its effective date.
  4. After the end of the pay period KoppelHet fetches the calculated hours per day from Protime and totals them per employee and pay code.
  5. ADP receives the hours as variable fields on the pay group's pay period. The result per line appears in the platform as a check.
ADP iHCM → KoppelHet → ProtimeSOURCEADP iHCMTARGETProtimeKoppelHetmapping · logging · monitoringADP iHCM → KoppelHet → ProtimeSOURCEADP iHCMTARGETProtimeKoppelHetmapping · logging · monitoring
Out: Person with employee number, name and start and end date · Contract with contract hours and full-time norm in minutes · Work location as history
Back: Calculated hours per pay code and employee, per pay period

What to watch for with ADP iHCM and Protime

  • The employee number from ADP is the person's external reference in Protime and the key back to ADP when hours are delivered. Protime refuses a second person with the same reference, while a request without a reference skips that check. KoppelHet therefore always sends the number, so a repeated request does not produce a duplicate employee.
  • ADP records contract hours in hours with an FTE factor alongside. Protime counts in minutes, with a contract of at most 5999 minutes per period and a separate norm for a full-time week. KoppelHet converts hours into minutes and derives the full-time norm by dividing the contract hours by the FTE factor.
  • ADP keeps a new employee whom HR has not completed out of the API with the 'Stop external processing' flag. Only once that flag is off can KoppelHet create them in Protime. Someone who cannot clock on their first day is therefore usually still incomplete in ADP.
  • Protime totals hours per person per day, such as hours for the pay period and flextime. ADP only links delivered hours to a payroll run when the period matches the pay group's exactly. KoppelHet therefore totals Protime's daily figures over exactly that period, separately per pay group.
  • Protime can recalculate a daily total later, for example after a missed clocking is added. If the period has already been processed in ADP, ADP only accepts a difference line. KoppelHet compares the new totals with what was already delivered and sends only the difference.
  • ADP sends a change notification when the date of joining changes, for example after a rehire. Protime keeps work location and department as history with a start date. KoppelHet then moves the existing entry in Protime to the new date, instead of adding a second entry next to it.
  • Absence can only be read in Protime, and ADP publishes no leave API for iHCM. Leave therefore stays in Protime. If sick or leave hours must count in payroll, they go along as a pay code of their own, provided a variable field has been set up for it.

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 · Basic

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

Which hours go to ADP?

The totals you use in Protime for payroll, such as pay period hours or overtime. Per total we record which ADP variable field it belongs in.

Can employees request leave in ADP?

Then it does not reach Protime automatically, because Protime does not accept absence through the API. We therefore choose Protime as the place for leave.

Does this work with several pay groups?

Yes. Each pay group gets its own periods and its own delivery.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • ADP iHCM through the Worker Management API (GET /hr/v2/workers) and the notifications worker.hire, worker.workAssignment.modify and worker.terminate. Fields include payrollFileNumber, payrollGroupCode, standardHours.hoursQuantity, fullTimeEquivalenceRatio and homeWorkLocation. Hours through the Pay Data Input API for iHCM NL (.add and .replace), with payPeriodStartDate and payPeriodEndDate exactly equal to the pay group; variable fields only.
  • Protime through the Protime API (v1) with OAuth 2.0 client credentials. POST people with externalReferenceIdentifier @employee-number (409 on an existing reference), POST contracts (contractHoursInMinutes and fullTimeEquivalentInMinutes between 1 and 5999), PUT on work-location-history with originalFrom and updatedFrom. Hours through GET calculated-totals (date range at most one year, paged per 100 people) with the calculated-totals.read scope.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in ADP iHCMField in ProtimeNotes
payrollFileNumberemployeeNumber en externalReferenceIdentifier (@employee-number)The same key as payeeID when delivering hours
legalName (givenName, familyName1)firstName, lastName
hireDate en terminationDateinServiceDate en outOfServiceDate
standardHours.hoursQuantitycontractHoursInMinutesHours times sixty
standardHours en fullTimeEquivalenceRatiofullTimeEquivalentInMinutesContract hours divided by the FTE factor
homeWorkLocation.nameCodework-location-history
payrollGroupCodeGroepering van de aanleveringEach delivery belongs to one pay group
payPeriodHoursDurationInMinutes en andere totalen (Protime, terug)Variabel veld (Vxxx) in Pay Data InputThrough a table per pay code

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.