
Payroll integration
Personio to Loket integration: employees, hours and pay components to payroll
With an integration between Personio and Loket, a new employee from Personio arrives in Loket as a concept employee, and fixed salary, hourly wage, recurring allowances and one-off payments go to the right employment and the right period. Payroll reviews and completes the Dutch payroll details, instead of retyping Personio exports.
What the integration does
Organisations that run HR in Personio and have Dutch payroll processed in Loket, often through a payroll bureau, deliver a monthly export of compensations. It is translated into pay components by hand, so a one-off bonus sometimes misses the payroll run.
- HR hires a new employee in Personio at the Dutch entity. KoppelHet creates a concept employee in Loket at the right employer.
- Payroll completes collective agreement, payroll tax credit and pension and converts the concept into an employee.
- Per payroll period KoppelHet fetches the compensations from Personio and converts them to pay, recurring pay components or one-off components in Loket.
- A change in contract hours goes to the employment's working hours.
- A termination in Personio ends the employment in Loket on the contract end date.
What to watch for with Personio and Loket
- Personio has five kinds of compensation, from fixed salary and hourly wage to recurring allowances, one-off payments and bonuses. KoppelHet translates each kind to the right part of Loket, so a recurring travel allowance becomes a recurring pay component and a bonus a one-off component in the month of payment.
- Personio returns compensations for at most one month per request. KoppelHet therefore requests them per payroll period, so nothing falls between two requests.
- Personio holds both the contract hours and the hours of a full-time job. KoppelHet calculates the part-time factor for the working hours in Loket from them, so it matches the collective agreement standard the employer has set in Personio.
- BSN and bank account are kept in custom attributes in Personio, and they only come through the API if released for it. KoppelHet checks for every new employee that they are present, so no concept is created in Loket without a BSN.
- On a departure Personio records the last working day and the contract end date separately. For Loket the contract end date counts, so leave taken after the last working day is still paid.
- If Personio also serves entities outside the Netherlands, KoppelHet only includes employees of the Dutch legal entity, and each Dutch entity goes to its own employer in Loket.
- A new employee arrives in Loket as a concept. That way payroll keeps its review and completes the data Personio does not hold, before anyone enters the payroll run.
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
Which pay components do we use in Loket?
We define that at the start in a lookup table, per kind of compensation in Personio. New kinds without an agreement do not silently enter the payroll run, but arrive as a notification for payroll.
Does this also work if a payroll bureau manages Loket for us?
Yes. The bureau gives the integration access to your employer in Loket.
What about the GDPR?
You are the controller and KoppelHet is the processor, under a data processing agreement. Every action of the integration is in the audit logging.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Personio is read through webhooks (including employment.updated and employment.started) and the Personio API v2 (persons, employments with legal_entity, weekly_working_hours, full_time_weekly_working_hours and termination_date, compensations per period of at most one month with FIXED_SALARY, HOURLY_SALARY, RECURRING, ONE_TIME and BONUS_PAYOUT). Custom attributes must be released for the API.
- Loket is written through the Loket REST API with OAuth - concept employee, convert to employee, wages, deviating hourly wage, recurring pay components (benefits and deductions), working hours, payment information and end employment. Loket has an acceptance environment with test data.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in Loket | Notes |
|---|---|---|
Personio-id | Personeelsnummer of vrij veld | Fixed key |
first_name en last_name | Voornaam en achternaam | |
BSN (custom attribute) | Burgerservicenummer | Attribute must be released for the API |
legal_entity | Werkgever | |
employment start date | Begindatum dienstverband | |
FIXED_SALARY | Loon per verloningsperiode | |
HOURLY_SALARY | Uurloon | |
RECURRING | Vaste looncomponent | |
ONE_TIME en BONUS_PAYOUT | Eenmalige looncomponent in de periode van uitbetaling | |
weekly_working_hours en full_time_weekly_working_hours | Arbeidstijd en deeltijdfactor | |
termination_date | Einde dienstverband |
Related
Ashby → Personio
Ashby to Personio integration: hires with hours and entity as new employees in Personio
Bullhorn → Personio
Bullhorn to Personio integration: placements as a person with employment in Personio
Carerix → Personio
Carerix to Personio integration: successful placement as a new employee in Personio
Greenhouse → Personio
Greenhouse to Personio integration: hired candidates as employees in Personio