FaLoket logo

Payroll integration

Factorial to Loket integration: changes to payroll, payroll results back in Factorial

With an integration between Factorial and Loket, new employees, contract changes, address and bank changes and terminations of the Dutch entity flow from Factorial to Loket automatically, as a concept employee or as a change on the employment. After the payroll run KoppelHet puts the outcomes from Loket, such as net pay, back into Factorial's payroll run.

What the integration does

Organisations that run HR in Factorial and have Dutch payroll processing in Loket, often through a payroll bureau, now pass on changes as an export or email. Afterwards the payroll outcomes only sit in Loket, while HR and finance look for them in Factorial.

  1. HR records a hire, a new contract version, an address or bank change or a termination in Factorial.
  2. KoppelHet receives the webhook and fetches the change, only for the Dutch legal entity.
  3. A hire becomes a concept employee in Loket; other changes go to the existing employment.
  4. The payroll bureau checks, completes and runs payroll in Loket.
  5. KoppelHet reads the outcomes per employee from Loket and puts them in Factorial's payroll run in one go.
Factorial → KoppelHet → LoketSOURCEFactorialFactorialTARGETLoketKoppelHetmapping · logging · monitoringFactorial → KoppelHet → LoketSOURCEFactorialFactorialTARGETLoketKoppelHetmapping · logging · monitoring
Out: Concept employee and employment · Hours and pay from the contract version · Address and bank account · Termination and its reversal · Payroll results per pay concept back in Factorial

What to watch for with Factorial and Loket

  • Factorial keeps a list of employee updates with types such as hiring, contract, address, bank, termination and legal_entity. KoppelHet filters that list on the Dutch legal entity and only takes types that affect Loket; Spanish types such as irpf are left out.
  • Factorial can reverse a termination, and reports it with a separate webhook. Loket has a reinstate action on the employment for that, so KoppelHet reverses a withdrawn termination in Loket too.
  • Factorial accepts payroll results from an external payroll provider in the payroll run. KoppelHet fills them after every completed payroll run in Loket, so gross, deductions and net are visible in Factorial.
  • Factorial only accepts those payroll results all at once. If one employee or pay concept is wrong, nothing is written; KoppelHet removes the employees named, reports them to HR and resends the rest.
  • Every payroll result in Factorial must include the net pay concept, and amounts go in cents. KoppelHet translates the pay components from Loket to the concepts in Factorial with a table the payroll bureau and HR agree on together.
  • Factorial retries a failed webhook up to twenty times within 48 hours and then disables the subscription. KoppelHet monitors the subscriptions and compares the updates with Loket before every cut-off, so no change is missing.
  • A new employee arrives in Loket as a concept and can first be validated only. KoppelHet uses that check to report missing data before the payroll bureau converts the concept.

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 Factorial run Dutch payroll itself?

No. Factorial prepares the data; the calculation and tax filing happen in Loket.

Do the payroll results have to go back to Factorial?

No, that is optional. Start with the changes to Loket; the way back can come later as an extension.

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.

  • Factorial through the Factorial API (version 2026-10-01 in the path) with OAuth 2.0 - GET resources/employee_updates/summaries with legal_entities_ids[], type[] and starts_on; contract versions and compensations; webhooks for Employee Create with contracts, Updates, Terminates and Unterminates and ContractVersion Creates and Updates. Back through POST resources/compensations/payroll_results/bulk_create (payroll_run_id; per employee_id items with payroll_concept_id and amount in cents; at most 1,000 amounts per request).
  • Loket through the Loket REST API with OAuth - conceptemployees (employeeData with iban, employmentData, workingHoursData, wageData), convertToEmployee with header X-ValidateOnly for validation only, wages and workinghours per employment, PATCH terminate and reinstate, and payslips or wage sheets per payroll run to read the outcomes.

Which fields are transferred

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

Field in FactorialField in LoketNotes
Factorial employee idPersoneelsnummer of vrij veldFixed key
legal_entity_idWerkgeverOnly the Dutch entity
Update hiring met starts_onConceptwerknemer met begindatum
Contractversie (uren, salaris)workingHoursData en wageData
Update addressAdres
Update bankIBAN
Webhook TerminatesEinde dienstverband (terminate)
Webhook UnterminatesHerstel dienstverband (reinstate)
Loket loonstrook per periodePayroll result per conceptAmount in cents, including net_pay

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.