Deputy logoVisma Raet YouForce logo

Leave, absence and time

Deputy to YouForce integration: timesheets approved for pay as pay components per employment

With an integration between Deputy and Visma Raet YouForce, timesheets approved for pay in Deputy go to YouForce automatically as pay components, per employment and per date. Only once YouForce has processed the delivery does KoppelHet mark the timesheets as paid in Deputy, and new employees from YouForce are in the roster on time.

What the integration does

Organisations that schedule in Deputy and run Dutch payroll in Visma Raet YouForce export the timesheets per period and enter the hours per pay component in YouForce. Someone with two employments then easily gets the hours on the wrong number, and a shift changed in Deputy after the export falls outside the payroll run.

  1. HR records a new employee or change in YouForce, also when it takes effect later.
  2. KoppelHet places the employee in Deputy at the location that belongs to the organisation unit, with the employment number as payroll ID.
  3. Managers in Deputy approve first the time and then the pay.
  4. KoppelHet delivers the hours per pay rule as a pay component to YouForce and follows processing per ticket.
  5. Processed timesheets are marked as paid in Deputy; rejected lines appear as an alert in the platform.
Deputy → KoppelHet → Visma Raet YouForceSOURCEDeputyTARGETVisma Raet YouForceKoppelHetmapping · logging · monitoringDeputy → KoppelHet → Visma Raet YouForceSOURCEDeputyTARGETVisma Raet YouForceKoppelHetmapping · logging · monitoring
Out: Hours per pay rule, per employment and per date · Paid status in Deputy after processing in YouForce · Leave balance per leave type (back, optional)
Back: Hours per pay rule as pay component · Premium hours Deputy calculates with pay rules

What to watch for with Deputy and Visma Raet YouForce

  • YouForce books pay components on an employment, not on a person. Deputy stores the payroll ID per agreement at a location. KoppelHet puts the YouForce employment number there, so someone with a permanent and an on-call contract gets the hours on the right contract.
  • An elementCode in the delivery must exist in YouForce as a field code of the employment. Deputy gives each pay rule its own export code. Before the first period payroll records the elementCode per export code; a pay rule without a translation is not sent and is reported.
  • YouForce rejects a delivery in which the same elementCode appears twice, and accepts at most a hundred elements at a time. Deputy returns separate pay lines per timesheet, also for the same kind of hours on one day. KoppelHet totals them per elementCode and date and spreads them over deliveries, so each code appears only once per delivery.
  • YouForce processes a delivery later and first returns only a ticket number. A paid timesheet is locked in Deputy. KoppelHet therefore waits for the ticket status Complete before marking the timesheets as paid; on Error the timesheet stays correctable in Deputy.
  • Deputy marks timesheets as paid per pay period, and a single timesheet from another period makes the whole call fail. YouForce does not know those periods, as it works with the date per element. KoppelHet remembers per ticket which Deputy period belongs to it and returns the status per period.
  • YouForce records planned changes ahead, such as a transfer to another department from next month. KoppelHet only changes the location in Deputy on the effective date, so the current location can keep scheduling until that day.
  • A leave balance in Deputy is overwritten, not added to. YouForce supplies leave entitlements per employment and leave type, but only for the last two years and with a separate read scope. KoppelHet therefore sends the full balance per type, and only if you want it.

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 · Basic

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

Who calculates the premiums, Deputy or YouForce?

We agree that beforehand. If Deputy calculates the premium with a pay rule, it goes as its own pay component. If YouForce calculates it, we only send the worked hours.

What if YouForce rejects a line?

Then the timesheet stays unpaid in Deputy and YouForce's error message appears in the platform. After correction it goes in the next round.

Technical details for IT

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

  • Deputy is read through the resources Timesheet (TimeApproved, PayRuleApproved, PaycycleId) and TimesheetPayReturn (Value per PayRule), and through webhooks with a SHA-256 HMAC in X-Deputy-Secret. Marking as paid through POST /api/v1/payroll/mark/{periodid}/paid with TimesheetIdArray; the PeriodId comes from EmployeePaycycle. Employees through management/v2/employees with workplaces[].agreement.payrollId, leave balance through LeaveAccrual.
  • To YouForce through the WFM API, POST /{domain}/v1.0/PayComponents/{employment} with elementCode, value and effectiveDate per element; at most 100 elements and no duplicate elementCode per request. Processing is asynchronous; GET /{domain}/v1.0/PayComponents/{ticketId}/status returns None, InProgress, Complete or Error. Scope Youforce-WFM:Write_Basic.
  • YouForce is read with Get_Basic (Persons, Employments, Employment Planned Changes, Organization Units) on latestSync with from and to; leave entitlements with the Get_leave scope.

Which fields are transferred

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

Field in DeputyField in Visma Raet YouForceNotes
workplaces[].agreement.payrollIdDienstverband (employment) in de URL van PayComponentsThe employment number, not the person number
PayRule.PayrollCategory (exportcode)elementCodeMust exist as bo4FieldCode in YouForce
TimesheetPayReturn.Valuevalue
Datum van de timesheeteffectiveDate (yyyy-MM-dd)
YouForce organizationUnit (terug)primaryLocationThrough a table to Deputy locations
YouForce persoon en startdatum dienstverband (terug)firstName, lastName, startDate
YouForce Leave Entitlements (terug)LeaveAccrualThe full balance, Deputy overwrites

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.