Skip to content
OneForce Care
Browse help topics

Export payroll and push to Xero

The two CSV exports, and how the Xero timesheet push matches workers and pay items and handles sleepovers and allowances.

Last updated · 3 July 2026


The download icon above the grid (titled Export CSV) opens a menu with the two CSV exports, plus Push timesheets to Xero when it applies. It is disabled while the page is loading or when there are no rows for the week. Both CSVs work off whichever rows the grid is currently showing, live-computed for an open week or the frozen figures for a finalised one, and neither needs the payroll:create permission: a payroll:read reviewer can pull them to cross-check even without edit rights.

The payroll export menu open: Summary CSV, By-category CSV, and Push timesheets to Xero, each with its one-line description.

Download the Summary CSV

Select Summary CSV (“One row per worker: hours per day and gross pay”). It downloads as payroll-week-[weekStartIso].csv with one row per worker: Worker, SCHADS classification (the joined classification labels, or “Unclassified”), Mon hrs through Sun hrs, Total hrs, Sleepover hrs (allowance only), and Gross pay (AUD). An unclassified worker’s Gross pay cell is left blank rather than “0.00”, so a downstream import can’t mistake it for an actual zero-dollar pay run.

Download the By-category CSV

Select By-category CSV (“One row per pay category: ordinary, penalties, overtime, allowances”). It downloads as payroll-week-[weekStartIso]-by-category.csv with one row per worker per pay category: Worker, SCHADS classification, Pay category, Hours, Rate (AUD) and Amount (AUD).

Categories appear in this order, only when the worker has hours in them: Ordinary, Afternoon shift, Night shift, Saturday, Sunday, Public holiday, Overtime (first period), Overtime (after period), Rest break (double time), Broken shift double time, Sleepover (allowance only), Unclassified. Each worker can then get up to three extra rows for their per-worker allowances, with Hours and Rate left blank and only Amount filled: Broken shift allowance, Vehicle allowance (per km) and Sleepover allowance.

Push timesheets to Xero

Push timesheets to Xero (“Creates draft timesheets in Xero payroll from the finalised week”) only appears in the menu when all three are true: Xero is connected under Account Integrations , the displayed week is finalised, and this week has not already been pushed. If any of those is not true, the item is simply not in the menu: there is no disabled state to explain it.

Select it and OneForce Care reads the week’s frozen snapshot and creates DRAFT timesheets in Xero payroll, one per worker with payable hours. On success you see “1 draft timesheet created in Xero payroll.” or “N draft timesheets created in Xero payroll.” If any workers were skipped, a second message follows: “Skipped N worker(s): [first worker], [first reason]” (only the first skipped worker’s reason is shown, even when several were skipped). Once a push succeeds, the menu item disappears for that week.

How workers and pay items are matched

The push never has any settings of its own to configure; it matches everything by name against what is already in Xero:

  • Workers are matched to a Xero employee by full first name + last name (case-insensitive, extra spaces ignored). No match skips that worker entirely, with the reason no Xero employee named "[name]".
  • The matched employee must have a payroll calendar assigned in Xero, and it must be weekly or fortnightly and its pay period must fully contain the Monday-Sunday payroll week. Otherwise the worker is skipped with the Xero employee has no payroll calendar assigned, unsupported pay calendar type (only weekly and fortnightly periods can receive timesheets), or the Xero pay calendar period does not contain the full payroll week.
  • Each pay category’s hours are matched to a Xero pay item (earnings rate) by name, for example “Ordinary hours” or “Saturday”. If no Xero pay item has that exact name, the worker is skipped with no Xero pay item named "[name]" (add it in Xero, or map the code in pay item overrides) - in practice this means creating or renaming the matching pay item in Xero, since there is no in-app screen for the override yet.

Watch out

A worker is only ever pushed whole. If any single category can’t be matched to a Xero pay item, that worker’s entire timesheet is skipped rather than pushed with a gap, so nothing goes into Xero half-right.

What never goes into the Xero timesheet

  • Sleepover hours are excluded from every timesheet line. They are allowance-only pay under SCHADS cl. 25.7, never worked time, so they are dropped before the push builds anything: they can never appear as hours in a Xero timesheet.
  • Fixed dollar allowances don’t travel with the push at all. A Xero timesheet only carries hours against a pay item, not a flat dollar amount, so the sleepover, broken shift and vehicle (per km) allowance amounts shown on the grid’s worker drawer and in the By-category CSV are not part of the pushed data. Key these into Xero by hand, as a manual payslip earnings line, using the figures from the drawer or the CSV.

Errors you might see

MessageWhat it means
”Finalise the week before pushing timesheets to Xero.”No finalised run exists for this week (normally can’t happen from the menu, since the option only shows for a finalised week).
”This week has already been pushed to Xero.”Someone else pushed this week moments before you.
”Nothing could be pushed. [reason]“Every worker was skipped, or the finalised week has no payable hours at all.
”You do not have permission to push timesheets for this provider.”Your role has payroll:read but not payroll:create; the menu item is visible either way, but the push itself needs payroll:create.
”Xero payroll access has not been granted for this connection. Enable the payroll scopes (XERO_EXTRA_SCOPES secret) and reconnect Xero, then try again.”The connected Xero app is missing payroll API access; reconnect Xero from Account Integrations .

Tip

Reopening a finalised week that was already pushed clears the pushed flag along with the snapshot. See Finalise a week and record payment for what reopening resets.