The Xero integration sends approved timesheet hours, overtime and approved paid leave from TimeLeaf to Xero Payroll.
Xero payroll sync works for Australian, New Zealand and UK organisations only. Xero has no payroll API for the US or Canada. You can still connect a US or Canadian organisation for accounting (for example, pushing client invoices), and run payroll from the Gusto (US) or ADP Workforce Now file under Download payroll file.
What you need
- The Professional plan or above.
- A TimeLeaf admin account.
- A Xero login with access to the organisation and its payroll settings.
- Earnings rates for ordinary hours (and for overtime and leave if you use them) set up in Xero Payroll, and for UK and NZ organisations a payroll calendar.
- Your employees set up in Xero Payroll, ideally with the same email addresses as in TimeLeaf.
Set it up
Connect Xero
Go to Integrations › Connected Apps and scroll to Payroll. On the Xero card, click Connect Xero →.
Authorize TimeLeaf in Xero
Sign in to Xero. If your login has several organisations, choose the one to connect. Approve the access: payroll timesheets, payroll employees and settings, organisation settings, and accounting transactions and contacts (used for client invoices).
Check the connection
You come back to Connected Apps with "Xero connected successfully." The card shows Connected and your organisation's name.
Choose your earnings rates
Open Mapping & employee matching and pick the earnings rates and payroll calendar (see Setting up the mapping). Click Save settings.
Match employees
Click Auto-match by email, then match anyone still Not matched by hand (see Employee matching).
Sync your first period
On the Xero card, pick the From and To dates and click Sync period. TimeLeaf shows how many entries synced and failed.
TimeLeaf keeps the connection alive by refreshing it in the background, even if you don't sync for a while.
Disconnect
Click Disconnect on the Xero card. TimeLeaf revokes its access in Xero and forgets the connection. Timesheets already synced stay in Xero.
Region support
Xero's payroll API is region-specific. TimeLeaf reads your connected organization's country automatically and routes to the correct API:
| Region | Payroll sync |
|---|---|
| Australia | Supported |
| New Zealand | Supported |
| United Kingdom | Supported |
| United States | Not supported — Xero has no payroll API for US organizations (Xero partners with Gusto for US payroll, which is a separate product TimeLeaf does not currently integrate with) |
| Canada | Not supported — Xero has never offered native Canadian payroll |
| Any other/unrecognized region | Not supported — sync is skipped cleanly, no error |
If your organization's region isn't supported, connecting still succeeds (useful if you want basic accounting visibility), but no timesheet data will sync.
Setting up the mapping
Xero categorizes hours using earnings rates and, for UK and NZ organizations, a payroll calendar. These belong to your own Xero organization, so you choose them yourself: open Mapping & employee matching on the Xero card (Integrations › Connected Apps), choose them and click Save settings.
- Ordinary hours earnings rate — regular worked hours (required).
- Overtime earnings rate — needed when a synced week has overtime; pushed as a separate line.
- Leave earnings rate — needed when a synced week has approved paid leave; one shared rate for all paid leave types.
- Payroll calendar — required for UK and NZ organizations; not used in Australia.
- Invoice revenue account — the account code for pushed client invoices (only with the invoicing add-on).
TimeLeaf reads the choices live from your organization. If a list can't be loaded for your region, paste the ID instead.
How syncing works
An admin pushes one period at a time: on the Xero card, pick the From and To dates and click Sync period. It never runs on its own when a timesheet is approved. For each employee in the period:
- Regular and overtime hours are split and pushed as separate lines on the same Timesheet, using the daily/weekly overtime rules configured in your overtime policy.
- Approved paid leave is pushed as its own line, using a single shared leave earnings rate (all paid leave types share one rate; TimeLeaf does not currently distinguish leave types by their own Xero earnings rate). Unpaid leave is never synced.
- Timesheets are sent per Monday–Sunday week, because that is the shape a Xero timesheet takes. If your overtime policy uses a longer work period, the overtime split sent to Xero is worked out per week.
Employee matching
Hours are posted to the Xero payroll employee each TimeLeaf person is matched to.
- Click Auto-match by email. A pair is linked only when exactly one person and exactly one Xero employee carry that address.
- Pick the Xero employee for everyone still Not matched and click Save (the button counts your changes). A Xero employee can be matched to only one person.
- Unmatched people are skipped during sync and named in the result — their hours are never guessed onto someone else.
An Employee ID typed on a profile keeps working as a fallback for anyone without a match, unless it collides with another person's match or ID, in which case both are skipped until you resolve it.
Troubleshooting
The card says "Reconnect required". Xero no longer accepts TimeLeaf's connection, for example because it was revoked in Xero or not used for a long time. Syncing has stopped. Click Reconnect Xero → on the card and approve it again. A sync attempted meanwhile says "Xero needs to be reconnected".
"Connection failed: access was not granted." You (or Xero) cancelled the approval. Click Connect Xero → and approve it.
"Connection failed: the provider did not accept the authorization." or "Connection failed: something went wrong." Try connecting again, and contact TimeLeaf support if it keeps failing.
"Xero connection is not available on this TimeLeaf environment yet." Connecting Xero isn't set up for your workspace. Contact TimeLeaf support.
The sync result lists failures. Each failed entry is reported on its own; everything else still syncs. Common causes are a person who isn't matched to a Xero employee, or a missing earnings rate (the overtime or leave rate is needed only when the period has overtime or leave).
Nothing synced and nothing failed. Check your organisation's country. For an unsupported region, a sync does nothing and reports no failure.