ADP Workforce Now logoSage Payroll logo

Payroll integration

ADP Workforce Now to Sage Payroll integration: UK starters, pay and departments from ADP as an import file for Sage 50 Payroll

An integration between ADP Workforce Now and Sage Payroll prepares UK starters, pay changes and new departments from ADP Workforce Now every working day as CSV files for the Sage 50 Payroll Data Import. Sage 50 Payroll has no open API: payroll takes a backup and starts the import, but retyping from ADP is no longer needed.

What the integration does

Organisations that use ADP Workforce Now in the US and pay their UK subsidiary in Sage 50 Payroll email UK starters and pay rises to payroll or a bureau. Whoever copies the salary from ADP as an annual amount sometimes calculates differently from ADP itself.

  1. KoppelHet collects the events and queries the workers of the UK payroll group daily.
  2. KoppelHet fetches NI number and pay unmasked and compares with the previous file.
  3. New departments go in a separate file that payroll imports first.
  4. Payroll takes a backup and then imports the Employee Details file.
  5. Leavers and rehires are on a list for payroll.
ADP Workforce Now → KoppelHet → Sage PayrollSOURCEADP Workforce NowTARGETSage PayrollKoppelHetmapping · logging · monitoringADP Workforce Now → KoppelHet → Sage PayrollSOURCEADP Workforce NowTARGETSage PayrollKoppelHetmapping · logging · monitoring
Out: Departments and cost centres (company import) · Employee Details with NI number, start date and pay · List of leavers and rejected rows

What to watch for with ADP Workforce Now and Sage Payroll

  • ADP stores salary as an amount per period, per hour or per day; the annual amount is always a calculation by Workforce Now. KoppelHet copies the period amount or hourly rate as ADP stores it and calculates no annual amount itself, so Sage pays the same amount per period as ADP holds.
  • NI number, date of birth and pay amounts come masked from the workers API by default. For the Sage file KoppelHet requests unmasked data, after the customer has released the sensitive fields for the API Central project under Manage Profiles.
  • ADP only creates an event when someone changes something in Workforce Now itself, not for changes through the API. Because other integrations may also write to ADP, KoppelHet queries the UK payroll group daily with the payrollGroupCode filter, in pages of at most one hundred workers.
  • The RTI Payroll ID cannot be changed in Sage after import. For a new starter KoppelHet leaves it empty, so Sage creates it. On a worker.rehire event KoppelHet fills nothing in but puts the rehire on the list: Sage then asks case by case for a known previous ID with status 1 or an empty ID with status 0.
  • Sage 50 Payroll imports departments and cost centres with a company-level import. A new organisational unit from ADP therefore goes first in its own file, before the employees who refer to it.
  • An employee with several positions has one workerID in ADP and a positionID per position, and the workerStatus follows the primary position. KoppelHet builds the Sage row on that primary position, so a second role in the US does not produce a second UK employee.
  • On a worker.terminate event the leaver goes on the list with the file, with their date. Payroll records the leaver in Sage and produces the P45; the integration puts no leaving data in the import file.

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

Why not ADP for UK payroll?

This integration is for organisations that keep UK payroll in Sage 50 Payroll, in-house or with a bureau. Whether another setup fits better is something we discuss at intake.

Can the import also be automatic?

Only with the SDK from the Sage Developers Programme, which requires a subscription. That can be added later as an extension; the first version delivers files.

Technical details for IT

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

  • ADP Workforce Now through the Worker Management API: events worker.hire, worker.rehire and worker.terminate, and GET /hr/v2/workers with $filter=workers/workAssignments/payrollGroupCode eq '{code}', $top (at most 100) and $skip, Accept application/json;masked=false after release in Manage Profiles.
  • Sage 50 Payroll through File > Data Import with the CSV templates Employee Details and the company import for departments and cost centres, with a backup before every import. Automatic import is only possible with the .NET SDK from the paid Sage Developers Programme.

Which fields are transferred

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

Field in ADP Workforce NowField in Sage PayrollNotes
workerIDEmployee ReferenceUnique per client; never in the RTI Payroll ID
person/legalNameForename, Surname
person/governmentIDs (NI)NI NumberOnly unmasked
workAssignments (hireDate)Start Date
homeOrganizationalUnitsDepartment of Cost CentreMust exist in Sage
baseRemuneration (payPeriodRateAmount of hourlyRateAmount)Salary of uurtarief

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.