
Payroll integration
BambooHR to ADP iHCM integration: salary, bonuses and commissions to Dutch payroll
With an integration between BambooHR and ADP iHCM NL, salary changes, bonuses, commissions and terminations of Dutch employees from BambooHR reach ADP automatically, in the pay period they belong to. HR only works in BambooHR, and payroll no longer copies any amounts.
What the integration does
Organisations that do HR in BambooHR and have Dutch payroll processed in ADP iHCM export a report every month and enter bonuses and commissions into ADP by hand. A bonus HR enters after the export only reaches the payslip a month later.
- ADP or payroll creates the new worker in iHCM; KoppelHet links it once to the BambooHR employee.
- BambooHR reports a new salary or a leaver; KoppelHet fetches the compensation table.
- The salary goes to the employment in ADP with its effective date.
- New bonus and commission rows go as a variable amount to the ADP period of the date they were earned.
- A termination in BambooHR ends the employment in ADP.
What to watch for with BambooHR and ADP iHCM
- For a changed employee BambooHR always returns all rows of a table, even if only one field changed. KoppelHet therefore compares the bonus and commission rows with what has already been sent to ADP, so an old bonus is not paid again.
- Bonuses and commissions are kept in BambooHR in their own tables with the amount and the date they were earned. ADP only links an amount to a run if the start and end date of the period match exactly. KoppelHet looks up the pay group period for that date and sends it along.
- BambooHR records a salary with a unit such as hour, week or year. ADP iHCM knows an amount and a salary code for salary. KoppelHet translates the unit to that code, and holds back an amount in dollars, because BambooHR is often set up from the United States.
- BambooHR webhooks report changes to regular fields, but not to custom tables. An organisation that keeps bonuses in a custom table gets no notification for them; KoppelHet reads that table hourly for changes.
- If HR changes a bonus that has already gone to ADP, the difference goes to ADP, for example minus fifty. If the submission has not been processed yet, KoppelHet replaces it; ADP then rejects the whole submission if one line is wrong, so KoppelHet checks all lines first.
- Commissions have no reason of their own in BambooHR, bonuses do. Each type gets its own variable field of the pay group in ADP, so payroll in iHCM can see what is a bonus and what is a commission.
- BambooHR retries a failed notification up to five times, the last after forty minutes. After that KoppelHet fetches the compensation table at the check before the cut-off, so a missed salary change still reaches ADP in time.
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
Does the integration create new workers in ADP?
No. ADP's public iHCM guides have no API for that. ADP or payroll creates the worker, after which the integration keeps it up to date.
What if a bonus is entered after the cut-off?
It then goes to the next period, and payroll sees that in the check. ADP marks a back-dated bonus as such itself.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- BambooHR through permissioned webhooks (HTTPS, HMAC-SHA256 with X-BambooHR-Timestamp and X-BambooHR-Signature; up to five retries after 0, 5, 10, 20 and 40 minutes; fields in custom tables not supported) and GET /api/v1/employees/changed/tables/{table}?since= for compensation, bonus, commission and employmentStatus. Fields include employeeNumber, payRate, paidPer, paySchedule; bonus with amount, date, reason and comment.
- ADP iHCM through event notifications (worker.hire), the Base Remuneration Change API (2416 and 2417, one event per call), the Pay Data Input API for iHCM NL (.add with batch ID in events/data/output/payDataInput/itemId; .replace with all fields, all or nothing) and the Worker Terminate API. Every URI in the Consumer Application Registry (CAR).
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in BambooHR | Field in ADP iHCM | Notes |
|---|---|---|
employeeNumber | payrollfilenumber | Linked once to the associateOID |
paySchedule | payrollGroupCode | Lookup per pay schedule |
Compensatie: rate | 2417 salarisbedrag | Euro only |
Compensatie: paidPer | 2416 salariscode | Hour, month or year to the ADP code |
Compensatie: startDate | effectiveDateTime | |
Bonustabel: amount en date | earningCode Vxxx en earnedPayPeriodStartDate | |
Commissietabel: amount en date | earningCode Vxxx (eigen veld) | |
Employment status: date bij status beëindigd | worker.terminate |
Related
Ashby → BambooHR
Ashby to BambooHR integration: hire, changed start date and employment status in BambooHR
BambooHR → 4PS Construct
BambooHR to 4PS Construct integration: employees from BambooHR in the 4PS company of their location
BambooHR → Active Directory
BambooHR to Active Directory integration: accounts in your own domain from HR
BambooHR → AFAS Profit
BambooHR to AFAS integration: contract and salary straight to payroll