
Payroll integration
Sage HR to AFAS integration: employees of the Dutch entity in AFAS Profit Payroll
With an integration between Sage HR and AFAS Profit, new employees of the Dutch entity arrive in AFAS from Sage HR, with position, employment status, salary and termination. Payroll no longer has to retype data from Sage HR and only sees in AFAS what it has to complete itself.
What the integration does
Organisations headquartered in the United Kingdom that use Sage HR and run payroll for the Dutch entity in AFAS Profit now copy every hire by hand. Because Sage HR has no hours per week and no IBAN in its standard fields, payroll still collects that data separately.
- HR records the new employee of the Dutch entity in Sage HR, with the extra fields for hours and IBAN.
- KoppelHet reads Sage HR several times a day and sees the new employee.
- In AFAS the onboarding process starts with person, position, employment status and salary; HR completes the Dutch data.
- A new compensation or position in Sage HR goes to AFAS with its start date.
- After a termination in Sage HR the end date with the agreed reason is in AFAS.
What to watch for with Sage HR and AFAS Profit
- Sage HR sends no notifications on a change; the API describes no webhooks. KoppelHet therefore reads the employees a few times per working day and compares them with the previous state.
- Sage HR has no field for hours per week and no bank account in the API. We record both in custom fields in Sage HR, which the API returns per employee. If they are missing, HR gets a notification and the schedule in AFAS stays empty.
- Employees with the irregular_contract_worker flag in Sage HR get an on-call type of employment in AFAS. For the other employment statuses, such as Full-time, we agree the translation at the start.
- A departed employee disappears from the normal list in Sage HR and then sits in a separate list of terminations. KoppelHet reads both lists, otherwise a departure would never reach AFAS.
- A termination in Sage HR has a reason from a fixed list. We translate it to the reason for end of employment in AFAS, so the tax return gets the right code.
- Compensations in Sage HR have a start and end date, a period such as monthly and a category such as Salary. Only the Salary category goes to the salary in AFAS; other categories only become a pay component when agreed.
- When someone returns, HR records a rehire in Sage HR. KoppelHet creates a new contract in AFAS with the new start date, so the old employment stays intact.
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
How soon is a new employee from Sage HR in AFAS?
Within a few hours, at the next round past Sage HR. Before the payroll run KoppelHet compares both systems in full once more.
Do we need to set anything up in Sage HR?
Yes: enable the API for the account and add two custom fields, for hours per week and IBAN. After that HR works as it is used to.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Sage HR through the REST API on the account's own subdomain ({subdomain}.sage.hr/api) with the API key in the X-Auth-Token header - GET /employees with employment_status_history and position_history, GET /terminated-employees, GET /employees/{id}/custom-fields and GET /employees/{id}/compensations. Lists in pages of 50.
- AFAS through the HrOnboarding UpdateConnector (new employee) and KnEmployee with AfasContract, AfasTimeTable, AfasSalary and AfasBankInfo, under a dedicated app connector for this integration.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Sage HR | Field in AFAS Profit | Notes |
|---|---|---|
id en employee_number | Medewerkernummer of vrij veld | Fixed key |
first_name, last_name, date_of_birth, street_first, post_code, city | KnPerson | |
personal_identification_number | BSN | If HR records the BSN there |
employment_start_date | Datum in dienst | |
employment_status en irregular_contract_worker | AfasContract (dienstbetrekking) | Lookup table |
position en position_code | Functie | |
Custom field uren per week | AfasTimeTable | |
Compensation (amount, period, start_date) | AfasSalary | |
Custom field IBAN | AfasBankInfo | |
termination_date en termination reason | Datum uit dienst en reden einde dienstverband |
Related
Recruitee → Sage HR
Recruitee to Sage HR integration: hired candidates as employees in Sage HR
Sage HR → Active Directory
Sage HR to Active Directory integration: domain accounts per team, with an expiry date from the termination
Sage HR → ADP iHCM
Sage HR to ADP iHCM integration: compensation and leavers from Sage HR to Dutch ADP payroll
Sage HR → Arbodienst (SIVI)
Sage HR to the occupational health service via SIVI: time off requests of the sickness policy as absence reports