Darwinbox logoLoket logo

Payroll integration

Darwinbox to Loket integration: hires, pay and approved departures of the Dutch entity in Loket

With an integration between Darwinbox and Loket, a new employee of the Dutch group company arrives from Darwinbox as a concept employee in Loket, and pay, fixed allowances, one-off payments and an approved departure reach the employment with their effective date. Payroll only completes the Dutch payroll details in Loket, and a revoked separation in Darwinbox makes the employment in Loket active again.

What the integration does

Organisations that run HR for all countries in Darwinbox and have the Dutch entity paid in Loket send the payroll bureau a list of new people, rises and leavers every month. Darwinbox often works in annual amounts and has separations that are later revoked; in Loket that means manual work and corrections afterwards.

  1. Every night KoppelHet fetches the Darwinbox employees activated or changed since the previous run, and keeps only those of the Dutch group companies.
  2. A new employee becomes a concept employee at the right employer in Loket; the new hire checklist starts there.
  3. The payroll bureau completes collective agreement, payroll tax credit and pension and converts the concept into an employee.
  4. Compensation changes and extra payments go to the employment in Loket with their effective date.
  5. An approved separation ends the employment; if the separation is revoked in Darwinbox, KoppelHet reverses the termination in Loket.
Darwinbox → KoppelHet → LoketSOURCEDarwinboxTARGETLoketKoppelHetmapping · logging · monitoringDarwinbox → KoppelHet → LoketSOURCEDarwinboxTARGETLoketKoppelHetmapping · logging · monitoring
Out: Concept employee with name, date of birth and employer · Pay per payroll period with start date · Fixed allowances and one-off payments · End of employment, or reversing it

What to watch for with Darwinbox and Loket

  • A separation in Darwinbox has the status Approved, Pending or Revoked. KoppelHet only sets the end date in Loket on Approved. If an approved separation is later revoked, KoppelHet uses Loket's function to reverse the termination, so the employment is active again without the payroll bureau repairing it by hand.
  • Extra payments in Darwinbox have a frequency, such as one-time or weekly, and possibly a stopped date. A one-off payment lands in Loket in the period data of the period containing the payment date. A recurring payment becomes a fixed pay component that ends on the stopped date from Darwinbox.
  • Darwinbox and its extra payments carry a currency per amount. Loket calculates in euro. KoppelHet holds back a component in another currency with an alert to HR, instead of putting a converted amount into the payroll run.
  • Darwinbox returns the change history with an effective date per change. Loket only accepts a new working hours record with a start date after the previous record and closes that previous one itself. KoppelHet therefore sends changes in order of effective date; a correction going back before the last Loket record becomes a task for the payroll bureau.
  • Darwinbox has first name, middle name and last name. Dutch prefixes such as van der sit in the last name or the middle name there, while Loket has its own prefix field that drives the salutation and the payslip. KoppelHet splits off known prefixes and the payroll bureau sees this when converting the concept.
  • Darwinbox can receive payslips from an external payroll. The Loket API, however, only provides payslips to Loket's own application, not to external parties. Dutch employees therefore collect their payslip in Loket's employee portal; KoppelHet does not promise a payslip back to Darwinbox.
  • KoppelHet finds new people through the activation date in Darwinbox, separate from other changes. That way a hire that is only activated on the first working day still reaches Loket as a concept, and Loket's checklist does not wait for another change to the same employee.

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

Can the payslip from Loket go back to Darwinbox?

Not through the API: Loket only makes payslips available in its own application. Employees find their payslip in Loket's employee portal.

What happens if a separation in Darwinbox is revoked?

If the end date was already in Loket, KoppelHet reverses the termination. If it was not there yet, nothing happens in Loket.

Do leave balances go to Loket too?

Not in the first version. Leave from Darwinbox to Loket can be added later as an extension.

Technical details for IT

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

  • Darwinbox through the REST API with API key and datasetKey - masterapi/employee with last_modified or date_of_activation, UpdateEmployeeDetails/employeehistory with filter_on_effective_date, UpdateEmployeeDetails/separationDetails (employee_ids and separation_status required), payrollapi/componentctcbreakup and payrollapi/componentextrapayments (payment_frequency, payment_date, stopped_date, payment_currency, filter group_company). Dates as dd-mm-yyyy.
  • Loket through the REST API with OAuth - POST conceptemployees per employer, InitiateNewHireChecklist, wages and workinghours per employment (chain validation on start date), benefitsanddeductions, PATCH payrollperioddata, PATCH terminate (endDate is the last day, endOfEmploymentDueToIllness required with an end date) and PATCH reinstate. GetPayslipsByEmploymentIdAndPayrollRunId is only available to the Loket application.

Which fields are transferred

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

Field in DarwinboxField in LoketNotes
employee_idPersoneelsnummerFixed key between both systems
first_name, middle_name, last_nameVoornaam, voorvoegsel en achternaamPrefixes such as van or de set separately
date_of_birthGeboortedatum
group_company_nameWerkgeverLookup table, one employer per Dutch entity
date_of_joiningBegindatum dienstverband
componentctcbreakup (basiscomponent)Bruto loon per periode met begindatum
componentextrapayments (One-Time)Periodegegevens in de periode van payment_date
componentextrapayments (terugkerend)Vaste looncomponent met einddatum
separationDetails (Approved)Einde dienstverband (laatste dag)

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.