Exact HR logoOracle NetSuite logo

Payroll to finance

Exact HR to NetSuite integration: payroll costs from Exact Online payroll as a journal entry on the Dutch subsidiary

With an integration between Exact HR (Exact Online payroll) and Oracle NetSuite, the payroll costs of every finalised payroll run automatically go to NetSuite as a journal entry, on that employer's subsidiary and per account and department. KoppelHet builds the journal entry from the paid pay components in Exact, because Exact provides no payroll journal through the API.

What the integration does

Organisations that use NetSuite OneWorld for group accounting and process Dutch payroll in Exact Online payroll receive a payroll report from Exact after every run and convert it into a NetSuite import by hand. Departments then end up on a catch-all line, and a closed period is only noticed on import.

  1. Payroll finalises the payroll run in Exact.
  2. KoppelHet fetches the finalised lines and totals them per pay component, department and cost centre.
  3. Through tables maintained by finance, component and department are translated to NetSuite account and department.
  4. KoppelHet creates one journal entry on the employer's subsidiary, in the period that belongs to the payroll run.
  5. Finance approves the journal entry in NetSuite, if approval is switched on.
Exact HR → KoppelHet → Oracle NetSuiteSOURCEExact HRTARGETOracle NetSuiteKoppelHetmapping · logging · monitoringExact HR → KoppelHet → Oracle NetSuiteSOURCEExact HRTARGETOracle NetSuiteKoppelHetmapping · logging · monitoring
Out: Paid pay components per period · Account per pay component · Department and class per line · Journal entry per subsidiary and period

What to watch for with Exact HR and Oracle NetSuite

  • For payroll costs the Exact Online API has no journal source, only the paid lines per component. KoppelHet adds those lines up into debit and credit lines for NetSuite itself. NetSuite only saves a journal entry if debit and credit balance, so KoppelHet checks that before sending.
  • A regular journal entry in NetSuite belongs to exactly one subsidiary. Every employer is its own division in Exact Online. KoppelHet therefore creates a separate journal entry per division on that employer's subsidiary, even when finance keeps several Dutch employers in one NetSuite account.
  • NetSuite does not allow posting in a closed period, and in a locked period only with a role allowed to override period restrictions. KoppelHet's integration role does not get that right. A payroll run for a locked period therefore becomes an alert to finance instead of a late posting.
  • If approval for journal entries is switched on in NetSuite, an entry only posts once the Approved box is ticked. KoppelHet leaves that box empty, so finance approves the payroll costs in NetSuite and control does not rest with the integration.
  • With every paid line Exact also returns the department, next to cost centre and cost unit. In NetSuite departments and classes can be recorded per line. KoppelHet puts the Exact department on the line as department, so payroll costs in NetSuite can be seen per department instead of on one line.
  • For pay components Exact distinguishes a normal and a special rate, for example for a bonus or holiday pay. KoppelHet can keep those as separate lines, so finance sees one-off rewards separately from monthly pay in NetSuite.
  • Tax fields on a journal entry are not supported through the NetSuite REST API. Payroll costs carry no VAT, so the integration does not need those fields; KoppelHet only sets account, amount, department, class and memo.

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

Who approves the journal entry?

Finance, in NetSuite. The integration leaves the Approved box empty if approval is switched on.

Does this work with several Dutch employers?

Yes. Every Exact division gets a fixed subsidiary, and each division gets its own journal entry.

Does this also work with Exact Globe?

No. This page assumes Exact Online payroll.

Technical details for IT

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

  • Exact Online through the REST API with OAuth 2.0, read only: /api/v1/beta/{division}/payroll/PayrollTransactionsByPayrollYear (PayrollYear, Period, Status 6, DepartmentCode, CostCenterCode, CostUnitCode, CalculatedAmount, PayrollRunCode; pro forma Frequency 11 to 15 left out) and /api/v1/beta/{division}/payroll/PayrollComponents (Type, TransactionType 1 normal, 2 special, 3 both; GLClassification).
  • NetSuite through SuiteTalk REST with OAuth 2.0 and a dedicated integration role without Override Period Restrictions: journalentry record with subsidiary, trandate, memo and the line sublist (account, debit, credit, department, class, memo). Tax fields not in REST.

Which fields are transferred

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

Field in Exact HRField in Oracle NetSuiteNotes
PayrollComponentCodeaccountTable per component, with GLClassification as a guide
DepartmentCodedepartmentAt line level
CostUnitCodeclassConfiguration choice of finance
CalculatedAmountdebit of credit
DivisionsubsidiaryOne subsidiary per journal entry
PayrollYear, Period en PayrollRunCodetrandate en memo

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.