
Payroll integration
Sympa to Loket integration: approved HR data from Sympa to Dutch payroll
With an integration between Sympa and Loket, new employees, contract rows, hours, salary, address and bank account of the Dutch entity flow from Sympa to Loket, but only once the row is approved in Sympa. A new employee arrives as a concept employee, and an end date in Sympa ends the employment in Loket.
What the integration does
Organisations that use Sympa as HR system and have their Dutch payroll processing in Loket, often through a payroll bureau, now pass on changes as an export from Sympa. That puts manual work between every approval and the payroll run.
- The Sympa administrator opens an interface with only the fields and tables Loket needs.
- KoppelHet queries the changed, approved rows for the Dutch entity a few times a day.
- A new employee becomes a concept employee in Loket; changes go to the existing employment with their effective date.
- The payroll bureau completes the Dutch payroll data and converts the concept.
- Before the cut-off KoppelHet compares the valid rows in Sympa with Loket and reports differences.
What to watch for with Sympa and Loket
- Sympa returns an approval status with every table row, from waiting for approval to declined and approved. KoppelHet only takes approved rows, so a salary proposal still waiting with the manager does not end up in the payroll run.
- An interface in Sympa may make a hundred requests per hour by default, for all kinds together. KoppelHet therefore queries changed rows in batches and filters inside Sympa, instead of querying per employee.
- Tables with validity in Sympa can be queried per period or per reference date. KoppelHet queries the rows valid in the Loket payroll period, so a retroactive pay rise falls in the right period.
- If Sympa serves several countries, KoppelHet filters on the Dutch entity in the request. Each Dutch BV goes to its own employer in Loket.
- Loket sets a termination on the last working day and adjusts pay, hours and absence with it. KoppelHet therefore uses the end date of the contract row in Sympa, not the date on which the termination was entered.
- Sympa shows the ten most recent requests with errors in the API panel. KoppelHet requests error information too, so an invalid value in Sympa reaches HR as an alert instead of an empty row in 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
What if a hundred requests per hour are not enough?
According to Sympa the limit can be raised through the contact person. It is usually not needed, because KoppelHet works in batches.
Does this work if a payroll bureau manages Loket for us?
Yes. The bureau gives the integration access to your employer in Loket.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Sympa through the Sympa Integration API (OData v4, api.sympahr.net) on its own interface with X-ApiKey - $filter on modified and entity, $expand on tables with $filter=Approval eq 5, since and until for rows with validity, errordata=true for error information and $top and $skip for batches. By default a hundred requests per hour per interface.
- To Loket through the Loket REST API with OAuth - POST conceptemployees (employeeData with iban, employmentData, workingHoursData, wageData), wages and workinghours per employment, PATCH terminate with the last working day.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Sympa | Field in Loket | Notes |
|---|---|---|
Personeelsnummer (datakaart) | Personeelsnummer | Fixed key |
Voornamen en achternaam | Voornaam, voorvoegsel en achternaam | |
Entiteit (datakaart) | Werkgever | Only the Dutch entity |
Contractregel begindatum | Begindatum dienstverband | |
Uren per week (contractregel) | Afwijkende uren per week (workingHoursData) | |
Salarisregel | Brutoloon (wageData) | With the row's effective date |
Adres | Adres | |
Bankrekening | IBAN | |
Contractregel einddatum | Einde dienstverband (terminate) |
Related
Greenhouse → Sympa
Greenhouse to Sympa integration: hired candidate as a data card with contract row in Sympa
Recruitee → Sympa
Recruitee to Sympa integration: hired candidates as a data card in Sympa
SmartRecruiters → Sympa
SmartRecruiters to Sympa integration: ready to onboard becomes a data card in Sympa
Sympa → 4PS Construct
Sympa to 4PS Construct integration: fitters of the Dutch employer from Sympa in 4PS, with cost centre as a dimension