You need an administrator login for Smartly and access to the Manage and Summary pages in RosterMates. Steps 1 and 2 are a one-off: about ten minutes for a small team. After that, each pay run is one export from RosterMates and one upload into Smartly.
Rather not do it yourself? The RosterMates team will set it up with you on a call, free. Book a free setup call.
Smartly is a popular New Zealand payroll system, and it can import timesheets from other software. RosterMates builds that file for you: approved hours, leave, allowances, public holidays and alternative holidays, already laid out the way Smartly expects. Smartly only needs to know two things before it can read the file: which number you have given its public holiday special leave, and which Smartly employee is which person in RosterMates.
This guide walks through that setup, then the few things worth knowing about pay rates, salaried staff, allowances and public holidays so your first pay run comes out right.
What goes from RosterMates to Smartly
Everything comes from approved timesheets and leave for the dates you export.
| In RosterMates | Arrives in Smartly as |
|---|---|
| Approved hours | Normal pay, at pay rate 1, 2 or 3 depending on the role worked |
| Hours worked on a public holiday | Public Holiday Worked (1.5), so Smartly pays time and a half |
| Public holiday worked on a normal working day | Also Alt. Public Holiday Earned: one alternative holiday |
| Public holiday off on a normal working day | Statutory Holiday Taken |
| Annual, sick, bereavement, family violence and alternative holiday leave, leave without pay | The matching Smartly leave type |
| Other leave types (study, jury service and so on) | Special leave, with a code you choose (the export asks for it) |
| Allowances | Allowances, with each one's Smartly code (the export asks for it), paid at the person's rate in Smartly |
| Overtime pay rules | Not in the file Smartly's own pay rate rules handle overtime |
Step 1: give Public Holiday Worked (1.5) a code in Smartly
This is how RosterMates tells Smartly that a shift fell on a public holiday, so Smartly applies the time and a half. You only do it once.
- Log in to Smartly.
- In the sidebar, select Settings, then Payroll settings.
- Select the Special Leave tab.
- Under Description, find Public Holiday Worked (1.5) and select it.
- Type a number into its code. We recommend 150, because Smartly doesn't use it for anything else. Smartly's codes are numbers only.
- Save.
The first time you export a pay period where someone worked a public holiday, the RosterMates export preview asks for this code. Type the same number, click Save & rebuild file, and RosterMates remembers it for every pay run after that. Until a code is saved, the preview warns you that those hours would go to Smartly at the normal rate.
Smartly switches it on per contract group. In Smartly, go to Settings → Payroll settings → Contract groups, choose the group (for example Waged employees), open Special Leave under Leave Entitlements and tick Public Holiday Worked (1.5). Repeat for any other group your staff are in.
Step 2: copy each employee's Smartly code into RosterMates
The file identifies people by their Smartly employee code, so each person in RosterMates needs theirs.
- In Smartly, select People in the sidebar. You'll see your employees with their employee codes.
- In RosterMates, go to the Manage tab and select the employee in the employee sidebar.
- Open the Employment tab and scroll down to Banking Details.
- Type their Smartly employee code into Payroll Employee ID, exactly as Smartly shows it, and save.
Repeat for everyone you pay through Smartly. You can't miss anyone by accident: the export preview lists every employee with their code, and anyone without one is flagged in red and left out of the file until you add it.
That's it: your next pay run
RosterMates is now ready to export to Smartly. Each pay run:
- In RosterMates, approve the pay period's timesheets. On a public holiday, fill in the public holiday table on the timesheet too (more on why below).
- Go to Summary, set the dates to the pay period, click Export and choose Smartly.
- Read the preview. It shows every employee and their code, public holidays in the period, any leave type or allowance that still needs a code, and which role goes as which pay rate. Then click Download CSV.
- In Smartly, open Timesheet import from the pay run options. Smartly asks that there are no unprocessed pays for that pay period.
- Upload the CSV, check the rows Smartly shows for errors or warnings, enter the Direct Credit Date and submit. Smartly creates the pays.
- Check the pays in Smartly, then process the pay run as usual.
If something needs fixing, correct it in RosterMates, export again and use Re-import timesheet in Smartly.
A few things to note
Salaried staff
If someone is on a salary rather than an hourly rate, set the salary in Smartly. There's no need to enter it in RosterMates as well when Smartly is your payroll. RosterMates sends their timesheet, leave and public holidays as usual, and Smartly pays their salary.
If you have already set them up as salaried in RosterMates, that's fine too: RosterMates then sends only their leave and allowances, and the export preview lists anything else (such as a public holiday they worked) for you to add in Smartly.
Allowances
Allowances on your RosterMates timesheets go into the Smartly file too. Smartly needs each allowance set up once:
- In Smartly, go to Settings → Payroll settings → Pay components. Find the allowance under Allowance, or add it, and note its code.
- Switch it on for each person who gets it and give it their rate: People → the employee → Payments → Allowances. Bulk assign an allowance on the Pay components screen does several people at once.
The first time you export a pay period with that allowance, the RosterMates export preview lists it with a box for its Smartly code. Type the code, click Save codes & rebuild file, and RosterMates remembers it for every pay run after that. An allowance without a code is left out of the file, and the preview lists who it affects.
The file tells Smartly how many of each allowance a person had in the pay period (hours, days, shifts, kilometres or payments). Smartly multiplies that by the rate on their Payments screen, so keep that rate the same as the allowance rate in RosterMates. If you changed the rate on a single timesheet line, the preview points it out, because Smartly pays every one at the same rate.
Mia's meal allowance is $15 a shift, and she had it on 3 shifts this fortnight. RosterMates sends 3 of the meal allowance with its Smartly code. Smartly pays 3 × the $15 rate on her Payments screen: $45.
Overtime
RosterMates sends every approved hour at the person's normal rate for the role they worked. If you pay overtime, set it up in Smartly's Pay rate rules (People → the employee → Pay rate rules tab → Add rule), for example time and a half after 40 hours a week. Smartly then moves the qualifying hours across for you.
Different pay rates for different roles
Skip this if everyone is paid one hourly rate. If someone is paid more in some roles than others, say a barista who also covers as shift supervisor, RosterMates and Smartly need the same rates in the same order.
Smartly gives each person a main pay rate plus up to two additional pay rates, so three in total. RosterMates fills them like this:
| Smartly | Comes from in RosterMates |
|---|---|
| Pay rate 1 (main rate) | Default Hourly Rate on the Employment tab, and any position left blank |
| Pay rate 2 | The first position, alphabetically, that has its own rate on the Assignments tab |
| Pay rate 3 | The second position, alphabetically, that has its own rate |
The numbering follows the person's positions, not the shifts they happened to work, so a role is the same pay rate every pay run.
Set it up in RosterMates
- Go to Manage, select the employee, and on the Employment tab set their Default Hourly Rate.
- On the Assignments tab, under Positions, type a rate into each position they're paid differently for. Leave the box blank for positions paid at the default rate.
Set it up in Smartly
- Go to Settings → Payroll settings and select the Contract groups tab.
- Choose the contract group (for example Waged employees), open Additional pay rates, set them to Active and give them a multiplier of 1. A multiplier of 1 lets you give each person their own dollar rate. Save.
- Go to People, open the employee and select Payments. Set their additional rates to the same dollar amounts as their position rates in RosterMates.
Mia's Default Hourly Rate is $25. In RosterMates she's assigned Barista (rate left blank), Cook at $27 and Shift Supervisor at $28.50. In Smartly, her main rate is $25, pay rate 2 is $27 (Cook comes first alphabetically) and pay rate 3 is $28.50. Barista hours go out at pay rate 1.
Two limits come from Smartly's side. A third position with its own rate has nowhere to go, so it shares pay rate 3, and the export preview warns you when that happens. And Smartly's pay rate rules use the same two additional rates, so plan them together: for example, pay rate 2 for a second role and pay rate 3 for overtime.
Public holidays: who decides what
Keep filling in the public holiday table on your RosterMates timesheet on every public holiday. That table is how RosterMates knows, person by person, whether the holiday was a normal working day for them (an "otherwise working day") and whether they worked. RosterMates also puts a weekend holiday on the right date for each person, using the Mondayised list on the same table.
From there, RosterMates tells Smartly who worked and who didn't, and Smartly does the paying:
| On the public holiday | RosterMates sends | Smartly pays |
|---|---|---|
| Worked, normal working day | Public Holiday Worked (1.5) + Alt. Public Holiday Earned | Time and a half, plus one alternative holiday on their balance |
| Worked, not a normal working day | Public Holiday Worked (1.5) | Time and a half |
| Day off, normal working day | Statutory Holiday Taken | Their usual day, worked out from their work pattern in Smartly |
| Day off, not a normal working day | Nothing | Nothing is owed |
For a public holiday someone had off, Smartly pays their regular hours from the work pattern set up in Smartly, not from the work pattern or hours in RosterMates. RosterMates tells Smartly who had the day off; Smartly decides how much the day is worth. If someone's usual hours change, update their work pattern in Smartly too.
Ana works Monday to Friday and worked 6 hours on Labour Day. RosterMates sends 6 hours of Public Holiday Worked (1.5) and one alternative holiday. Ben also works Mondays but had the day off: RosterMates sends Statutory Holiday Taken and Smartly pays him his usual Monday from his Smartly work pattern. Cara only works weekends and had the day off: nothing is sent, because nothing is owed.
Two more things RosterMates handles before the file is built. Paid leave that lands on a public holiday isn't sent as leave, because the holiday is paid instead. And if you're unsure whether a day was a normal working day for someone, the free otherwise working day calculator works it out from their pattern.
If Smartly shows an error
| What you see | What to check |
|---|---|
| Employee not found | Their Payroll Employee ID in RosterMates doesn't exactly match their code in Smartly |
| Public holiday hours paid at the normal rate | No code saved in the RosterMates export, or it differs from the code on Public Holiday Worked (1.5) in Smartly |
| Special leave rows rejected | The code isn't set up in Smartly, or that special leave isn't ticked for the person's contract group |
| A leave type is missing | Smartly has no built-in type for it. Set up a special leave code in Smartly and type the same number in the export preview |
| A role paid at the wrong rate | Their pay rate 2 and 3 in Smartly don't match their position rates in RosterMates (alphabetical order) |
| Allowance rows rejected | The allowance isn't switched on with a rate for that person in Smartly (People → the employee → Payments), or the code in the RosterMates export differs from its code in Smartly's Pay components |
| An allowance paid the wrong amount | The rate on their Payments screen in Smartly differs from the allowance rate in RosterMates |
One more option: pay your team from RosterMates
Most of this guide exists because two systems have to agree: matching codes, pay rate slots in the right order, work patterns and allowance rates kept up to date in two places. That's the price of sending timesheets from one system to another.
RosterMates also runs payroll. It's IRD-approved, and it pays from the same roster, timesheets, position rates, allowances, leave balances and public holiday table you already keep. There is nothing to export and nothing to match up. It works out PAYE, KiwiSaver, ESCT and student loan, emails payslips, handles leave payouts and final pays, makes a bank batch file and files your payday returns with IRD.
It is also part of the plan you already have. RosterMates is $8 per employee per month for the whole system: rostering, clock-ins, timesheets, leave and payroll. If you only want payroll, RosterMates payroll on its own is $1.50 per employee per month, with a $15 minimum that covers up to 10 staff, whatever your pay frequency. Smartly's Payroll plan is $2.60 per employee per pay run, plus a $51.50 monthly platform fee. Here is how they compare, per month (excluding GST):
| Team | Pay run frequency | Smartly (Payroll Only)Charged per pay run | RosterMates (Payroll Only)Charged per month | RosterMates (Everything)Charged per month |
|---|---|---|---|---|
| 5 | Weekly | $107.83 a month$13.00 per pay run (52 a year) + $51.50 a month platform fee | $15.00 a month | $40.00 a month |
| 5 | Fortnightly | $79.67 a month$13.00 per pay run (26 a year) + $51.50 a month platform fee | $15.00 a month | $40.00 a month |
| 10 | Weekly | $164.17 a month$26.00 per pay run (52 a year) + $51.50 a month platform fee | $15.00 a month | $80.00 a month |
| 10 | Fortnightly | $107.83 a month$26.00 per pay run (26 a year) + $51.50 a month platform fee | $15.00 a month | $80.00 a month |
| 20 | Weekly | $276.83 a month$52.00 per pay run (52 a year) + $51.50 a month platform fee | $30.00 a month | $160.00 a month |
| 20 | Fortnightly | $164.17 a month$52.00 per pay run (26 a year) + $51.50 a month platform fee | $30.00 a month | $160.00 a month |
| 50 | Weekly | $614.83 a month$130.00 per pay run (52 a year) + $51.50 a month platform fee | $75.00 a month | $400.00 a month |
| 50 | Fortnightly | $333.17 a month$130.00 per pay run (26 a year) + $51.50 a month platform fee | $75.00 a month | $400.00 a month |
| 100 | Weekly | $1,178.17 a month$260.00 per pay run (52 a year) + $51.50 a month platform fee | $150.00 a month | $800.00 a month |
| 100 | Fortnightly | $614.83 a month$260.00 per pay run (26 a year) + $51.50 a month platform fee | $150.00 a month | $800.00 a month |
RosterMates (Everything) also includes rostering, clock-ins, timesheets and leave. Smartly prices are from Smartly's published plans page (smartly.co.nz/plans) in October 2026, averaged over a year (52 weekly or 26 fortnightly pay runs ÷ 12 months). Smartly notes that banking transaction fees may also apply, and it offers tailored plans from 30 staff, so a larger team may pay less than the list price shown. Against the published prices of Smartly, Crystal Payroll, iPayroll, PayHero, Employment Hero and Xero (checked September and October 2026), RosterMates payroll costs less at every team size and pay frequency they list a price for; iPayroll quotes from 100 staff and Crystal from 500. Thankyou Payroll caps its monthly price, so it can cost less for teams over 265 staff or for 1 to 4 staff paid monthly, and it is free for registered charities. RosterMates pricing is at rostermates.com/nz/pricing.
If you already use RosterMates alongside Smartly, the payroll side is already paid for. Smartly is a good payroll system and the export above works well. But if you'd like one system instead of two, see how RosterMates payroll works or talk to us about moving across.