Personio logoLoket logo

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.

  1. HR hires a new employee in Personio at the Dutch entity. KoppelHet creates a concept employee in Loket at the right employer.
  2. Payroll completes collective agreement, payroll tax credit and pension and converts the concept into an employee.
  3. Per payroll period KoppelHet fetches the compensations from Personio and converts them to pay, recurring pay components or one-off components in Loket.
  4. A change in contract hours goes to the employment's working hours.
  5. A termination in Personio ends the employment in Loket on the contract end date.
Personio → KoppelHet → LoketSOURCEPersonioTARGETLoketKoppelHetmapping · logging · monitoringPersonio → KoppelHet → LoketSOURCEPersonioTARGETLoketKoppelHetmapping · logging · monitoring
Out: Concept employee and employment · Fixed salary or hourly wage · Recurring allowances and deductions · One-off payments and bonuses · Working hours and end of employment

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, 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 · Complex

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 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 PersonioField in LoketNotes
Personio-idPersoneelsnummer of vrij veldFixed key
first_name en last_nameVoornaam en achternaam
BSN (custom attribute)BurgerservicenummerAttribute must be released for the API
legal_entityWerkgever
employment start dateBegindatum dienstverband
FIXED_SALARYLoon per verloningsperiode
HOURLY_SALARYUurloon
RECURRINGVaste looncomponent
ONE_TIME en BONUS_PAYOUTEenmalige looncomponent in de periode van uitbetaling
weekly_working_hours en full_time_weekly_working_hoursArbeidstijd en deeltijdfactor
termination_dateEinde 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.