Sage HR logoAFAS Profit logo

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.

  1. HR records the new employee of the Dutch entity in Sage HR, with the extra fields for hours and IBAN.
  2. KoppelHet reads Sage HR several times a day and sees the new employee.
  3. In AFAS the onboarding process starts with person, position, employment status and salary; HR completes the Dutch data.
  4. A new compensation or position in Sage HR goes to AFAS with its start date.
  5. After a termination in Sage HR the end date with the agreed reason is in AFAS.
Sage HR → KoppelHet → AFAS ProfitSOURCESage HRTARGETAFAS ProfitKoppelHetmapping · logging · monitoringSage HR → KoppelHet → AFAS ProfitSOURCESage HRTARGETAFAS ProfitKoppelHetmapping · logging · monitoring
Out: New employee through onboarding in AFAS · Position and team · Employment status · Salary from compensations · Termination with reason

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, 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

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 HRField in AFAS ProfitNotes
id en employee_numberMedewerkernummer of vrij veldFixed key
first_name, last_name, date_of_birth, street_first, post_code, cityKnPerson
personal_identification_numberBSNIf HR records the BSN there
employment_start_dateDatum in dienst
employment_status en irregular_contract_workerAfasContract (dienstbetrekking)Lookup table
position en position_codeFunctie
Custom field uren per weekAfasTimeTable
Compensation (amount, period, start_date)AfasSalary
Custom field IBANAfasBankInfo
termination_date en termination reasonDatum uit dienst en reden einde dienstverband

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.