

Payroll integration
Oracle HCM to AFAS integration: Dutch payroll without retyping
With an integration between Oracle HCM Cloud and AFAS Profit, new Dutch employees, promotions, changes in hours, pay changes and terminations from Oracle reach AFAS automatically. Every change gets the effective date recorded in Oracle, even when it lies in the future, so payroll no longer re-enters anything.
What the integration does
International organisations that manage all employees in Oracle HCM Cloud and run Dutch payroll in AFAS Profit rebuild a new Dutch employee in AFAS, from BSN to schedule, as soon as payroll gets an email. A promotion or change in hours that Oracle already knows is sometimes only noticed by payroll when the employee asks about their payslip.
- HR abroad completes a new Dutch hire in Oracle, even when the start date is weeks away.
- KoppelHet picks up the new employee and checks whether they belong to the Dutch employer.
- The employee then appears in AFAS with personal data, contract, department, job, schedule, salary and bank account.
- A later promotion, change in hours or pay change in Oracle reaches AFAS with the same effective date.
- A termination in Oracle sets the end date on the AFAS contract, with the matching termination reason.
What to watch for with Oracle HCM Cloud and AFAS Profit
- Oracle also reports changes for contingent workers and hires that are not yet final. Only real employees of the Dutch employer go to AFAS; KoppelHet skips and records the rest.
- Oracle can record working time per week or per month. AFAS works with hours and days per week, so KoppelHet converts a monthly value, and the number of days is agreed per customer.
- In Oracle a salary can be recorded per year, month or hour, in its own currency. AFAS wants to know whether it is a fixed salary, hourly wage or scale salary. For a scale salary AFAS also asks for a step, which Oracle does not hold; payroll completes it.
- KoppelHet builds this integration the way Oracle recommends for new integrations, so it does not stop when Oracle phases out the older route.
- Oracle does not hold payroll tax credit and other tax choices by default. They come from an extra field in Oracle if you set one up, or payroll fills them in AFAS.
- If an employee of the Dutch entity lives in Belgium or Germany, that country is in the Oracle address. KoppelHet fills the different country of residence in AFAS, so payroll sees it in the first run.
- For the initial load and the check before close KoppelHet fetches all employees at once, as that is more reliable for large numbers. Day-to-day changes come in individually.
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
What if a retroactive change is entered in Oracle?
KoppelHet takes over the change with its effective date. AFAS settles the difference in the next payroll run.
What do we need to arrange in Oracle?
An integration user with read-only access, preferably limited to the Dutch employer. The integration does not need to write anything in Oracle.
Can payslips from AFAS go back to Oracle?
Oracle can store documents per person. Whether payslips should go there is agreed per customer; by default this integration runs from Oracle to AFAS.
What happens to employees who are already in AFAS?
At the start we match them once to the Oracle employee on BSN or employee number. Anyone who cannot be matched goes on a list for payroll to check first.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Oracle HCM Cloud is read through the employee Atom feeds (newhire, person and assignment updates, payupdate, termination) and the workers REST resource with child resources (work relationship, assignment, national identifiers, address). Oracle advises workers over the older emps resource.
- Feeds also fire for contingent and pending workers; filter on worker type employee and the Dutch legal employer. Working time from NormalHours with Frequency; salary from SalaryAmount and SalaryFrequencyCode.
- Initial load and reconciliation run through an HCM Extract. Tax fields optionally from a flexfield in Oracle.
- AFAS is written through the KnEmployee UpdateConnector, with AfasContract, AfasTimeTable, AfasSalary, AfasAgencyFiscus (including country of residence) and AfasBankInfo.
- Integration user in Oracle with read-only access to the employee feeds, workers and salaries. Oracle has a documentRecords resource for attachments per person.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Oracle HCM Cloud | Field in AFAS Profit | Notes |
|---|---|---|
PersonNumber | Medewerker (EmId) | Or in a free field if AFAS keeps its own number range |
FirstName | Voornaam (FiNm) | |
LastName | Voorvoegsel (Is) en Achternaam (LaNm) | Split the name prefix from the surname |
NationalIdentifierNumber | BSN (SoSe) | Only the number of the Dutch type |
StartDate (work relationship) | Begindatum contract (DaBe) | |
NormalHours en Frequency | Aantal uren per week (HrWk) | Converted when Oracle records hours per month |
DepartmentName | Organisatorische eenheid (DpId) | Through a lookup table |
JobCode | Functie (FuId) | Through a lookup table |
SalaryAmount en SalaryFrequencyCode | Salaris (EmSa) en Soort salaris (SaPe) | |
TerminationDate | Einddatum contract (DaEn) |
Related
Ashby → Oracle HCM Cloud
Ashby to Oracle HCM integration: an accepted offer on an opening becomes a pending worker
Bullhorn → Oracle HCM Cloud
Bullhorn to Oracle HCM integration: an approved placement of an employee becomes a pending worker
Carerix → Oracle HCM Cloud
Carerix to Oracle HCM integration: successful placement as a pending worker in Oracle HCM Cloud
Greenhouse → Oracle HCM Cloud
Greenhouse to Oracle HCM integration: accepted offer as a pending worker in Oracle HCM Cloud