Deel logoIRIS Payroll logo

Payroll integration

Deel to IRIS Payroll integration: own UK employees from Deel as an employee in Staffology Payroll

An integration between Deel and IRIS Staffology Payroll creates an own employee of the UK legal entity in Deel as an employee at the right employer in Staffology, updates pay and sets the leaver details on leaving. EOR employees in the United Kingdom and contractors stay out of IRIS, because Deel pays them itself.

What the integration does

Organisations that use Deel as their HR system and pay their own UK Ltd in Staffology retype a UK starter in payroll. A pay rise in Deel and a leaver often only reach Staffology after an email from HR.

  1. HR creates an own employee at the UK legal entity in Deel.
  2. KoppelHet receives the webhook, picks the Staffology employer for the legal entity and fetches the profile.
  3. KoppelHet creates the employee in Staffology with name, address, start date and pay.
  4. On a change KoppelHet first reads the employee and writes the full record back with only the changed pay.
  5. A completed termination in Deel sets the employee in Staffology as a leaver with the last working day.
Deel → KoppelHet → IRIS PayrollSOURCEDeelTARGETIRIS PayrollKoppelHetmapping · logging · monitoringDeel → KoppelHet → IRIS PayrollSOURCEDeelTARGETIRIS PayrollKoppelHetmapping · logging · monitoring
Out: Employee with name, address and NI number · Start date · Pay in PayOptions · Leaver with leaveDate

What to watch for with Deel and IRIS Payroll

  • Deel calls creating a direct employee the route for employees paid by your own payroll provider. KoppelHet only follows those employees and only the UK legal entity. Someone Deel employs as EOR in the United Kingdom therefore gets no second payslip from Staffology.
  • Staffology has no PATCH on an employee; a PUT replaces the whole record. The Deel Employee Updated Direct webhook also does not say which field changed. KoppelHet therefore compares the profile with the previous state, reads the employee in Staffology and only puts back the changed field, so the tax code and other payroll fields stay as they are.
  • In Staffology each employee belongs to one employer, and the API key acts on behalf of a user with access to those employers. Deel gives a legal_entity_id per employee. If the organisation has two UK entities, KoppelHet records the employerId per entity and refuses an employee without a known entity.
  • Deel stores pay with a scale such as ANNUAL, MONTHLY, WEEKLY or HOURLY. Staffology calculates with PayOptions, with a period and a basis such as monthly or hourly. KoppelHet converts an annual salary to the amount per pay period of the employer and sends an hourly wage as an hourly rate, only in pounds.
  • Deel only returns the NI number in additional_details if the feature flag is on and personal data is not redacted. Without that setting payroll fills in the number in Staffology. KoppelHet then sends no empty field in the PUT, so a filled-in NI number does not disappear.
  • A termination in Deel goes through statuses such as PENDING, IN_PROGRESS and COMPLETED, and the last working day can still move in that time. KoppelHet only sets hasLeft and leaveDate in Staffology once the status is COMPLETED, and reports an ongoing termination to payroll earlier.

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 this also work with IRIS Earnie or other IRIS products?

This page is about Staffology Payroll, which has the open API. For other IRIS products we first check which import route exists.

Technical details for IT

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

  • Deel through the HRIS API with a bearer token: Employee Created Direct and Employee Updated Direct webhooks, GET /rest/people with employments, compensation, active_worker_termination_status and direct_employee_termination_last_day; additional_details only with feature flag.
  • Staffology Payroll REST API with an API key as password in Basic authentication: POST /employers/{employerId}/employee, GET and PUT on /employers/{employerId}/employee/{id} with the full record, PayOptions and leaverDetails (hasLeft, leaveDate).

Which fields are transferred

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

Field in DeelField in IRIS PayrollNotes
legal_entity_idemployerId in StaffologyLookup table per UK entity
first_name, last_namepersonalDetails (firstName, lastName)
addressespersonalDetails.address
additional_details (NI-nummer)personalDetails.niNumberOnly with feature flag; never overwrite an existing number
employment.start_dateemploymentDetails.startDate
compensation_details (salary, scale, currency)payOptions (basis, period, payAmount)
direct_employee_termination_last_dayleaverDetails (hasLeft, leaveDate)

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.