Skip to main content

Xero Integration

ShiftCare HR connects to Xero Payroll so employee master data, leave requests, and payslips stay in sync between both systems. This page covers connecting Xero, mapping leave types, monitoring sync health, syncing individual records, viewing payslips, and disconnecting.

Connect to Xero​

Xero Integration

  1. Go to Company Settings → Integrations.
  2. Click Connect on the Xero Payroll card.

Xero Integration

  1. Sign in to Xero in the login window that appears.

Xero Integration

  1. Select your organisation and click Allow Access.

Xero Integration

  1. Wait for the sync progress bar to complete.
  1. The card shows a green Connected badge when done.
Tabs unlock after connecting

The Leave Mapping and Sync Health tabs stay greyed out until Xero is connected. Hovering a locked tab shows a Connect Xero first hint. Only the Overview tab is available beforehand.

Overview Tab​

Xero Overview

  • Employee Master Data, Leave Requests, and Payslips are synced.
  • The Sync Status card (right side) shows the last sync time and error count.
  • Click View Dashboard to jump to the Sync Health tab.

Leave Mapping Tab​

Xero Leave Mapping

  1. Open the Leave Mapping tab (available after connecting).
  2. For each HR leave type, select the matching Xero Pay Item from the dropdown.
  3. Leave types that should not sync to Xero can be left blank or set to Do Not Sync.
  4. Click Save Changes. A green alert confirms the save.

Sync Health Tab​

Xero Sync Health

The breakdown table shows Synced / Failed counts and success rate per component.

  • Success rate ≥ 95% is shown in green; below 95% shows a warning.
  • The Sync Errors panel lists individual failed records with error details.
  • Use the search box or component filter to narrow down errors.
  • Click Refresh Data to reload the latest status from the server.

Manual Sync​

Click the ↻ (Sync Now) icon in the card header.

  • The icon shows a loading spinner while syncing.
  • The Last Sync timestamp in the Overview tab updates when complete.

This syncs everything at once. To push a single employee or a single leave request, use the per-record options below.

Resigned employees who have never been linked to Xero are skipped during this sync, since creating them in Xero for the first time would add them as terminated. Resigned employees already linked to Xero still sync, so their resignation reaches Xero.

Sync a Single Employee​

You can push one employee to Xero from their profile, without running a full sync.

Go to Employee Management, open the employee, and look at the badge row in the profile header.

The badge only appears when Xero is connected. It shows one of four states:

BadgeMeaning
✓ Xero SyncedThe employee has been pushed to Xero successfully.
⏳ Xero Syncing...A sync is in progress.
✗ Xero Sync FailedThe last attempt failed.
⚠ Xero Not SyncedThe employee has never been pushed to Xero.

To sync:

  1. Click the badge. Hovering it first shows what the click will do — Click to sync to Xero, Click to re-sync to Xero, or Sync failed. Click to retry.
  2. A Xero Sync confirmation appears. For an employee who has never synced it reads "Confirm manual sync to Xero for this employee?"; for one already synced it reads "This employee has already been synced to Xero. Do you want to re-sync?"
  3. Click Confirm, or Cancel to abort.
  4. A Xero sync initiated successfully message appears. The badge switches to Xero Syncing... and the profile refreshes a couple of seconds later with the final result.
tip

The badge is clickable in every state, including Xero Synced — use it to re-push an employee after correcting their pay or tax details.

Re-syncing never overwrites what you maintain in Xero itself. These are sent when the employee is first created, and then left alone on every sync afterwards:

Held in XeroWhy it is never re-sent
Earnings lines on the pay template, and the employee's ordinary earnings rateHR only knows the ordinary line, so re-sending it would delete allowance, overtime and penalty-rate lines you added in Xero; the ordinary rate itself is also only set when the employee is first created
First and last nameHR holds one combined name field. It's split into first/last only when the employee is first created — a name change made in Xero afterwards is never overwritten by a re-sync
Bank accountsHR holds one account. A customer splitting pay across several would have those splits collapsed to one
Tax declarationHR knows only the TFN and employment basis, so a fuller declaration maintained in Xero would be replaced by a partial one
Home address, date of birth, and genderOnly when HR holds no real value — the placeholder or default used to create the employee is never sent over the address, date of birth, or gender you hold in Xero

Sync a Single Leave Request​

Approved leave can be pushed to Xero individually from the leave list.

Go to Leave Management and find the request in the list. When Xero is connected, each row gains a Xero sync tag.

TagMeaning
Xero ✓The leave request synced successfully.
Xero ✗The last sync attempt failed.
Xero Not SyncedThe employee this leave belongs to has never been synced to Xero.
Xero —Not yet synced.
  1. Click a tag showing ✗ or —.
  2. Confirm Sync this leave request to Xero?
  3. The result appears as Xero sync success or Xero sync failed.
Only approved leave syncs

The tag appears only on requests with an Approved status. Pending and rejected requests are never pushed to Xero. Rows already showing ✓ are not clickable — there is nothing left to retry. Rows showing Xero Not Synced aren't clickable either — hovering explains why ("This employee has not been synced to Xero yet"); sync the employee first (see Sync a Single Employee), then retry the leave sync.

Payroll History and Payslips​

Payslips are imported from Xero and shown per employee.

Go to Employee Management, open the employee, and select the Pay and Compensation tab. Employees reach the same view themselves under My Profile → Pay and Compensation.

The Payroll History table lists each imported payslip with its pay period, net pay, and Xero status.

  • Use the year dropdown to filter to a single year, or clear it to see all.
  • Click Refresh to re-pull payslips from Xero.
  • Long histories are paginated.
  • Only the most recent pay runs are imported from Xero - up to 20, newest first.

Viewing a payslip​

Click View on any row to open the Payslip Details dialog.

The dialog shows the pay period and Xero PayRun ID, followed by:

FieldNotes
Payment DateDate the pay run was paid.
Pay Run StatusSee the status table below.
WagesGross earnings for the period.
TaxDeducted from gross.
SuperannuationDeducted from gross.
DeductionsOther deductions.
ReimbursementAdded to net.
Net PayFinal amount paid.

Use Back to profile to close the dialog.

Pay run statuses​

StatusMeaning
DRAFTCreated in Xero but not yet posted.
POSTEDPosted to Xero.
VOIDEDCancelled — the payslip no longer applies.
COMPLETEDFully processed and paid.

Leave History on the same tab​

Below Payroll History, the Leave History table repeats each approved request with a Xero Sync column showing Synced or Error. This is a read-only view — to retry a failed push, use Sync a Single Leave Request.

Known issue — Xero Status column

In the current build, the Xero Status column in the Payroll History table displays Synced for every row regardless of the record's real state. Treat it as a placeholder and confirm the actual status against the Sync Health tab. The Pay Run Status inside the Payslip Details dialog is accurate.

What Gets Synced​

Sync activity is recorded against five record types, which are the categories you'll see broken out in the Sync Health tab and its error list:

TypeDirectionCovers
EmployeeHR → XeroEmployee master data, tax and employment details.
Leave RequestHR → XeroApproved leave requests.
Leave TypeHR → XeroLeave type to Xero pay item mappings.
SuperfundHR ↔ XeroSuperannuation fund details.
PayslipXero → HRImported payslips for employee viewing.

Troubleshooting​

SymptomWhat to check
Leave Mapping and Sync Health tabs are greyed outXero isn't connected. Complete Connect to Xero first.
After signing in to Xero you're returned to Company Settings, but Xero still isn't connectedThe Xero login link expires 10 minutes after you click Connect, and only works once. If you took too long to sign in, or reused an old link, click Connect again to start over.
An employee fails to sync repeatedlyOpen their profile and confirm tax and employment details are complete, then click the badge to retry.
A new employee is never created in XeroConfirm the employee has a payroll email, and that no more than one Xero employee uses it. If your Xero organisation has no current ordinary earnings rate, set one up in Xero, then retry.
A new employee's sync fails mentioning an ordinary earnings rateOpen the employee, go to the Employment tab, edit, and under Pay details choose a Xero Ordinary Rate, then retry. This is needed when your Xero organisation has more than one current ordinary earnings rate, and can only be chosen before the employee is linked to Xero. Or create the employee in Xero using the same payroll email.
Approved leave shows Xero ✗Check that the leave type has a Xero Pay Item mapped on the Leave Mapping Tab. Unmapped types cannot sync.
Success rate dropped below 95%Open Sync Health, filter the Sync Errors panel by component, and work through the individual failures.
No payslips appear for an employeePayslips only import once a pay run exists in Xero. Click Refresh on the Pay and Compensation tab.
Sync stopped entirelyConfirm the card still shows Connected — an expired Xero authorisation returns the card to its unconnected state.

Disconnect​

Click the power icon in the card header.

  1. Confirm by clicking Disconnect in the dialog. Click Cancel to abort.
  2. The card returns to the unconnected state. No further data will sync.
warning

Disconnecting stops all syncing immediately, including payslip imports. Per-employee and per-leave sync badges disappear from the interface until Xero is reconnected.

Related
  • For mapping HR leave types to Xero pay items, see also the Xero Leave Mapping section on the Leave Management page.
  • For super fund details that sync alongside employee data, see Superannuation.
  • For the Integrations tab in context, see Company Settings.