
Payroll integration
Keka to Loket integration: hires, salary changes and exits from Keka in Loket
With an integration between Keka and Loket, a new Dutch employee from Keka arrives as a concept employee in Loket, and salary changes, variable payouts and an approved exit reach the employment with their date. Keka reports a salary change immediately; KoppelHet sets it in Loket from the effective date chosen in Keka.
What the integration does
Organisations that use Keka, often with a large team in India and a smaller team in the Netherlands, have Dutch payroll processed in Loket by a payroll bureau. Salary changes, bonuses and leavers then go by email, and dates and addresses from Keka have to be converted by hand.
- In Keka, actions under event triggers send a webhook to KoppelHet on a new employee, a salary change or an approved exit.
- KoppelHet fetches the employee and the salary and checks whether the person is in the Dutch pay group.
- A new employee becomes a concept employee in Loket; the payroll bureau completes the Dutch payroll details and converts the concept.
- A salary change goes to the pay from the effective date, a variable payout to the period of payout.
- An approved exit sets the notice date and ends the employment on the last day.
What to watch for with Keka and Loket
- On a salary change Keka sends the old and new amount, the old and new effective date and the currency, with dates such as Oct 21, 2024. Loket wants a wage record with a start date as year-month-day. KoppelHet converts the new effective date and creates the wage record with it; a change in a currency other than euro does not go through.
- Keka's salary contains variable amounts with their own payout date, separate from the fixed salary. In Loket these do not belong in the pay but in the period data. KoppelHet puts each variable amount in the period of the payout date, on a pay code agreed per variable component.
- By default Keka only returns salaries for employees who are still working. For a leaver's final payroll run KoppelHet also requests relieved employees, so a bonus paid out after the last working day still reaches Loket.
- Keka records when someone submitted their resignation and when they leave. Besides the last day Loket has a separate notice date, which counts for the notice period. KoppelHet fills both, and translates Keka's exit type into Loket's list of termination reasons.
- The address is stored in Keka as two free address lines with postal code and city. Loket asks for street, house number and addition separately, with at most twenty-four characters for the street. KoppelHet extracts the house number from the first line; an address that cannot be split unambiguously becomes a check item on the concept.
- Salaries in Keka can be filtered by pay group. KoppelHet only requests the pay group set up for the Netherlands, so Indian salary components such as provident fund never come near Loket.
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
Do we need to use Keka Payroll for the Netherlands?
No, Loket runs payroll. The salary of Dutch employees does have to be in Keka, in its own pay group; otherwise payroll sets the pay in Loket itself.
Who sets up the webhooks in Keka?
A Keka administrator with permission to manage event triggers. We provide the URL and the events.
Does leave from Keka go along?
Not in the first version. Leave and balances 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.
- Keka through the REST API with a token per tenant. GET hris/employees (lastModified, employmentStatus Working or Relieved, inNoticePeriod; currentAddress with addressLine1 and addressLine2, resignationSubmittedDate, exitDate, exitType, exitReason), GET payroll/salaries (paygroupIds, employmentStatus, working only by default; earnings, deductions, variables with payoutDate, effectiveFrom), pageSize at most 200. Webhooks through Settings, Communications, Event Triggers; EmployeeSalaryUpdated with previous and updated effective date.
- Loket through the REST API with OAuth - POST conceptemployees (address, cancellationNoticeDate), wages with start date, PATCH payrollperioddata for variable amounts and PATCH terminate with endOfEmploymentReason.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Keka | Field in Loket | Notes |
|---|---|---|
employeeNumber | Vrij veld in Loket | Fixed key |
firstName, middleName, lastName | Voornaam, voorvoegsel en achternaam | |
joiningDate | Begindatum dienstverband | |
currentAddress (addressLine1, addressLine2, zip, city) | Straat, huisnummer, toevoeging, postcode en plaats | |
salary: earnings (basis), effectiveFrom | Bruto loon met begindatum | |
salary: variables (amount, payoutDate) | Periodegegevens in de periode van uitbetaling | |
resignationSubmittedDate | Datum opzegging | |
exitDate, exitType, exitReason | Einde dienstverband en reden uit dienst |
Related
Keka → Active Directory
Keka to Active Directory integration: domain accounts per office, with expiry on the exit date
Keka → ADP iHCM
Keka to ADP iHCM integration: salary structure, variable payouts and leavers of the Dutch pay group to ADP
Keka → AFAS Profit
Keka to AFAS integration: Dutch employees from Keka in payroll
Keka → Arbodienst (SIVI)
Keka to the occupational health service via SIVI: sickness leave requests as absence reports