Sympa logoAFAS Profit logo

Payroll integration

Sympa to AFAS integration: new hires, contracts and salary to Dutch payroll

With an integration between Sympa and AFAS Profit, a new employee from Sympa arrives in AFAS as an employee with contract, schedule and salary, and approved changes follow with their effective date. Payroll only completes the Dutch payroll tax details and no longer copies anything from Sympa.

What the integration does

Groups that use Sympa as HR system in all countries and run payroll for a Dutch entity in AFAS Profit record new employees twice, first in Sympa and then in AFAS. Pay rises approved in Sympa sometimes reach AFAS a month late.

  1. The Sympa administrator creates an API interface with only the fields payroll needs.
  2. Every hour KoppelHet requests the employees changed since the previous round, and only their approved rows.
  3. A new employee arrives in AFAS with contract, schedule, salary and cost centre. Payroll completes payroll tax credit and other tax choices.
  4. A salary or hours change goes to AFAS with the effective date from Sympa, also when it lies in the future.
  5. An end date in Sympa closes the contract in AFAS.
Sympa → KoppelHet → AFAS ProfitSOURCESympaTARGETAFAS ProfitKoppelHetmapping · logging · monitoringSympa → KoppelHet → AFAS ProfitSOURCESympaTARGETAFAS ProfitKoppelHetmapping · logging · monitoring
Out: Employee with personal details and address · Contract with start and end date · Schedule with hours and days per week · Salary with effective date · Cost centre and department

What to watch for with Sympa and AFAS Profit

  • An API interface in Sympa has no fixed field list; the administrator chooses which fields it contains. We set up an interface with only what payroll needs, so reviews and other HR records stay outside the integration.
  • Sympa allows one hundred requests per hour per interface by default, for reading and writing combined. KoppelHet therefore requests only changed employees, in large pages, and schedules the initial load of all employees outside office hours.
  • Table rows in Sympa, such as salary and working time, can have a validity period. KoppelHet reads the row that applies on the effective date, so a rise from the first of next month also lands in AFAS with that date.
  • A table row in Sympa can still be awaiting approval or have been declined. Only approved rows go to AFAS; a row that is still waiting follows once it has been approved.
  • Sympa reads from a reporting database that lags slightly, usually less than a minute and sometimes up to half an hour. The check before the cut-off therefore runs with some margin, so a last-minute change is not missed.
  • AFAS works with hours and days per week and needs a step for a scale salary. Sympa environments set up for several countries do not hold these; the number of days is agreed per customer and payroll completes the step.
  • Sympa's activity log only shows the last ten requests. What went to AFAS per employee is therefore recorded in the logging of the KoppelHet platform.

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 the integration see everything in Sympa?

No. The administrator decides in Sympa which fields the interface contains. We only ask for the data needed for payroll.

What if a pay rise in Sympa has not been approved yet?

Then the integration waits. Once the row is approved, it goes to AFAS with its effective date and AFAS settles any difference in the next run.

Does anything go back to Sympa?

Not by default. Sympa can receive data through the same API; whether the AFAS employee number should go back, for example, is agreed per customer.

What about the GDPR?

You are the controller and KoppelHet is the processor, under a data processing agreement. The Sympa interface only holds the fields for payroll, and every action of the integration is in the audit logging.

Technical details for IT

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

  • Sympa is read through the Sympa Integration API (OData v4, JSON) on an interface the administrator creates in the API panel, with X-ApiKey or basic authentication. Changed employees with $filter on modified, paging with $top and $skip, valid table rows with since, until or at, and approved rows with $expand and Approval eq 5. Throttling by default one hundred requests per hour per interface.
  • AFAS is written through the KnEmployee UpdateConnector, with AfasContract, AfasTimeTable, AfasSalary and AfasBankInfo.

Which fields are transferred

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

Field in SympaField in AFAS ProfitNotes
Personeelsnummer (uniek veld van de interface)Medewerker (EmId) of vrij veldFixed key
Voornaam en achternaamVoornaam (FiNm), voorvoegsel (Is) en achternaam (LaNm)Split the name prefix
Persoonsnummer (BSN)BSN (SoSe)Only if it is recorded in Sympa
Startdatum dienstverbandBegindatum contract (DaBe)
Einddatum dienstverbandEinddatum contract (DaEn)
Uren per week (tabelregel met geldigheid)Aantal uren per week (HrWk)
Salaris (tabelregel met geldigheid)Salaris (EmSa) en soort salaris
Organisatie-eenheid (doelveld kostenplaatscode)KostenplaatsThrough a lookup table
BankrekeningBankgegevens (AfasBankInfo)

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.