Answer
This guide explains how to import employee records into Lightning Payroll and, for New Zealand employees, how to import historic gross earnings so annual-holiday calculations are accurate from the start.
These are two separate imports. You can import employee records only, historic gross earnings only, or both together.
Download Example Files
Use these example CSV files as a starting point:
- NZ Employee Import Example CSV - use this to import employee details, leave balances and year-to-date figures.
- NZ Historic Gross Earnings Example CSV - use this to import previous gross earnings for annual-holiday average calculations.
Quick Start
- Download the example CSV file you need from the links above.
- Fill in your employee details, copying information from your previous payroll software where possible.
- Go to the Employees screen and choose Import Employees from CSV. In the desktop app, this is under Actions.
- Select your employee CSV. New Zealand companies can also select an NZ historic gross earnings CSV in the same step.
- Upload the file. Lightning Payroll will import the rows it can read and report any rows that need correcting.
- Open each employee afterwards to review or complete their details.
Import Employee Records
The employee CSV is used to set up employees in Lightning Payroll. A few fields are especially important: first name, last name, employment start date and pay period.
Most other fields are optional, but we recommend completing as much as you can. You can edit employee details, including shifts, allowances and other pay items, after the import is complete.
Employee CSV Field Reference
| Column | What it is | Example |
|---|---|---|
first_name | Employee's first name | Aroha |
last_name | Employee's surname | Ngata |
number | Your own employee number or staff ID | 1024 |
start_date | Employment start date | 15/04/2026 |
pay_period | Pay frequency | Fortnightly |
pay_rate_per_hour | Base hourly rate | 32.50 |
ird_number | IRD number | 123-456-789 |
nz_tax_code | NZ tax code | M |
has_student_loan | Whether the employee has a student loan | true |
no_declaration | Whether no IR330 declaration has been provided | false |
kiwisaver_employee_rate | Employee KiwiSaver rate | 0.03 |
kiwisaver_employer_rate | Employer KiwiSaver rate | 0.03 |
kiwisaver_status_code | KiwiSaver membership status | AK |
kiwisaver_existing_action | Action for an existing KiwiSaver member | |
esct_rate | Employer superannuation contribution tax rate | 0.175 |
employer_contrib_tax_method | How employer contributions are taxed | ESCT |
employer_contrib_paye_fraction | PAYE portion when using the Split method | |
nz_annual_holidays_weeks | Opening annual-holidays balance, in weeks | 2.5 |
nz_sick_days | Opening sick-leave balance, in days | 10 |
nz_alt_holiday_days | Opening alternative-holiday balance, in days | 1 |
ytd_as_at_date | The date your YTD figures are accurate as at | 2026-04-01 |
ytd_ordinary_time | YTD gross ordinary-time earnings | 18500.00 |
ytd_paye | YTD PAYE deducted | 3200.00 |
ytd_student_loan | YTD student-loan deducted | 410.00 |
ytd_kiwisaver_employee | YTD employee KiwiSaver contributions | 555.00 |
ytd_kiwisaver_employer | YTD employer KiwiSaver contributions | 555.00 |
ytd_kiwisaver_esct | YTD ESCT on employer contributions | 97.00 |
Year-To-Date Figures
Year-to-date (YTD) figures let you carry an employee's earnings and deductions forward from a previous payroll system.
Enter the date the figures are accurate as at in ytd_as_at_date, then enter the matching totals in the relevant YTD columns.
YTD figures are separate from the historic gross earnings import described below.
Accepted Values for Coded Fields
Some CSV columns accept only specific values. Enter the short code shown below in your CSV.
nz_tax_code - the employee's tax code from their IR330 form. For a student-loan version of a code, use the base code below and set has_student_loan to true.
M | Main income, standard rate |
ME | Main income, eligible for the Independent Earner Tax Credit (IETC) |
SB | Secondary income, total annual income up to $14,000 |
S | Secondary income, total annual income $14,001 to $48,000 |
SH | Secondary income, total annual income $48,001 to $70,000 |
ST | Secondary income, total annual income $70,001 to $180,000 |
SA | Secondary income, total annual income over $180,000 |
CAE | Casual agricultural employee |
EDW | Election day worker |
NSW | Recognised seasonal worker, non-resident |
STC | Special tax code, tailored rate issued by Inland Revenue |
ND | No declaration, no IRD number supplied or the IR330 was not completed |
kiwisaver_status_code - the employee's KiwiSaver status. Leave blank if not set.
AE | Auto-enrol, for a new employee eligible for KiwiSaver |
AK | Existing KiwiSaver member |
OK | Opting in to KiwiSaver |
NK | Not eligible for KiwiSaver |
CT | Casual or temporary employee |
kiwisaver_existing_action - only needed for an existing employee changing their KiwiSaver arrangement. Leave blank for no action.
EE | Existing employee opting in |
EA | Existing employee auto-enrolled |
employer_contrib_tax_method - how the employer's KiwiSaver contribution is taxed.
ESCT | Tax the contribution as ESCT, which is the most common option |
PAYE | Treat as salary or wages under RD 68 |
SPLIT | Part PAYE under RD 68, remainder ESCT |
Rates and other set-value columns:
kiwisaver_employee_rate:0.00,0.03,0.04,0.06,0.08or0.10kiwisaver_employer_rate:0.03,0.04,0.06,0.08or0.10esct_rate:0.105,0.175,0.30,0.33or0.39pay_period:Weekly,FortnightlyorMonthlyhas_student_loanandno_declaration:trueorfalse
Import Historic Gross Earnings
Historic gross earnings are used for New Zealand annual-holiday calculations. Annual holidays are valued using a rolling 52-week average of gross earnings, also known as Average Weekly Earnings.
If an employee was paid outside Lightning Payroll during any part of the last 52 weeks, import their historic gross earnings so the average is accurate from their first leave payment in Lightning Payroll.
When to Import Historic Gross Earnings
- During the employee import: New Zealand companies can select a historic gross earnings CSV in the same import step as the employee CSV. This is best when setting up several employees at once.
- On its own later: You can import a historic gross earnings CSV without an employee file from the same import screen. This is useful when adding employees one at a time or back-filling pay history later.
Historic Gross Earnings CSV Requirements
Each row needs the following details:
pay_date- the date the pay was made. Accepted formats include15/04/2026and2026-04-15.gross_earnings- the gross earnings paid for that pay period.employee_numberorird_number- used to match the row to an employee.ird_numberis preferred where available. If both are supplied, they must match the same employee.
The historic gross earnings template can also be downloaded from within Lightning Payroll when starting a CSV import.
What Happens During the Import
Lightning Payroll checks each row as it imports. Rows that can be read are imported. Rows that cannot be used are reported back so you can correct the CSV and upload it again.
A row may be reported if:
- the file is missing the
pay_dateorgross_earningscolumn; - the file is missing both
employee_numberandird_number; - the
pay_dateis not a valid date; gross_earningsis not a valid number;- the IRD number or employee number does not match an employee in the company;
- the
pay_datefalls on or after an existing Lightning Payroll pay for that employee.
The last rule prevents double-counting. Pays already processed in Lightning Payroll already contribute to the 52-week average, so historic gross earnings should only cover the period before the employee's first Lightning Payroll pay.
Important Notes About Historic Gross Earnings
- Historic gross earnings are used only for the rolling 52-week average that values annual holidays.
- They do not create historical pays or payslips.
- They do not create or update YTD figures.
- If you need to carry forward year-to-date totals, enter those in the employee CSV instead.
Migrating From Another Payroll System
Ask your previous payroll system for a per-pay gross earnings report covering the last 12 months. Then reshape the report into the required columns: pay_date, gross_earnings, and either ird_number or employee_number.
Troubleshooting
| Message | What to do |
|---|---|
CSV must include pay_date and gross_earnings columns |
Check the header row of your historic gross earnings file. Both columns must be present and spelled exactly. |
CSV must include employee_number or ird_number |
Add at least one identifier column so each row can be matched to an employee. ird_number is preferred. |
Invalid pay_date |
Use a recognised date format, such as 15/04/2026 or 2026-04-15. |
| Gross earnings is not a valid number | Remove currency symbols and thousands separators. Enter the amount as plain digits, such as 1850.00. |
| IRD or employee number does not match an employee | Confirm the identifier matches an employee already in the company. Import or add the employee first, then import their history. |
| Date on or after an existing Lightning Payroll pay | Only import history for periods before the employee's first Lightning Payroll pay. Remove any overlapping rows. |
| NZ tax code or IRD number is invalid | Choose a valid NZ tax code and enter a valid IRD number, or tick No declaration if the employee has not provided one. |
Already using Lightning Payroll elsewhere? If you are moving employees between Lightning Payroll database files, rather than coming from other payroll software, you can export them from the other file to produce a ready-to-import CSV. For more information, see How Do I Export Employees Or Merge Lightning Payroll Databases?