

Leave, absence and time
Quinyx to AFAS integration: worked hours and allowances to the payroll run, contracts and leave balance back
With an integration between Quinyx and AFAS Profit, approved hours and allowances per Quinyx salary type go to AFAS as payroll mutations, without a salary file that someone has to import. The other way round, new employees, employments, contract hours and the leave balance from AFAS reach Quinyx, so the schedule works with the right people and hours.
What the integration does
Anyone who schedules and records time in Quinyx and runs payroll in AFAS Profit imports a payroll file from Quinyx into AFAS after each period and checks it line by line. New employees are created separately in both packages, and the leave balance in the Quinyx app lags behind AFAS.
- HR records a new employee with employment, schedule and department in AFAS. KoppelHet creates the employee and an agreement in Quinyx, in the store that belongs to the department.
- Employees clock in and swap shifts in Quinyx. Managers approve the time; Quinyx calculates allowances and overtime per salary type.
- After the transfer to payroll in Quinyx, KoppelHet retrieves the hours per employee, salary type and cost centre.
- The hours appear as payroll mutations in AFAS on the pay component that belongs to the salary type. Leave taken arrives in AFAS as a leave entry.
- The leave balance from AFAS goes back to Quinyx, so employees see the same balance in the app as HR does.
Back: New employees and leavers · Employments with contract hours and start date · Leave balance per leave type
What to watch for with Quinyx and AFAS Profit
- Quinyx only includes approved time in the transfer to payroll. If time is still open when AFAS closes the period, KoppelHet reports per employee which days are missing, so payroll does not pay too few hours without noticing.
- A final transfer in Quinyx locks the period. A correction after that must be reversed in Quinyx and comes back as a new transaction. KoppelHet then adjusts the existing payroll mutation in AFAS instead of adding a second one next to it.
- Quinyx calculates allowances itself and gives each percentage its own salary type. AFAS has its own pay components for those in the collective agreement. The integration puts the hours on the pay component and lets AFAS calculate the amount, so the allowance is not calculated twice.
- Quinyx advises recording a change of hours as a dated entry within the existing agreement, so the overtime calculation over the running period stays correct. KoppelHet therefore only creates a new agreement when AFAS has a new employment.
- Quinyx has a separate statutory leave balance for the Netherlands. AFAS also keeps statutory and extra-statutory leave apart. KoppelHet puts both balances on their own tracker in Quinyx, so the app shows which leave expires first.
- When an employee moves to another department in AFAS, the home store changes in Quinyx. The role in the old store does not end by itself. KoppelHet closes it on the move date and sets the same role in the new store.
- Leave is requested and approved in the Quinyx app, but AFAS stays leading for the balance. Leave taken goes to AFAS as a leave entry, and the new balance returns to Quinyx the next morning.
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
Can Quinyx not simply produce a salary file for AFAS?
Quinyx creates a salary file on transfer, but someone has to import and check it in AFAS. With the integration the hours are ready as payroll mutations straight away and you see per employee what was booked and what was not.
What if a Quinyx salary type has no pay component in AFAS?
Then the line is not booked and an alert appears in the platform. Payroll assigns a pay component or confirms that the salary type is not paid out.
Do sickness reports go across too?
That can be added later as an extension. We start with hours, leave and the employee data that planning needs.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Quinyx is read through the SOAP operations wsdlGetPayrollV2 (salType, hours, costCentre, badgeNo; filters approvedSalaryStatus and isTransferingToPayroll) or wsdlInitiateTransferToPayroll with a unique extTransferId and wsdlGetResultTransferToPayroll. A final run locks the period; reversing is done in Quinyx or with wsdlReverseTransactions.
- Quinyx is written with employees through the Employees API v3 (OAuth 2.0 client credentials, separate v3 credentials) or wsdlUpdateEmployees on badgeNo, agreements through wsdlUpdateAgreementsV2 (extAgreementId, extTemplateId, employmentRatesAdd) and balances through wsdlUpdateTimeTrackers, where operation 3 and 4 update the statutory balance for Dutch trackers only.
- Hours go to AFAS through the UpdateConnector HrCompMut; corrections through HrCompMutGUID (UPDATE and DELETE on GUID). Leave entries through HrAbsence. Employees, employments and leave balances come from a dedicated GetConnector on change date.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Quinyx | Field in AFAS Profit | Notes |
|---|---|---|
badgeNo | Medewerker (EmId) | The AFAS employee number becomes the badge number in Quinyx |
salType (extern salaristype) | Looncomponent in HrCompMut | Through a translation table managed by payroll |
hours | Waarde van de loonmutatie | Summed per employee, salary type and period |
costCentre | Kostenplaats van de loonmutatie | |
extAgreementId | Volgnummer dienstverband | Each AFAS employment is its own agreement in Quinyx |
fromDate en toDate (agreement) | Begin- en einddatum dienstverband | |
employmentRatesAdd | Uren per week (rooster) | As a dated entry within the existing agreement |
leaveDate | Datum uit dienst | Last working day in Quinyx |
Time tracker (value) | Verlofsaldo per type verlof | Statutory and extra-statutory leave on separate trackers |
Related
ADP iHCM → Quinyx
ADP iHCM to Quinyx integration: employees and contract hours from ADP in scheduling, hours per pay period back to ADP
ADP Workforce Now → Quinyx
ADP Workforce Now to Quinyx integration: employees with agreements, positions and leave in hours in scheduling
BambooHR → Quinyx
BambooHR to Quinyx integration: employees, approved time off and balances from BambooHR in the schedule
Dayforce → Quinyx
Dayforce to Quinyx integration: employees, weekly hours and approved time away from work from Dayforce in scheduling