Skip to main content

Flexi-CSV

Import pay transactions, create or update employee records, and manage agency payments using a CSV file.

Flexi-CSV is accessed from the Import function in the Payrun screen.

The importer allows you to select an import profile and map the columns in your file to the information SmoothPay expects. Your file does not need to use the same column order as the importer.

Flexi-CSV can accommodate exports from many external systems, including time and attendance software. If you are unsure whether an export is suitable, contact support with a sample file.

Available import profiles

The selected import profile determines what the file will create or update, and which mapping options are available.

Import profile

Purpose

Timesheets (column per time type)

Imports time-based transactions into the Payrun screen, using separate columns for each supported time type.

Pay transactions

Imports individually defined Work, Leave, Allowance and Sundry Deduction transactions into the Payrun screen.

Employees (new)

Creates new employee records.

Employees (update)

Updates existing employee records.

Agency payments

Creates or updates employee agency payments, including debts, loans and recurring deductions.

DEV: Leave balances

Imports employee leave balances, generally as a one-off step when migrating payroll data into SmoothPay.

DEV: Pay history

Imports employee pay history, generally as a one-off step when migrating payroll data into SmoothPay.

The developer import profiles are available to site owners. Make a backup before using these profiles.

For more information about the other import methods available in SmoothPay, refer to:

Prepare your file

Check the following before importing:

  • File format: Save the file as CSV (comma delimited).

  • Cell formatting: Use plain text and avoid unnecessary special characters. Enter dates in the format required by the selected mapping.

  • Numeric values: Do not include currency symbols or thousands separators. For example, enter 52000.50, rather than $52,000.50.

  • Employee identification: Include a Badge# column so SmoothPay can identify the employee.

  • Paycodes: When using Pay transactions, include the paycode’s Abbreviation or a supported alias code.

  • Backup: Make a backup before using Employees (new), Employees (update) or any developer import profile. Restoring a backup is easier than manually reversing changes to employee records.

Existing pay inputs

Payrun imports add transactions to the current pay inputs. Importing the same data twice without clearing the previous entries creates duplicate transactions. Separate files containing different transactions can be imported into the same payrun.

Standard pay templates are loaded alongside the imported transactions, so include these when checking the resulting pay inputs.

If you need to start again and clear all current pay inputs:

  1. Select Who to pay.

  2. Choose None.

  3. Click OK.

Employee Badge# matching

The standard import profiles use Badge# to identify employee records.

Important: When imported transactions use the Badge# of a terminated employee, SmoothPay automatically creates a new employee record.

To avoid this:

  • Assign a new Badge# to each new employee record, including returning employees; or

  • Remove the Badge# from the old employee record when terminating the employee.

Open Flexi-CSV

  1. Open the Payrun screen.

  2. Click Import on the control bar.

  3. Select Flexi-CSV.

Select your file and import profile

  1. Click Click to select CSV file and select your file, or drag the file onto that area.

  2. Select the required import profile from the dropdown at the top right of the window.

Map the file columns

Mapping tells SmoothPay what each column in your CSV file represents.

Each row in the mapping panel represents a column from the CSV file. Data content shows a value from the record being previewed, and Mapped to shows how that field will be imported.

For example, a column containing employee badge numbers should be mapped to Badge#.

  1. Select a row in the mapping panel.

  2. Use the mapping dropdown below the panel to select what the field represents.

  3. Repeat for each field you want to import.

  4. Set any columns you do not need to Skip.

Review the records

Use the navigation arrows at the top of the window to preview different records from the file.

Each record is a subsequent row from the CSV. The mapping remains the same as you move between records.

Before processing, check that:

  • Employee identifiers are mapped to Badge#.

  • All required fields are mapped.

  • Hours, units, rates and dates appear against the intended mappings.

  • Paycodes identify the intended transactions.

  • Columns that should not be imported are set to Skip.

Process the import

  1. Click Process.

  2. Review the audit report for successfully imported records, records that were not imported, and any warnings.

If the audit report does not appear automatically, a copy is available from the Print screen.

For payrun imports, review the resulting transactions before processing the pay.

Transactions with zero units are ignored. Where a rate is not supplied, SmoothPay uses the applicable employee rate, code rules or last used rate.

If you need to correct and reimport a file, first check which transactions were successfully imported so that you do not duplicate them.

For more information about reviewing and completing the pay, refer to:

Timesheets (column per time type)

This profile imports time-based transactions into the Payrun screen.

The file is designed to contain one row per employee, with separate columns for time and leave totals. For example, ordinary hours and overtime hours occupy separate columns in the same row.

The profile is limited to the available mapping options. You cannot add custom time-type mappings to link additional columns to other paycodes. Use Pay transactions when you need to identify transactions individually by paycode.

Employee and work mappings

  • Skip: Ignores the column.

  • Badge#: Required. Identifies the employee using their Badge#.

  • Ordinary hours: Imports hours against the ordinary time Work code.

  • Overtime hours: Imports hours against the overtime Work code.

  • Double time hours: Imports hours against the double time Work code.

  • Pay rate: Assigns a specific rate to the transactions, overriding the employee’s contract rate.

  • Days paid: Records the number of days worked. In New Zealand, this records days paid for Average Daily Pay calculations.

Department and costing mappings

These mappings override the corresponding employee contract settings for the imported transactions. If a referenced code does not exist, SmoothPay creates it.

  • Department code: Assigns a department to the transactions.

  • Cost centre: Assigns a cost centre, or expense code, to the transactions.

  • Job code: Assigns a Tracking 1 code to the transactions.

  • Activity code: Assigns a Tracking 2 code to the transactions.

Date and comment mappings

  • Comment: Adds a note at the bottom of the payslip.

  • Date (dd/mm/yyyy): Assigns a transaction date from a value such as 15/01/2025.

  • Date (yyyy-mm-dd): Assigns a transaction date from a value such as 2025-01-15.

Annual leave mappings

The selected units affect how annual leave is paid and deducted from the employee’s balance.

  • Annual leave (hrs): Imports annual leave in hours, using leave days proportionately where applicable.

    • In New Zealand, the hours multiplied by the pay rate determine a dollar value. This is assessed as a proportion of the applicable highest weekly value to determine the proportion of a week used.

  • Annual leave (days): New Zealand only. Uses the employee’s contract daily hours and pay rate to determine the dollar value, then assesses this as a proportion of the applicable highest weekly value.

  • Annual leave (weeks): New Zealand only. Pays annual leave at the highest applicable weekly value under the Holidays Act.

  • Annual leave comment: Adds a payslip note against the annual leave transaction.

Sick leave mappings

  • Sick leave (hrs): Imports sick leave in hours, using leave proportionately.

    • In New Zealand, the imported hours are paid using Relevant Daily Pay rules.

  • Sick leave (days): New Zealand only. Pays sick leave using Average Daily Pay.

  • Sick leave comment: Adds a payslip note against the sick leave transaction.

Public holiday mappings

  • Public taken (hrs): Imports public holiday leave in hours, using leave proportionately.

    • In New Zealand, the imported hours are paid using Relevant Daily Pay rules.

  • Public taken (days): New Zealand only. Pays public holiday leave using Average Daily Pay.

  • Public taken comment: Adds a payslip note against the public holiday not worked transaction.

  • Public worked (hrs): Imports hours against the public holiday worked Work code.

  • Public worked comment: Adds a payslip note against the public holiday worked transaction.

Additional New Zealand mappings

  • Paid rest breaks (hrs): Imports paid rest breaks for piece workers against the Paid Rest Break Allowance code.

  • Total hours worked (hrs): Imports total hours worked. The value either accumulates or replaces the previous total, depending on the configured setting.

For more information about the related settings and leave processing, refer to:

Example: Timesheets file

The following example shows time totals in separate columns for two employees.

Badge#

Ordinary hours

Overtime hours

Public worked (hrs)

Public taken (hrs)

Days paid

Comment

100

32

8

8

5

Good employee!

101

16

8

3

Thanks for working a public holiday!

Map each column to its corresponding time type. Other supported columns, such as double time, sick leave or annual leave, can be included when required.

Pay transactions

This profile imports individually defined transactions into the Payrun screen.

Each row identifies an employee, paycode and quantity. An employee can have multiple rows, allowing you to import different Work, Leave, Allowance and Sundry Deduction transactions.

Unlike Timesheets (column per time type), the transaction type is identified by the Paycode value rather than by a separate column for each time type.

Required mappings

  • Badge#: Identifies the employee.

  • Paycode: Identifies the Work, Leave, Allowance or Sundry Deduction code. The value must match a supported alias or the code’s Abbreviation.

  • Units: Specifies the quantity in the units used by the paycode. Transactions with zero units are ignored.

Optional mappings

  • Skip: Ignores the column.

  • Rate: Assigns a rate to the transaction.

    • If omitted, SmoothPay uses the employee’s contract rate or the applicable Work or Leave code rules.

    • For other transactions, the last used rate may apply.

  • Department: Assigns a department to the transaction, overriding the contract setting. Creates the code if it does not exist.

  • Cost centre: Assigns a cost centre to the transaction, overriding the contract setting. Creates the code if it does not exist.

  • Job code: Assigns a Tracking 1 code to the transaction, overriding the contract setting. Creates the code if it does not exist.

  • Activity: Assigns a Tracking 2 code to the transaction, overriding the contract setting. Creates the code if it does not exist.

  • Comment: Adds a payslip note against the transaction.

  • Date (dd/mm/yyyy): Assigns a transaction date from a value such as 15/01/2025.

  • Date (yyyy-mm-dd): Assigns a transaction date from a value such as 2025-01-15.

Match paycodes

SmoothPay first checks whether the imported Paycode is an alias. If it is not, SmoothPay checks the Abbreviation of your paycodes.

Important: Alias codes take precedence over Abbreviations.

If your external system uses different paycode names, you can change the corresponding SmoothPay Abbreviation to match. Check that the imported value does not unintentionally match an alias.

The full alias list is provided later in this guide.

For more information about configuring Work and Leave codes, refer to:

Example: Pay transactions file

This example uses a separate row for each transaction.

Badge#

Paycode

Units

Rate

Date

Comment

100

ordinary

32

01/01/2025

100

overtime

8

02/01/2025

Thanks for the overtime!

100

PTD

8

100

DAYS

5

101

ordinary

16

01/01/2025

101

PWH

8

03/01/2025

101

BONUS

1

1500

Thanks for all your hard work!

101

DAYS

3

In this example:

  • ordinary, overtime and BONUS must match the relevant paycode Abbreviations.

  • PTD, PWH and DAYS are aliases.

  • PTD represents public holiday leave in days, so a value of 8 represents eight days. Use PTH when the intended quantity is eight hours.

  • Blank rates allow SmoothPay to apply the relevant default rate or calculation.

  • The BONUS transaction supplies its own rate of 1500 for one unit.

Employees (new) and Employees (update)

Use Employees (new) to create employee records, or Employees (update) to change existing records.

Both profiles identify employees using Badge#. When using Employees (new), a record is ignored if its Badge# already exists.

Make a backup before using either profile.

Employee identification and personal details

  • Skip: Ignores the column.

  • Badge#: Required. Identifies the employee record.

  • First name: Populates First name in the Personal tab.

  • Surname: Populates Surname in the Personal tab.

  • First+Last: Splits a combined name into First name and Surname.

    • Enter the first name followed by the surname. For example, John Smith populates First name as John and Surname as Smith.

  • Last+First: Splits a combined name supplied in the reverse order.

    • Enter the surname followed by the first name. For example, Smith John populates First name as John and Surname as Smith.

  • Address: Populates Postal address in the Personal tab.

  • Town: Populates Town in the Personal tab.

  • State: Populates State in the Personal tab, where applicable.

  • Postcode: Populates Postcode in the Personal tab.

  • Country: Populates Country in the Personal tab.

  • DOB: Populates DOB in the Personal tab. Use dd/mm/yyyy.

  • Phone: Populates Phone in the Personal tab.

  • Email: Populates Email in the Personal tab.

For more information about these fields, refer to:

Tax details

  • Tax#: Populates the tax number in the Tax tab. The field name varies by jurisdiction.

    • Country-specific punctuation is not required. For example, a New Zealand value of 123456789 is formatted as 123-456-789.

  • Tax code: New Zealand only. Populates Tax code in the Tax tab.

    • Enter the tax code directly, such as M, ME or M SL.

  • Tax rate: Populates Flat tax rate in the Tax tab.

    • Enter a decimal percentage. For example, 0.2 represents 20%.

    • This overrides the standard tax calculation.

For more information about these fields, refer to:

Employment dates and gender

These mappings populate fields under Contract → Employment.

  • Start date: Populates Start date. Use dd/mm/yyyy.

  • Finish date: Populates Terminated. Use dd/mm/yyyy.

    • Important: Importing a finish date terminates the employee record.

  • Gender: Populates Gender.

    • M: Male.

    • F: Female.

Employment classification

The Employment mapping updates the employee’s Contract and Employment settings. It also adjusts leave settings where applicable.

Use the following values:

Value

Employment type

Resulting settings

F

Full time

Permanent contract, full time, normal leave settings.

P

Part time

Permanent contract, part time, normal leave settings.

C

Casual

Casual contract, part time, tailored leave settings.

Con

Contractor

Independent contractor, part time, no leave settings.

Age

Agent

Independent contractor, part time, no leave settings.

Sub

Subbie

Independent contractor, part time, no leave settings.

Pie or W

Piece worker

Temporary contract, piece worker, normal leave settings.

Minimum pay type

The Minimum pay type mapping is available for New Zealand and populates Minimum wage under Contract → Employment.

Use the following values:

  • A: Adult.

  • S: Starter.

  • T: Training.

  • R: RSE.

  • L: Living.

Pay and working hours

These mappings populate fields under Contract → Employment.

  • Pay rate (hourly): Populates Hourly rate. Enter a numeric value.

  • Salary (annual): Populates Annual salary. Enter a numeric value.

  • Pay cycle: Populates Pay cycle.

    • W: Weekly.

    • F: Fortnightly.

    • M: Monthly.

    • 4: Four-weekly.

    • H: Half-monthly.

  • Hours per day: Populates One day equals. Enter a numeric value.

  • Hours per week: Populates One week equals. Enter a numeric value.

  • Days per week: Populates Days per week. Enter a numeric value.

Department and costing defaults

These mappings populate the employee’s defaults under Contract → Employment.

  • Paypoint (department): Populates Paypoint.

    • Use the Code of a Department code.

    • SmoothPay creates a Department code if the supplied code does not exist.

  • Cost Centre: Populates Cost centre.

    • Use the Ledger code of a Cost centre code.

    • SmoothPay creates a Cost centre code if the supplied code does not exist.

  • Tracking1: Populates Job code, or Tracking 1.

    • Use the Code of a Tracking 1 code.

    • SmoothPay creates a Tracking 1 code if the supplied code does not exist.

  • Tracking2: Populates Activity, or Tracking 2.

    • Use the Code of a Tracking 2 code.

    • SmoothPay creates a Tracking 2 code if the supplied code does not exist.

Other employment details

These mappings also populate fields under Contract → Employment.

  • Position (occupation): Populates Occupation. Accepts text or numeric values.

  • Next of Kin: Populates Next of kin.

  • Group code: Populates Group code. Accepts text or numeric values.

For more information about the employment fields and their dependencies, refer to:

Bank details

Use the following mappings together:

  • Bank (code or abbrev): Identifies the bank using its code or abbreviation.

  • Bank account#: Creates a bank entry and populates Account # in the employee’s Bank tab.

    • Supply an account number appropriate to the employee’s jurisdiction.

    • Country-specific formatting can be omitted; SmoothPay applies the relevant formatting.

For more information about employee bank settings, refer to:

Superannuation details

The available field names vary by jurisdiction.

  • Super member#: Populates Member # in the employee’s Super tab, or the equivalent field for the jurisdiction.

    • Applies outside New Zealand.

    • Accepts text or numeric values.

  • Super % (employee): Populates Employee % in the employee’s Super tab.

    • Enter the percentage directly. For example, enter 5 for 5%, rather than 0.05.

    • The rate cannot be set below the applicable statutory minimum.

  • Super % (employer): Populates Employer % in the employee’s Super tab.

    • Enter the percentage directly.

    • The rate cannot be set below the applicable statutory minimum.

For more information about the corresponding settings, refer to:

Example: Employee file

The following example shows two employee records. The tables are split for readability; match the information by Badge# when preparing a single CSV file.

Personal details

Badge#

First name

Surname

Address

Town

State

Postcode

DOB

100

John

Smith

12 anywhere street

somewhere

overthere

1234

01/01/2025

101

Bob

Bobbins

11 anywhere street

somewhere

overthere

1234

01/01/2025

Pay and employment details

Badge#

Pay rate

Salary

Days per week

Hours per week

Hours per day

Employment

Pay cycle

100

25

52000

5

40

8

F

W

101

30

37440

3

24

8

P

F

These are illustrative values. Use the employees’ actual details and map each column to the corresponding field.

Agency payments

This profile creates or updates employee agency payments, including debts, loans and recurring deductions.

If an agency payment already exists for the employee, it is updated. Otherwise, a new payment is created.

Required mappings

  • Badge#: Must match the Badge# of a current employee.

  • Agency code: Must exactly match the agency’s Title in SmoothPay.

Additional mappings

  • Skip: Ignores the column.

  • Bank statement particulars: Sets the particulars shown on the recipient agency’s bank statement.

  • Add this amount to total due: Adds the imported amount to the total due and increases the balance due by the same amount.

  • Replace total amount due with this amount: Replaces the total amount due with the imported amount.

  • Minimum payment (amount per pay): Sets the amount deducted each pay period.

For more information about the corresponding employee settings, refer to:

Example: Agency payments file

Badge#

Agency code

Add this amount to total due

Minimum payment (amount per pay)

100

DEBT

1500

50

101

DEBT

1000

30

In this example:

  • DEBT must match the agency’s Title.

  • Employee 100 has 1500 added to the total due, with a minimum payment of 50 per pay.

  • Employee 101 has 1000 added to the total due, with a minimum payment of 30 per pay.

  • Use Replace total amount due with this amount instead if the file contains replacement totals rather than amounts to add.

Migration import profiles

The developer profiles support importing payroll data when moving into SmoothPay. These are generally used as one-off migration steps and are available to site owners.

Make a backup before using either profile.

  • DEV: Leave balances: Imports employee leave balances. The source file contains the employee Badge#, Leave code and Balance.

  • DEV: Pay history: Imports historical pay information into employee records.

Alias paycodes

Aliases identify standard transaction types without requiring the file to use your own paycode Abbreviations.

SmoothPay checks aliases before checking Abbreviations. If an imported value matches an alias, that alias takes precedence.

Aliases apply the relevant rates, multipliers and weekly or daily conversion values according to New Zealand rules or employee settings.

Alias

Meaning

T1

Ordinary time.

T2

Overtime.

T3

Double time.

AL or ALH

Annual leave in hours.

ALD

Annual leave in days.

ALW

Annual leave in weeks.

ALC

Annual leave using hours on contract.

BL or BLH

Bereavement leave in hours.

BLD

Bereavement leave in days.

PTH or 99

Public holiday taken in hours.

PTD

Public holiday taken in days.

PWH

Public holiday worked in hours.

SL or SLH

Sick leave in hours.

SLD

Sick leave in days.

DAYS

Days paid.

THW

Total hours worked. Accumulates or replaces the previous value according to the configured setting.

98

Accrues an alternative leave day.

ALT

Uses alternative leave in days.

ALTH

Uses alternative leave in hours.

ACC

First-week ACC hours.

UPL

Unpaid leave.

Check both the alias and the imported units. An hours-based alias and a days-based alias can produce different payment and leave-balance results, even when the numeric quantity is the same.

Did this answer your question?