
Leave, absence and time
ADP iHCM to Quinyx integration: employees and contract hours from ADP in scheduling, hours per pay period back to ADP
With an integration between ADP iHCM and Quinyx, new employees, changes and departures from ADP appear in Quinyx automatically, with the location and contract hours recorded in ADP. Hours from Quinyx go back to ADP per pay period of the pay group as variable pay data, so payroll calculates with what was worked.
What the integration does
Organisations that run payroll in ADP iHCM and schedule per site in Quinyx maintain employees in two systems. A part-time contract that changes in ADP still shows the old hours in scheduling, and worked hours reach ADP as a file or by hand.
- HR records a new employee or a change in ADP iHCM.
- KoppelHet receives the notification from ADP and fetches the employee with their work assignment.
- Quinyx receives the employee in the unit of their work location, with an agreement based on the contract hours and part-time factor from ADP.
- At the end of the pay period the planner closes the period in Quinyx.
- KoppelHet converts the hours per pay code into ADP's variable fields and delivers them on the pay group's pay period. The result per line appears in the platform as a check.
Back: Hours per pay code and employee, per pay period of the pay group
What to watch for with ADP iHCM and Quinyx
- A new starter can only be read through the ADP API once the 'Stop external processing' flag is off. ADP keeps that flag on until the starter's mandatory fields are complete. If a planner misses someone in Quinyx who is already in ADP, that flag is the first thing to check.
- ADP provides contract hours and an FTE factor per work assignment. With a fixed work pattern the hours come from that pattern, with a variable one from the weekly hours field. Quinyx needs the hours of a full working week in the agreement. KoppelHet divides the contract hours by the FTE factor, so both systems show the same part-time share.
- ADP only links delivered hours to a payroll run when start and end date match the pay group's pay period exactly. Otherwise ADP accepts the lines but they are not attached to anything. KoppelHet takes over the periods per pay group and delivers the Quinyx hours only on those periods.
- Through the API ADP only accepts variable fields, and which ones differs per pay group. KoppelHet links each pay code from Quinyx to a V field and checks at the start that the field is set up in the pay group, so hours are not refused on payroll day.
- A correction to hours already in ADP is sent as a difference, or as a replacement of the whole delivery as long as ADP has not processed it. KoppelHet therefore keeps the number ADP returns per delivery. An entry that was ten hours too high becomes a line of minus ten after processing.
- ADP sends the termination notification again when the leaving date or reason changes, and a withdrawn termination arrives as a cancellation followed by a new notification. KoppelHet updates the last working day in Quinyx on every notification, not just the first.
- ADP reports a returning former employee as a hire with the status rehire and the same employee number. Because that number is the badge number in Quinyx, the employee gets their existing profile back with a new start date.
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 leave from ADP go to Quinyx?
Not in this integration. ADP publishes no leave API for iHCM; leave is then requested and approved in Quinyx.
What if ADP refuses an hours line?
ADP returns per line what was and was not processed. A refused line appears as an alert in the platform, with the reason from ADP.
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 with $top and $skip, filters not on all workAssignment fields) and the event notifications worker.hire (also rehire), worker.workAssignment.modify and worker.terminate (also on terminate-cancel). Fields include standardHours.hoursQuantity, fullTimeEquivalenceRatio, homeWorkLocation.nameCode and payrollGroupCode. Each API URI must be in the Consumer Application Registry.
- Hours to ADP through the Pay Data Input API for iHCM NL (pay-data-input.add and .replace) with payrollGroupCode, payeeID equal to payrollFileNumber, payPeriodStartDate and payPeriodEndDate. The batch ID is in events/data/output/payDataInput/itemId.
- To Quinyx through the Employees API v3 (POST /hr/v3/employees, lookup by badgeNumber) and /hr/v3/role-assignments; agreements through the SOAP operation wsdlUpdateAgreementsV2. Hours are read after the transfer to payroll (InitiateTransferToPayroll), which locks the period in Quinyx.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in ADP iHCM | Field in Quinyx | Notes |
|---|---|---|
workerID / payrollFileNumber | badgeNumber | Also the payeeID when delivering hours |
legalName (givenName, familyName1) | personalInformation.firstName, lastName | |
businessCommunication (werk-e-mail) | email | |
workAssignments.homeWorkLocation.nameCode | employment.homeGroupId | Through a table of ADP location codes to Quinyx units |
workAssignments.standardHours.hoursQuantity | Contracturen in de agreement | |
workAssignments.fullTimeEquivalenceRatio | fullEmploymentHrs (agreement) | Contract hours divided by the FTE factor |
hireDate en terminationDate | employmentStartDate en leaveDate | |
Looncode en uren (Quinyx, terug) | Variabel veld (Vxxx) in Pay Data Input | |
Loonperiode (Quinyx, terug) | payPeriodStartDate en payPeriodEndDate | Must match the pay group's period exactly |
Related
ADP iHCM → Active Directory
ADP iHCM to Active Directory integration: network accounts per country, with an expiry date for temporary contracts
ADP iHCM → Coupa
ADP iHCM to Coupa integration: approved Coupa expenses as a variable pay field in ADP iHCM NL
ADP iHCM → Dyflexis
ADP iHCM to Dyflexis integration: employees and contracts in scheduling, hours back to ADP
ADP iHCM → Microsoft Entra ID
ADP iHCM to Entra ID integration: accounts from ADP payroll, with the right licence in every European country