Remote logoLoket logo

Payroll integration

Remote to Loket integration: your own employees from Remote HR in Dutch payroll

With an integration between Remote and Loket, your own employee of the Dutch BV in Remote becomes a concept employee in Loket, at the employer that belongs to the legal entity in Remote. EOR employees and contractors stay out of Loket, and an end date from the offboarding in Remote ends the employment in Loket.

What the integration does

Organisations that hire internationally through Remote and have their own Dutch BV manage their own employees in Remote and run Dutch payroll in Loket. New employees and leavers now go to the payroll bureau by email, and people moving from EOR to the own BV easily get lost.

  1. KoppelHet loads all direct employees of the Dutch entity from Remote once and compares them with Loket.
  2. After that the changes follow through webhooks from Remote.
  3. A new employee becomes a concept employee in Loket, and the new hire checklist starts.
  4. The payroll bureau completes BSN, pay, collective agreement and payroll tax credit and converts the concept.
  5. On an offboarding with an end date KoppelHet ends the employment in Loket, and adjusts that date if Remote still shifts it.
Remote → KoppelHet → LoketSOURCERemoteTARGETLoketKoppelHetmapping · logging · monitoringRemote → KoppelHet → LoketSOURCERemoteTARGETLoketKoppelHetmapping · logging · monitoring
Out: Concept employee with personal details · Employer from the legal entity · Start date and group seniority date · Address and work email · End of employment after offboarding

What to watch for with Remote and Loket

  • Remote has four kinds of employment, from EOR employee and contractor to direct employee and global payroll. KoppelHet only requests the direct_employee type, so an EOR employee whom Remote pays itself never appears in Loket.
  • For direct employees the Remote API can only list and fetch, not write. Loket data such as the employee number therefore does not go back to Remote; KoppelHet keeps the link between the two itself.
  • Remote's list is light and lacks country-specific data such as address and personal details. KoppelHet fetches the full employment per new or changed employee, and only after a notification, not for everyone at once.
  • Remote has no single notification for all changes. KoppelHet subscribes to the separate notifications for personal information, administrative details, status and work email, and runs a weekly full comparison as a safety net.
  • Each Dutch BV is its own legal entity in Remote and its own employer in Loket. KoppelHet picks the employer on the entity that employs the person, not on the country.
  • The end date sits with an ongoing offboarding in Remote and can still change during that offboarding. Loket can revise a termination, so KoppelHet passes on the new end date until the offboarding is complete.
  • Loket stores the BSN separately, with its own permissions. If the BSN does not come from the Dutch data in Remote, the payroll bureau enters it during the checklist; KoppelHet only writes it if those permissions have been granted.

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

Does the salary come from Remote?

Not by default. For direct employees we found no salary in the Remote API, so the payroll bureau records pay and collective agreement in Loket.

What happens when someone moves from EOR to our BV?

Remote then gets a new employment as a direct employee. That becomes a new concept in Loket; the EOR period stays with Remote.

Does this work if a payroll bureau manages Loket?

Yes. The bureau gives the integration access to your employer, and only to that employer.

Technical details for IT

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

  • Remote through the Remote API with a company token - GET /v1/employments with employment_type=direct_employee for the first load, GET /v1/employments/{employment_id} for the full employment (engaged_by_legal_entity_id, provisional_start_date, seniority_date, address_details, personal_details, termination_date). Webhooks through POST /v1/webhook-callbacks, including employment.personal_information.updated, employment.administrative_details.updated, employment.status.updated and employment.work_email.updated.
  • To Loket through the Loket REST API with OAuth - POST conceptemployees at the employer (employeeData, employmentData), PUT citizenservicenumber (separately authorised), POST workflow/InitiateNewHireChecklist and PATCH employments/{employmentId}/terminate with the last working day.

Which fields are transferred

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

Field in RemoteField in LoketNotes
employment idPersoneelsnummer of vrij veldFixed key
full_name en personal_detailsVoornaam, voorvoegsel en achternaam
engaged_by_legal_entity_idWerkgeverLookup per Dutch entity
provisional_start_dateBegindatum dienstverband (startDate)
seniority_dateDatum in dienst groep (historicalStartDate)Only if earlier than the start
address_detailsAdres
WerkmailE-mailadres voor selfserviceUpdated after employment.work_email.updated
job_titleFunctieThrough a lookup table
termination_dateEinde dienstverband (terminate)

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.