> ## Documentation Index
> Fetch the complete documentation index at: https://help.visualcare.com.au/llms.txt
> Use this file to discover all available pages before exploring further.

# Payroll sync

> How Visualcare sends confirmed timesheet data to Xero as payroll hours, using each worker's pay level and service payroll codes to determine the correct pay item.

When a timesheet is confirmed in Visualcare, the system uses two pieces of information to work out where in Xero the hours belong: the worker's pay level and the payroll code set on the service they delivered. Once those are in place, you export the hours from Visualcare and they land in Xero as draft payroll entries for the worker.

Visualcare sends hours to Xero for payroll, not rate amounts. The pay item in Xero holds the rate. For contractors or suppliers, Visualcare does send the rate as well as the hours.

## How payroll sync works

The export follows this path:

1. A shift is confirmed as a timesheet in Visualcare
2. The system reads the worker's **Pay Rate Level** from their profile
3. It matches that pay level to the **payroll code** set on the service they delivered
4. The hours are exported to Xero against the matching pay item

For each worker, you need two things configured before an export will succeed:

* An **Accounting Code** on the worker's profile, linking them to their employee record in Xero
* A **payroll code** on every service they deliver, set for their pay level

If either is missing, the export returns an error for that shift.

## Understanding pay levels

Pay levels in Visualcare represent the classification tiers in your award structure, for example Casual Level 1 Pay Point 1 or Part-Time Level 3 Pay Point 2. Each worker is assigned one pay level, which determines which payroll code the system uses when that worker delivers a service.

Pay level labels are configured in **Settings** → **Finance**, in the **Pay Levels** section. By default these labels are generic (Pay Level 1, Pay Level 2, and so on). Update them to match your award terminology so they're meaningful when you're setting up worker profiles and services.

Once you've set your labels:

1. Go to **Workers** → **Profile**
2. Select the worker
3. Click the **Finance** tab
4. Select the correct pay level from the **Pay Rate Level** drop-down
5. Click **Save**

Repeat for each worker.

<Tip>Use your exact award terminology for pay level labels. When workers and services both use the same language, it's much easier to spot mismatches during setup.</Tip>

## Setting up worker accounting codes

The **Accounting Code** on a worker's profile links that worker in Visualcare to their employee record in Xero. When you export payroll, Visualcare uses this code to know which Xero employee to send the hours to.

1. Go to **Workers** → **Profile**
2. Select the worker
3. Click the **Finance** tab
4. Select the matching Xero employee from the **Accounting Code** drop-down
5. Click **Save**

The drop-down is populated from Xero. If a worker doesn't appear, sync employee data first (see [Syncing pay items from your accounting software](#syncing-pay-items-from-your-accounting-software) below).

<Warning>Selecting the wrong accounting code sends a worker's hours to the wrong Xero employee. Double-check each mapping before saving.</Warning>

If you hire a new worker after the initial setup, go to the worker's **Finance** tab and click **Sync Code from Xero** to pull their new Xero employee record into the drop-down.

## Mapping services to payroll codes

Each service in Visualcare needs a payroll code for every pay level you use. This is the intersection that tells Visualcare: "when a Level 2 Casual worker delivers Weekday Daytime support, export those hours to this Xero pay item."

1. Go to **Maintenance** → **Services**
2. Click on a service
3. You'll see a row for each pay level label you configured
4. For each pay level, select the matching payroll code from the drop-down
5. Click **Save**

Work through every service your organisation delivers and every pay level you have workers on. You don't need to set codes for services you don't provide.

<Note>The payroll code drop-downs are populated from Xero pay items. Sync pay items before starting this step or the drop-downs will be empty. See the next section for how to do this.</Note>

<Warning>The rate field you see on a service is for internal reporting only. Visualcare does not send rates to Xero for employee payroll - only hours. The rate in Xero's pay item is what determines what the worker gets paid.</Warning>

If you're setting up codes across many services at once, a bulk upload method is also available. Download the services spreadsheet, update the payroll code columns in Excel, and upload it back. Export the spreadsheet from **Maintenance** → **Services** → **All Services** → **Export CSV**. See [Services sync](/finance/services-sync) for the full process.

## Syncing pay items from your accounting software

Before you can select payroll codes on services, you need to pull the pay items from Xero into Visualcare.

1. Go to **Settings** → **Data Export** → **XERO**
2. Click **Sync Xero Pay Items**

This populates the payroll code drop-downs across all services. Run this sync whenever you add new pay items in Xero.

You'll also find sync buttons for employees and contacts on the same page. Run all syncs after the initial Xero connection to make sure all drop-downs are populated.

## Running a payroll export

Once workers have accounting codes, services have payroll codes, and timesheets are confirmed and approved, you're ready to export.

1. Go to **Timesheets** → **Data Export**
2. Set the date range to match your pay period
3. Click **Select All** (or select specific shifts)
4. Click **Export Timesheets** → **Export to Xero**

Visualcare checks each shift for a valid accounting code on the worker and a payroll code on the service. Any shifts with missing codes show an error at this stage.

5. Click **Process Export** to review the summary - pay item and hours for each entry
6. Click **Start Import** to send the data to Xero

The hours land in Xero as draft timesheets against each worker's employee record. From there, your team approves the timesheets in Xero and starts the pay run.

**Common export errors:**

| Error                           | Cause                                                          | Fix                                                                                                         |
| ------------------------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| No service payroll code         | The service has no payroll code set for the worker's pay level | Go to **Maintenance** → **Services**, find the service, and add the payroll code for the relevant pay level |
| Employee name not found in Xero | The worker has no accounting code on their profile             | Go to **Workers** → **Profile** → **Finance** tab and select the correct Xero employee                      |

<Note>If you get an error after clicking **Start Import**, the issue is in Xero, not Visualcare. Common causes include an incomplete employee profile in Xero, a missing pay run calendar, or pay items that aren't configured correctly. Your bookkeeper or the worker's Xero profile is the place to look.</Note>

## Running into issues?

See [Timesheet troubleshooting](/troubleshooting/timesheet-issues) for common errors and fixes. For Xero-specific export errors, see [Xero export troubleshooting](/troubleshooting/xero-export-errors).

## Related articles

<CardGroup cols={2}>
  <Card title="Exporting payroll data" icon="file-export" href="/finance/exporting-payroll-data">
    Export timesheet data to your payroll software
  </Card>

  <Card title="Award interpretation and pay rules" icon="scale-balanced" href="/finance/award-interpretation-and-pay-rules">
    How Visualcare interprets awards and applies pay rate overrides
  </Card>

  <Card title="Services sync" icon="arrows-rotate" href="/finance/services-sync">
    Map Visualcare services to accounting and payroll codes
  </Card>

  <Card title="Xero integration" icon="building-columns" href="/integrations/xero">
    Full Xero setup including connection, sync, and error reference
  </Card>
</CardGroup>
