HiBob logoSilae logo

Payroll integration

HiBob to Silae integration: French employees from Bob as salarié and emploi in Silae, with leavers and reason

An integration between HiBob and Silae turns a new employee of the French entity in Bob into a salarié with an emploi in the firm's Silae dossier, and passes pay changes and leavers with date and reason on to that emploi. Writing is only possible on the API account of a Silae partner, so KoppelHet works with the firm or payroll bureau that runs French payroll.

What the integration does

Organisations that do HR in Bob and have French payroll processed by a firm in Silae email that firm for every French starter and leaver. The payroll officer retypes name, contract type and salary, and a pay rise with an effective date in Bob often only reaches Silae a month later.

  1. HR records a new employee in the French entity in Bob.
  2. KoppelHet receives the webhook, fetches person, work and salary and checks the French social security number.
  3. KoppelHet creates the salarié with one emploi in the right Silae dossier, based on the firm's model employee.
  4. A new salary entry goes to the same emploi; a leaver sets end date and reason.
  5. Anything Silae rejects goes on a list for the firm and HR, with the error message.
HiBob → KoppelHet → SilaeSOURCEHiBobTARGETSilaeKoppelHetmapping · logging · monitoringHiBob → KoppelHet → SilaeSOURCEHiBobTARGETSilaeKoppelHetmapping · logging · monitoring
Out: Salarié with name and social security number · Emploi with contract type and start date · Base salary with effective date · End date and reason for end of employment

What to watch for with HiBob and Silae

  • Silae only grants write access to employees in the API model Usage interne RH (1B), which is reserved for partners such as accountants and payroll bureaus. A HiBob customer without its own partner contract therefore works through the firm's account, which enables API access per dossier.
  • HiBob sends a leaver as a lifecycle event at midnight after the effective date, in the site's time zone. For Silae that is too late to set up the final payslip properly. KoppelHet therefore reads the future entry in the lifecycle table as soon as HR records it, and sets dateFin with reason in Silae right away.
  • Silae asks for a motifFinEmploi on a leaver, such as 010 for resignation, 012 for dismissal or 138 for a rupture conventionnelle. The termination reasons in Bob can be configured freely per customer. KoppelHet records the Silae code per reason and holds back an unknown reason.
  • Bob stores salary in a historical table with an effective date per entry, and the table entry webhook includes that date. Silae creates a new emploi internally on a pay-relevant change, but the API keeps the same emploi ID. KoppelHet therefore sends a new salary entry to that existing ID with the date from Bob.
  • Deleting a salary entry in Bob does not produce a webhook. If HR corrects a wrong rise by deleting the entry, KoppelHet only sees it in the daily comparison, which reports the difference to the firm instead of silently leaving an amount in Silae.
  • Bob leaves out fields the HiBob service user has no rights to, without an error. Silae rejects a salarié without a valid fifteen-character NIR. KoppelHet therefore first checks an empty number on a French starter as a rights problem before it goes to the firm as an error.
  • Silae only accepts characters from Windows-1252, while Bob stores names in any script. KoppelHet converts letters outside that set and reports those employees, so the name on the payslip gets checked.

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 time off from Bob also go to Silae?

Not in the first version. The counting of paid leave depends on the Silae dossier; that 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.

  • HiBob through signed webhooks (employee.joined, table.entry.created and table.entry.updated for salary, work, employment and lifecycle, with effectiveDate) and the People API (POST /v1/people/search, GET /v1/people/{id}/salaries) with a service user that has rights per field category, for salary also on history.
  • Silae through https://payroll-api.silae.fr/payroll with the partner's OAuth 2.0 client credentials. ListeSalarieEmplois for the emploi IDs, POST /v1/SalarieEmplois/CreationSalarieEmplois with numeroDossier, matriculeSalarieModele, b flags per field, dateFin and motifFinEmploi on a leaver.

Which fields are transferred

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

Field in HiBobField in SilaeNotes
HiBob employee idmatriculeSalarieKey; without a matricule the salarié cannot be reached through the API
root.surnamenomNaissanceRequired in Silae
root.firstNameprenom
Franse sociale-zekerheidsnummer (payrollveld)numeroSecuriteSocialeFifteen characters with a valid key
Employment-tabel (contract type)codeContratTravail (01 CDI, 02 CDD)Lookup table
work.startDatedateDebutContrat en dateDebut
Salary-tabel (base, effectiveDate)salaireDeBase met salaireDeBaseEstHoraire
Lifecycle-regel Terminated (datum, reden)dateFin en motifFinEmploi

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.