Lucca logoNmbrs logo

Payroll integration

Lucca to Nmbrs integration: HR changes of the Dutch branch from Lucca to Nmbrs

With an integration between Lucca and Nmbrs, new employees, job changes, salary items and departures of the Dutch branch go from Lucca to Nmbrs, with the validity period recorded in Lucca. Lucca reports each change with a webhook, so the payroll bureau pays in Nmbrs with current data.

What the integration does

Anyone using Lucca for HR in France and beyond and having the Dutch branch paid in Nmbrs sends the payroll bureau an overview every month. A rise HR adjusts retroactively in Lucca does not always show up in it.

  1. HR changes an employee, employment, job position or pay item in Lucca.
  2. Lucca sends a webhook; KoppelHet fetches the current state.
  3. If the employee belongs to the Dutch branch, KoppelHet puts the change in the right Nmbrs company, in the period in which the effective date falls.
  4. An end date on the employment in Lucca becomes the termination date in Nmbrs.
  5. Before the cut-off KoppelHet compares Lucca and Nmbrs and reports differences.
Lucca → KoppelHet → NmbrsSOURCELuccaTARGETNmbrsKoppelHetmapping · logging · monitoringLucca → KoppelHet → NmbrsSOURCELuccaTARGETNmbrsKoppelHetmapping · logging · monitoring
Out: Employee with address and bank account · Employment and job over time · Salary and fixed allowances with validity period · Termination

What to watch for with Lucca and Nmbrs

  • Lucca keeps webhook events for two months and retries a delivery up to five times within about a day. KoppelHet acknowledges each event within the three seconds Lucca waits and processes it afterwards, so no change is lost when Nmbrs is slow for a moment.
  • A change to an employment in Lucca works retroactively. KoppelHet compares the new start or end date with what is already in Nmbrs and alerts the payroll bureau when a closed period is affected.
  • When HR adds a new fixed pay item of the same kind in Lucca, Lucca closes the previous one itself on the day before. KoppelHet reads that end date along, so two salaries do not apply side by side in Nmbrs.
  • A job position in Lucca is temporary and belongs to an employment; an employee has several over time. KoppelHet takes the job position valid on the effective date in the Nmbrs period, not simply the latest one.
  • Lucca records a bank account as IBAN or in a local format. Only an IBAN goes to Nmbrs; an account in another format becomes an alert for payroll.
  • Lucca aborts a request that takes longer than five seconds. KoppelHet only requests the employee concerned per webhook and keeps large lists for the check before the cut-off small per page.
  • The payroll bureau gives the integration access in Nmbrs to the companies of your Dutch branch only. The bureau manages payroll tax credit, collective agreement and pension; Lucca does not know those Dutch concepts.

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

What if our webhook receiver is unavailable for a while?

Lucca retries, up to five times in about a day. After that the check before the cut-off catches a missed change.

What does the payroll bureau need to arrange?

An integration in Nmbrs with access to your companies only, and agreeing the lookup table from Lucca pay kinds to pay components.

Does leave from Lucca go along too?

Not in this integration. Leave and absence to Nmbrs is a separate flow and 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.

  • Lucca API (v5) for employees, employee-personal-records (bankAccount with format iban or other), employments (legalEntity, start.date, end.date; PATCH is retroactive) and job-positions; webhooks through webhook-endpoints (3 second timeout, at most 5 attempts, events kept 2 months). Compensation through the older Compensation API (fixed-items; a new open item closes the previous one of the same kind on the day before). Requests longer than 5 seconds are aborted.
  • Nmbrs through the REST API with OAuth 2.0 at employer level. The SOAP API stops on 1 March 2027.

Which fields are transferred

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

Field in LuccaField in NmbrsNotes
employee.idPersoneelsnummer of vrij veld
givenName en familyNameVoornaam, tussenvoegsel en achternaam
employee-personal-record.birthDateGeboortedatum
employee-personal-record.bankAccount.accountIdentifier (format iban)IBAN
employment.legalEntityNmbrs-bedrijfOne Nmbrs company per Dutch entity
employment.start.date en end.dateDatum in en uit dienst
job-position: jobTitle, department, managerFunctie en afdelingThrough a lookup table
fixed-item: nature, amount, startsOn, endsOnSalaris of vaste looncomponent met periodeKind through a lookup table

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.