
Payroll integration
BambooHR to Sage Payroll integration: UK employees from BambooHR as an import file for Sage 50 Payroll
An integration between BambooHR and Sage 50 Payroll prepares new and changed UK employees from BambooHR, with NI number, department and pay, as an Employee Details file that payroll imports into Sage. Sage 50 Payroll has no REST API, so the integration delivers files and a list of leavers, and payroll starts the import itself.
What the integration does
Organisations with HR in BambooHR and a UK entity paid in Sage 50 Payroll type new employees, address changes and pay raises into Sage again every month.
- KoppelHet creates an API user in BambooHR that only sees the UK employees, with a webhook on the agreed fields.
- Changes are collected until the agreed delivery date for the period.
- KoppelHet creates the Employee Details file and, for a new rate, the Hours and Rates file, with the date in the file name.
- Payroll makes a backup and imports the files through File, Data Import.
- Leavers are on a separate list that payroll processes in Sage.
What to watch for with BambooHR and Sage Payroll
- BambooHR has its own nin field for the NI number. KoppelHet only puts a UK starter in the Employee Details file if that field is filled; without an NI number the starter goes on a list for HR.
- Pay is stored in BambooHR as payRate with paidPer, from hourly to yearly. Sage's Hours and Rates template only changes the hours or rate of payments already assigned to an existing employee, and does not work for factored payments. KoppelHet therefore puts a new kind of payment on the list for manual entry.
- Since version 1.1 of the BambooHR API terminationDate is read-only and the end comes from the employmentStatus table. KoppelHet reads leavers from that table and puts them on a separate list, because payroll finishes a leaver in Sage itself.
- BambooHR webhooks work for fields, including custom fields, but not for fields in custom tables. If, for example, the UK pension choice is in such a table, KoppelHet fetches it in a round over changed table data before every delivery date.
- Sage 50 Payroll only imports files when a user starts the import. The RTI Payroll ID cannot be changed after import; KoppelHet leaves it empty so Sage creates it, and puts the BambooHR employee number in the reference.
- A BambooHR API key has the rights of the user who creates it, and webhooks through the API only see what that user may see. With a user that only sees the UK location, salaries from other countries never end up in a Sage file.
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
Does BambooHR have an integration with Sage 50 Payroll?
We found none. For the United Kingdom BambooHR mentions, among others, Xero and PayFit.
Can the file be imported into Sage automatically?
Not without the SDK from the paid Sage Developers Programme. Payroll starts the import, after a backup.
Do hours from a scheduling system go along too?
Not in the first version. That can follow later as an extension, as a separate timesheet file.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- BambooHR through permissioned webhooks (signed with SHA-256 HMAC in X-BambooHR-Signature, up to five retries), the employees API with fields from the field list (including nin, payRate, paidPer, department) and the employmentStatus table; custom tables through the changed table data endpoint.
- Sage 50 Payroll through File, Data Import with the CSV templates Employee Details and Employee Payments (Hours and Rates), or Advanced Data Import with own CSV or XLS files and a field mapping.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BambooHR | Field in Sage Payroll | Notes |
|---|---|---|
employeeNumber | Referentie in Sage | The RTI Payroll ID stays empty; Sage creates it |
firstName, lastName, dateOfBirth, gender | Persoonsgegevens in Employee Details | |
nin | NI-nummer | |
address1, address2, city, zipcode | Adresregels en postcode | |
department | Afdeling (Company Departments) | |
payRate met paidPer | Tarief van een bestaande betaling (Hours and Rates) | Only for payments already assigned to the employee |
terminationDate (via employmentStatus) | Lijst van vertrekkers |
Related
Ashby → BambooHR
Ashby to BambooHR integration: hire, changed start date and employment status in BambooHR
BambooHR → 4PS Construct
BambooHR to 4PS Construct integration: employees from BambooHR in the 4PS company of their location
BambooHR → Active Directory
BambooHR to Active Directory integration: accounts in your own domain from HR
BambooHR → ADP iHCM
BambooHR to ADP iHCM integration: salary, bonuses and commissions to Dutch payroll