Payroll integration
Personio to Sage Payroll integration: bonuses, commissions and overtime from Personio as a file for Sage 50 Payroll
With an integration between Personio and Sage 50 Payroll, bonuses, commissions and overtime held as compensation in Personio go into an hours and rates file each pay period, which payroll loads into Sage 50 Payroll. KoppelHet puts them on payments already assigned to the employee in Sage, so they no longer reach payroll by spreadsheet.
What the integration does
Organisations with HR in Personio and a UK entity paid in Sage 50 Payroll often send overtime, bonuses and commissions to payroll by spreadsheet.
- Each pay period KoppelHet reads the compensations of the UK employees in Personio.
- KoppelHet produces a file with hours and rates in the Sage 50 Employee Payments (Hours and Rates) template.
- Payroll makes a backup and loads the file into Sage 50 Payroll through Data Import.
What to watch for with Personio and Sage Payroll
- Sage 50 Payroll has no open API. Payroll loads KoppelHet's file through Data Import, after a backup.
- The Hours and Rates template only adjusts payments already assigned to the employee in Sage. KoppelHet therefore puts bonuses, commissions and overtime on those existing payments.
- Personio's compensations API returns compensations per period of at most a month. KoppelHet therefore requests them per pay period.
- The compensations API returns every kind, including fixed salary and hourly pay. The Hours and Rates template only updates the payroll run entry, not the employee record in Sage. KoppelHet therefore only includes one-off amounts and bonus payouts; the fixed salary stays in Sage.
- Personio can filter compensations by legal entity. KoppelHet only requests those of the UK entity, so colleagues in other countries never end up in a file for Sage 50 Payroll.
- In Sage 50 Payroll an hours and rates import does not work for factored payments; through this template Sage only accepts hours worked or a rate per hour. At the start we record per compensation type in Personio which Sage payment it lands on and whether the amount goes in as hours or as a rate.
- Assigning a new payment to an employee goes through a separate template in Sage, Assign Employee Payments, and that cannot update existing payments. If an employee does not have the payment yet, KoppelHet puts them on a list for payroll instead of sending a line Sage will not process.
- Every amount in Personio has an ISO 4217 currency code. Sage 50 Payroll calculates in pounds, so KoppelHet does not include compensation in another currency in the file but reports it to payroll.
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 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.
Frequently asked questions
Can KoppelHet write into Sage 50 Payroll directly?
No. Sage 50 Payroll has no open API; payroll loads the file through Data Import.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- KoppelHet reads compensations with GET /v2/compensations (scope personio:compensations:read, per period of at most a month) and writes a CSV in the Employee Payments (Hours and Rates) template, which payroll loads after a backup through File > Data Import.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Personio | Field in Sage Payroll | Notes |
|---|---|---|
Compensatie BONUS_PAYOUT of ONE_TIME | Employee Payments (Hours and Rates) | On a payment already assigned to the employee |
person.id | Employee Reference | Through a lookup table, filled at the start |
legal_entity.id | Selectie van de Britse entiteit | Only employees of that entity go into the file |
type.name | Betaling in Sage 50 Payroll | Fixed lookup per compensation type |
amount (value, currency) | Hours of Rate | Only amounts in GBP |
effective_from | Loonperiode van het bestand | Requested with start_date and end_date |
Related
Ashby → Personio
Ashby to Personio integration: hires with hours and entity as new employees in Personio
Bullhorn → Personio
Bullhorn to Personio integration: placements as a person with employment in Personio
Carerix → Personio
Carerix to Personio integration: successful placement as a new employee in Personio
Greenhouse → Personio
Greenhouse to Personio integration: hired candidates as employees in Personio