Protime logoAFAS Profit logo

Leave, absence and time

Protime to AFAS integration: calculated hours and absence to payroll, employees and contracts back

With an integration between Protime and AFAS Profit, calculated and validated hours from Protime go to AFAS per period as payroll mutations, and approved absence as leave entries. The other way round, new employees and contracts with contract hours from AFAS reach Protime, so time registration and payroll work from the same contract.

What the integration does

Organisations that record attendance in Protime and process payroll in AFAS Profit run a Protime report every month, convert minutes to hours and enter overtime and allowances by hand. New employees are already in AFAS, but can only clock once they have also been created in Protime.

  1. HR records a new employee with contract and schedule in AFAS. KoppelHet creates the person and the contract with contract hours in Protime.
  2. Employees clock in Protime. Protime calculates presence, normal hours and any extra hours per day.
  3. Extra hours outside the schedule are validated in Protime by the manager.
  4. KoppelHet totals the calculated and validated hours per employee and type over the payroll period and books them as payroll mutations in AFAS.
  5. Approved absence from Protime arrives in AFAS as a leave entry.
Protime → KoppelHet → AFAS ProfitSOURCEProtimeTARGETAFAS ProfitKoppelHetmapping · logging · monitoringProtime → KoppelHet → AFAS ProfitSOURCEProtimeTARGETAFAS ProfitKoppelHetmapping · logging · monitoring
Out: Calculated hours per day and type · Validated extra hours · Approved absence
Back: New employees and leavers · Contract with contract hours, full-time hours and working days per week

What to watch for with Protime and AFAS Profit

  • Protime calculates everything in minutes per day; AFAS books payroll mutations per pay component and period. KoppelHet totals the minutes per employee and type over the payroll period and converts them to hours, so rounding per day does not cause a difference.
  • Protime supplies three types of weekly hours whose meaning is configured per customer in myProtime, for example overtime or shift allowance. Which type belongs to which pay component in AFAS is recorded before the first payroll run.
  • Hours outside the schedule or core hours first wait for validation in Protime. Only after approval do validated hours exist. KoppelHet only books those as overtime in AFAS, so a forgotten clock-out is not paid as overtime.
  • A contract in Protime requires contract hours, full-time hours and working days per week, plus a contract period that is a multiple of seven days. KoppelHet converts the AFAS schedule, and a schedule with an even and odd week becomes a contract period of fourteen days.
  • Balances and absences can only be read through the Protime API. The integration can therefore not put a leave balance from AFAS into Protime. We agree that Protime records absence and AFAS keeps the balance based on the leave entries.
  • Protime can find an employee by employee number as an external reference. KoppelHet uses the AFAS employee number for that, so no separate translation table from Protime ids to AFAS employees is needed.
  • Protime books a night shift that runs past midnight on the day according to the schedule. KoppelHet keeps that day, so the shift on the last evening of the month falls in that month's AFAS period.

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

Does flextime go to AFAS too?

Only if you pay out flextime. Protime keeps the flextime balance separately; by default it stays there and only hours that must be paid as wages go to AFAS.

What about employees in Belgium?

They stay outside this integration if their payroll is not processed in AFAS. KoppelHet only sends hours of employees who exist in AFAS and reports the rest separately.

Technical details for IT

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

  • Protime is read through the Protime API (REST, /connector/protimeapi/api/v1/, OAuth 2.0 with scopes) from the collections calculated-totals (normalTimeDurationInMinutes, weeklyHours1-3DurationInMinutes, payPeriodHoursDurationInMinutes, flextimeBalanceInMinutes), paid-presences, validated-hours and absences (approvalLevel, isLocked). The date filter covers at most one year; changes through delta or webhooks. Employees are looked up with ?externalReferences=(people,@employee-number).
  • Protime is written with persons through personal-information and contracts through POST /contracts (scope connector-protimeapi-contracts.write) with contractHoursInMinutes, fullTimeEquivalentInMinutes, numberOfWorkingDaysPerWeek, numberOfDaysInContractPeriod (7 to 364, multiple of 7) and kind. Counters and absences only have read endpoints.
  • Hours go to AFAS through the UpdateConnector HrCompMut (corrections through HrCompMutGUID) and leave through HrAbsence. Employees and employments come from a dedicated GetConnector on change date.

Which fields are transferred

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

Field in ProtimeField in AFAS ProfitNotes
@employee-number (externe referentie)Medewerker (EmId)The AFAS employee number is the key in Protime
weeklyHours1-3, payPeriodHoursDurationInMinutesLooncomponent in HrCompMutOne pay component per type of hours, minutes converted to hours
Validated hoursLooncomponent overuren
date (per dag)Periode van de loonmutatie
Absence (approvalLevel Approved)Verlofboeking (HrAbsence)One leave type per absence definition
contractHoursInMinutesUren per week (rooster)Hours from AFAS converted to minutes
fullTimeEquivalentInMinutesVoltijdsuren van de cao of functie
numberOfWorkingDaysPerWeekDagen per week (rooster)
from en until (contract)Begin- en einddatum dienstverband

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.