# Process Timesheet Batches for Xero Payroll Integration

Source: https://docs.astalty.com.au/guide/process-timesheet-batches-for-xero-payroll-integration

> Create and submit a timesheet batch from Astalty to Xero once shifts are reviewed.

Scheduling add-on - This feature requires the Scheduling add-on, which is available on Astalty Premium. See How to enable Scheduling.

## Overview

Once scheduling is complete and employee shifts have been reviewed, create a Timesheet Batch and export it to Xero Payroll. Astalty creates draft Xero timesheets containing the mapped earnings-rate IDs and daily units. Review those drafts in Xero before processing the pay run.

> **Xero API export supports one-week and one-fortnight batches**
>
> Astalty can sync other Xero payroll calendar types, but the direct Xero timesheet export accepts only a batch covering exactly 7 or 14 days. A monthly, twice-monthly, four-weekly or quarterly batch fails validation. Use a supported weekly or fortnightly period for this export.

## Process Timesheet Batches

To create a batch for payroll export:

1. Navigate to [Scheduling](https://app.astalty.com.au/scheduling/schedule) and check that all **Shift Alerts** and **Shift Approvals** have been processed for the Pay Period. You can learn more on these processes by checking the following guides:

- [Shift Alerts](https://docs.astalty.com.au/guide/scheduling/shift-alerts)
- [Shift Approvals](https://docs.astalty.com.au/guide/scheduling/shift-approvals)

2. Navigate to [**Timesheet Batches**](https://app.astalty.com.au/scheduling/timesheet-batches) in Scheduling

![The Timesheet Batches page with numbered markers on Scheduling in the Side Menu (1), Timesheet Batches under Process (2) and the Create Batch button (3). The batch list is empty.](https://docs.astalty.com.au/assets/timesheet-batches-1.png)

3. Click on **Create Batch** and choose how to generate it:

- **By Xero payroll calendar** - pick the **Payroll calendar** you're paying. The dates are set automatically to that calendar's next pay period, and only staff assigned to the calendar in Xero are included. This choice only appears once you have [payroll calendars synced from Xero](https://docs.astalty.com.au/guide/sync-payroll-calendars-from-xero).
- **Manual date range** - set the **From** and **To** dates yourself. All staff with eligible shifts in the range are included. Xero export validation compares these dates with the next period for the default payroll calendar in your Xero settings, so the range must match that period exactly.

Review any warnings shown for the period, including unapproved shifts or shift alerts, shifts still in progress and staff with no payroll calendar. Then click **Create Batch**. See [Creating Timesheet Batches](https://docs.astalty.com.au/guide/scheduling/timesheet-batches#creating-timesheet-batches) for the full detail on both options.

![The Create Timesheet Batch form with By Xero payroll calendar selected, Fortnightly Calendar chosen in the Payroll calendar field, the resulting pay period of 12/10/2026 to 25/10/2026 (14 days), and one alert listing 5 things to check: shifts awaiting approval or missing a clock in or out, 15 approved shifts from 5 to 11 Oct 2026 in no timesheet batch, an unapproved on-call activation and an approved on-call activation in no timesheet batch.](https://docs.astalty.com.au/assets/timesheet-batch-generate-xero-payroll-calendar.png)

> **Staff without a payroll calendar**
>
> If you generate the batch **By Xero payroll calendar**, staff who aren't linked to a Xero employee or haven't been assigned a payroll calendar in Xero are excluded from the batch. Select **View staff** on the warning to resolve them, or see [Sync Payroll Calendars from Xero](https://docs.astalty.com.au/guide/sync-payroll-calendars-from-xero#staff-without-a-payroll-calendar).

### Validate and Export the Batch

4. Select the Batch from the Timesheet Batches page, and click **Actions** > **Export Xero Timesheet (API)**.

![A Timesheet Batch page with the Actions button highlighted and its menu open, and an arrow pointing to Export Timesheet for Xero, between Export Timesheet as Excel and Delete.](https://docs.astalty.com.au/assets/export-to-xero-1.png)

5. Select employees to export, or leave the selection empty to include every eligible employee in the batch. Click **Validate**. Blocking errors must be fixed before export. A warning can be accepted with **Continue anyway** after you review it. Most errors include a **Fix issue** button (wrench icon) that opens the relevant screen. See [Resolving Timesheet Batch Validation Errors](https://docs.astalty.com.au/guide/scheduling/timesheet-batches#resolving-timesheet-batch-validation-errors) for the full list.

![A Timesheet Batch page with the Export for Xero card open below the batch details. It says the export will push the timesheet batch directly to Xero via API, and an arrow points to the Validate button beside Cancel.](https://docs.astalty.com.au/assets/validate-1.png)

6. Review and accept the required agreements before clicking on **Create Export**.

![The Export for Xero card highlighted on a Timesheet Batch page, with Employees set to All Employees and both I have read and agree to the above checkboxes ticked. An arrow points to the Create Export button.](https://docs.astalty.com.au/assets/export-to-xero-2.png)

The export runs in the background and moves through queued and processing states. Only one active export can run for a batch. Successful rows create **Draft** timesheets in Xero, where your payroll administrator can review and approve them before processing the pay run. The accounting integration's **New Invoice Status** setting does not change payroll timesheet status.

You can start another export after the previous export reaches **Completed** or **Failed**. Do not resend employees whose timesheets already succeeded. Select only employees still needing export, or first delete their existing draft through **Actions** > **Manage Xero Timesheets**. Astalty blocks an employee when Xero already has a timesheet for that pay period, and Astalty can delete only draft timesheets.

> **Need to redo a batch?**
>
> If you need to clear draft timesheets from Xero before re-exporting a corrected batch, use **Actions** > **Manage Xero Timesheets** on the Timesheet Batches page. Astalty can delete only draft Xero timesheets. Approved or completed timesheets must remain in Xero. See [Managing Xero Draft Timesheets](https://docs.astalty.com.au/guide/scheduling/timesheet-batches#managing-xero-draft-timesheets).

## Payslip Preview

After Xero processes payroll, the payslip reflects the pay items and rates configured in Xero. Astalty's export sends mapped earnings-rate IDs and daily units, not calculated dollar totals. Check the Xero pay run against the interpreted batch before posting it.

![A sample payslip for the pay period 01/03/2026 - 14/03/2026, listing SCHADS 2.1 casual earnings lines and allowances with their units, rates and amounts. It shows Total Earnings of $1,921.63, PAYG of $903.00, superannuation of $230.60 and Net Pay of $1,018.63.](https://docs.astalty.com.au/assets/payslip-example-1.png)

## Processing Timesheet Batches Video Walk-Through

In this video, we walk through **how to prepare and submit Timesheet Batches from Astalty to Xero**.

Video walkthrough: processing time sheet batches for xero integration.
