Personio logoAFAS Profit logo

Payroll integration

Personio to AFAS integration: HR in Personio, payroll in AFAS Profit

With an integration between Personio and AFAS Profit, new Dutch employees, changes in hours, salaries, allowances and bonuses from Personio reach AFAS automatically, with the right effective date. HR no longer maintains two systems, and a bonus granted in Personio is no longer forgotten in AFAS.

What the integration does

Organisations with Personio for HR, leave and onboarding and a Dutch entity that runs payroll in AFAS Profit maintain two systems: every new colleague, change in hours and allowance goes into both Personio and AFAS. A bonus granted in Personio is sometimes forgotten in AFAS.

  1. HR enters a new Dutch colleague in Personio.
  2. KoppelHet picks up the change straight away and fetches the current details.
  3. The employee then appears in AFAS with contract, job, schedule, salary and tax data, possibly through the hiring workflow.
  4. For every pay period the fixed salary, allowances and bonuses of that month reach AFAS with their effective date.
  5. When HR enters an end date, the contract in AFAS is closed. Errors appear with the reason in the KoppelHet platform.
Personio → KoppelHet → AFAS ProfitSOURCEPersonioTARGETAFAS ProfitKoppelHetmapping · logging · monitoringPersonio → KoppelHet → AFAS ProfitSOURCEPersonioTARGETAFAS ProfitKoppelHetmapping · logging · monitoring
Out: Person with name, date of birth and address · Employment with start and end date · Department, position and cost centres · Fixed salary with weekly hours · Recurring and one-time allowances and bonuses

What to watch for with Personio and AFAS Profit

  • Personio only reports that something changed, not what. KoppelHet then fetches the current state and compares it with AFAS before writing anything.
  • Personio releases salaries and allowances per month. KoppelHet therefore reads them per pay period, which fits how AFAS calculates per period.
  • For a fixed salary Personio includes the weekly hours and the full-time hours. KoppelHet uses them to calculate the part-time factor for the AFAS schedule, without HR entering it separately.
  • Personio distinguishes fixed salary, recurring allowances, one-off payments and bonuses. Each kind gets its own pay component in AFAS, so a bonus is not processed as salary.
  • Personio only reports a departure on the end date itself. Because AFAS prefers to know earlier, KoppelHet picks up the end date as soon as HR enters it.
  • Personio has no Dutch tax fields, while AFAS asks for them on a new hire. We record the payroll tax credit and BSN in custom fields in Personio, or HR fills them in AFAS.
  • If the organisation has offices in several countries, only the employees of the Dutch entity go to AFAS.

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

Does Personio not run payroll itself?

Not for the Netherlands. That is why AFAS is the payroll and Personio the source for HR data.

What if an allowance in Personio has no counterpart in AFAS?

The change then waits with a notification in the platform, until the pay component exists in AFAS and has been linked.

Can payslips go back to Personio?

We look at that per customer as a separate flow. By default this integration only runs from Personio to AFAS.

Technical details for IT

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

  • Personio is read through webhooks (only person or employment ids, including employment.updated and employment.terminated) and the Personio API v2, with an API client (client ID and secret) with read access to persons, employments and compensations. Custom attributes such as BSN must be released for API access separately.
  • The compensations API returns at most one month per call; types FIXED_SALARY, RECURRING, ONE_TIME and bonus. Schedule from weekly_working_hours and full_time_weekly_working_hours.
  • AFAS is written through the KnPerson and KnEmployee UpdateConnectors (AfasContract, AfasTimeTable, AfasOrguniFunction, AfasSalary, AfasAgencyFiscus).

Which fields are transferred

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

Field in PersonioField in AFAS ProfitNotes
Persoon-idVrij veld bij de AFAS-medewerkerKey to link later webhooks to the right employee
Voornaam en achternaamVoornaam, voorvoegsel, achternaam (KnPerson)
BSN (custom attribute)BSNThe attribute must be released for API access
Startdatum dienstverbandBegindatum contract (AfasContract)
weekly_working_hoursRooster (AfasTimeTable)With full_time_weekly_working_hours as the basis for the part-time factor
Afdeling en positieOrganisatorische eenheid en functie (AfasOrguniFunction)Through a lookup table
amount + interval (FIXED_SALARY)Salaris (AfasSalary)Convert a YEARLY amount to a monthly salary
RECURRING en ONE_TIME compensatiesLooncomponenten in AFASA fixed counterpart per compensation type
KostenplaatsKostenplaats
Einddatum dienstverbandEinddatum contract

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.