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

# Xero integration

> How to connect Visualcare to Xero for invoice and payroll export, sync contacts, and configure accounting codes

Visualcare integrates with Xero to export client invoices and worker timesheet data directly from VCore. Once the API connection is established, you sync contacts, pay items, and invoice items between the two systems and export on demand.

## Linking VCore to Xero

To export any client invoice or worker timesheet data, the API connection between VCore and Xero needs to be established first.

<Steps>
  <Step title="Open accounting software settings">
    Go to **Settings** → **Data Export** → **Accounting Software**.
  </Step>

  <Step title="Select invoice export">
    If you want to connect to Xero to invoice clients, select **XERO2** from the **Invoice Export** drop-down and click **Save**.

    <img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138763-0.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=8848ef851582cd5e26f8c7bdab04e9e1" alt="Invoice export drop-down showing XERO2 selected" width="409" height="274" data-path="images/integrations/xero/image-1761890138763-0.png" />
  </Step>

  <Step title="Select timesheet export">
    If you want to connect to Xero to send worker timesheets, select **XERO2 / KeyPay** from the **Timesheet Export** drop-down and click **Save**.

    <img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138763-1.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=298f68ef8d99e59769fe84903686b3cd" alt="Timesheet export drop-down showing XERO2 / KeyPay selected" width="410" height="270" data-path="images/integrations/xero/image-1761890138763-1.png" />
  </Step>

  <Step title="Authorise the connection">
    Once the drop-downs have been selected, click **Authorise Xero**. Enter the company name when prompted, then proceed to connect to your Xero database.

    <img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138763-2.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=b09b76ba71f3e68b1b4bf3d0e8d8ab84" alt="Authorise Xero button in data export settings" width="925" height="370" data-path="images/integrations/xero/image-1761890138763-2.png" />
  </Step>

  <Step title="Allow access in Xero">
    If you're already logged in to Xero, select the organisation to connect and click **Allow Access**.

    <img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138763-3.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=365396df72ddda52ca146c5a845d27d6" alt="Xero organisation selection screen" width="457" height="727" data-path="images/integrations/xero/image-1761890138763-3.png" />

    If you're not logged in to Xero, you'll need to log in first, then select the organisation and click **Allow Access**.

    <img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-4.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=baa507b9464c03458eb63f4e6446d513" alt="Xero login screen" width="539" height="506" data-path="images/integrations/xero/image-1761890138764-4.png" />

    <Note>The authorisation screen requests access to several Xero scopes including Reports and Ledger. This access is used to retrieve invoice status from Xero back into Visualcare.</Note>
  </Step>

  <Step title="Verify the connection">
    Once connected, you'll see options to remove the Xero connection or review the connected organisation. Click **Show Connected Org Details** to check.

    <img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-5.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=7559deb9761375b8cf061e32c58c59e7" alt="Connected organisation details options" width="927" height="367" data-path="images/integrations/xero/image-1761890138764-5.png" />

    This opens the organisation details window:

    <img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-6.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=78635b6782234f9ea013f98f1db26221" alt="Xero connected organisation details" width="559" height="225" data-path="images/integrations/xero/image-1761890138764-6.png" />
  </Step>

  <Step title="Sync items from Xero">
    After the Xero connection has been established, items need to be synced from Xero into VCore. Under **Settings** → **Data Export** → **XERO**, click each of the sync buttons.

    <img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-7.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=53fb1def7a6aca855836b2d446d8befb" alt="Sync buttons for Xero data" width="763" height="68" data-path="images/integrations/xero/image-1761890138764-7.png" />

    These pull the relevant lists of items into drop-downs throughout VCore. For example, **Sync Contacts** obtains the list of contacts from Xero and populates the following drop-downs in VCore:

    | VCore field                         | Xero source                               |
    | ----------------------------------- | ----------------------------------------- |
    | Client profile: **Accounting Code** | Customer contacts from Xero               |
    | Payer profile: **Accounting Code**  | Customer contacts from Xero               |
    | Worker profile: **Accounting Code** | Employees and supplier contacts from Xero |
  </Step>
</Steps>

## Set up

### Payers

Payers link to a client profile or client agreement so that invoices export to the correct Xero contact. Payer profiles are created in **Maintenance** → **Payers**.

Once created, select an **Accounting Code** for the payer from the drop-down list in the **Contact** section. This drop-down is populated with contacts from Xero. Once selected, click **Save** in the top-left corner.

<Tip>If the Xero contact is not listed in the drop-down, make sure the contact is set up in Xero and click the **sync contacts** button in the top-right corner. If the contact still doesn't appear, the Xero connection may need to be re-established (see the linking steps above).</Tip>

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-8.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=21d7253caebe91c81925e4414f8eb46e" alt="Payer profile with Accounting Code drop-down" width="1255" height="879" data-path="images/integrations/xero/image-1761890138764-8.png" />

### Clients

Once payer profiles are created, you set up client profiles for export. There are three places the system looks to export invoices for a client:

1. Agreement payer
2. Client profile payer
3. Client profile accounting code

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-9.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=2c33574b1de75db70a6a94f4647bff17" alt="Agreement payer field on client agreement" width="388" height="551" data-path="images/integrations/xero/image-1761890138764-9.png" />

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-10.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=270e7fa26a316bd5b50673c962e81ccd" alt="Payer and accounting code fields on client profile" width="1422" height="425" data-path="images/integrations/xero/image-1761890138764-10.png" />

If the agreement **Payer** field (1) is blank, the system looks for the **Payer** listed in the client profile (2). If that is also blank, the system exports to the client profile **Accounting Code** (3).

This method allows you to have different Xero contacts invoiced for the same client depending on the payer selected at the agreement level. For example, you may have an NDIS participant who is both plan managed and self managed. For the plan managed shifts, you create a payer profile of the plan manager and select that payer in one agreement. You then have another agreement with the payer blank, and if the client profile payer is also blank, the system looks at the client profile **Accounting Code** to export for that agreement.

**Sending a client contact to Xero**

When creating a client profile in VCore, if that client also needs to be set up as a contact in Xero, click the **Send contact to Xero** button after saving.

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-11.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=15422197f34550ce4b85b729c1228ae1" alt="Send contact to Xero button on client profile" width="254" height="45" data-path="images/integrations/xero/image-1761890138764-11.png" />

This creates a new customer contact in Xero and sends the following fields:

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-12.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=4af5cb7d54d69a100f15caaeb7875419" alt="Fields sent to Xero when creating a client contact" width="549" height="545" data-path="images/integrations/xero/image-1761890138764-12.png" />

### Workers

First, make sure the worker has the correct **Payrate Level** set in **Worker Profile** → **Finance** → **Worker Details** → **Update Pay Level and Rates**.

<Note>For suppliers, the **Payrate Level** needs to be set to 0 for export. For employees, select the applicable **Payrate Level**.</Note>

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138764-13.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=bc4459e6b18d4d1a5349d9dd27603d53" alt="Payrate level field on worker profile" width="384" height="572" data-path="images/integrations/xero/image-1761890138764-13.png" />

At the bottom of the page there is a drop-down for the worker **Accounting Code** (1). This lists all employees and suppliers you've created as employees and contacts in Xero. Select the correct employee or supplier from the drop-down and click **Save** at the top-left of the page. This tells Visualcare which Xero employee or supplier to export their timesheets to.

When creating a worker profile in VCore, if that worker also needs to be set up as an employee in Xero, save the profile, go to the **Finance** tab, and under **Worker Details** click the **Send to Xero** button (2). Then click **Sync Contacts from Xero** (3) which brings the newly created contact back to the drop-down to select as an **Accounting Code**.

<Note>Setting employees up in Xero first is the recommended approach, since pay templates, tax details, and super are configured there. **Send to Xero** only creates a snapshot of the Visualcare data.</Note>

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138765-14.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=690a83c88b24de995330bfdce64ffeb3" alt="Worker accounting code, send to Xero, and sync contacts buttons" width="1917" height="886" data-path="images/integrations/xero/image-1761890138765-14.png" />

The fields below sync across to Xero when sending worker profile data. Items highlighted in pink are mandatory.

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138765-15.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=743dd47911511fd39ad00dc92cc3a582" alt="Worker fields that sync to Xero" width="545" height="513" data-path="images/integrations/xero/image-1761890138765-15.png" />

### Services (charge)

The charge amount for a service is set in **Maintenance** → **Services**.

You also need to select an **Accounting Code** for the service for export. This is the inventory item you've created in Xero. If the item you need is not listed, make sure it is set up in Xero and click **Sync Xero Invoice Items** in the top-right corner to bring them across.

Once the **Accounting Code** and all other relevant information is updated, click **Save** in the top-left corner.

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138765-16.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=4650316a9f9aac6c7cff706df5d74c00" alt="Service accounting code and sync invoice items" width="1278" height="461" data-path="images/integrations/xero/image-1761890138765-16.png" />

### Services (pay)

For paying the worker, Visualcare matches the service and the worker payrate level to find the payroll code to export. Payroll codes need to be selected for each service and payrate level when applicable for a successful export.

To select a **Payroll Code**, go to **Maintenance** → **Services**, select a service from the bottom table, and choose the **Payroll Code** from the drop-down for each pay level. Click **Save** in the top-left corner. If the pay item you need is not listed, make sure it is set up in Xero and click **Sync Xero Pay Items** in the top-right corner.

<Note>The pay rate amount listed is not exported for employee payroll. Only the payroll code is sent to Xero. The amount is sent for supplier payments, however.</Note>

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138765-17.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=a768cf906814e274ccfbe4da97d0b95a" alt="Payroll code selection for services" width="1291" height="456" data-path="images/integrations/xero/image-1761890138765-17.png" />

<Tip>For more information on configuring settings for Xero, see [Data export settings](/finance/invoicing-sync). For information on how to export to Xero, see [Exporting payroll data](/finance/exporting-payroll-data).</Tip>

## Tracking categories

Xero tracking categories let you tag invoice and payroll entries with an additional dimension, such as region, funding type, or cost centre, so you can report on them separately in Xero.

Visualcare maps a field from its data to a tracking category, so every exported entry carries the correct tracking value. There are two category slots:

| Category       | Purpose                                                      |
| -------------- | ------------------------------------------------------------ |
| **Category 1** | Invoice tracking                                             |
| **Category 2** | Payroll tracking (requires enablement by Visualcare support) |

<Warning>The value in Visualcare must exactly match the tracking category value in Xero. A mismatch causes a "tracking ID failed" error on export.</Warning>

### Configuring tracking categories

<Steps>
  <Step title="Open tracking settings">
    Go to **Settings** → **Data Export** and tick the **Tracking** checkbox. Fields for **Category Name** and **Link to Field** appear.
  </Step>

  <Step title="Enter the category name">
    In **Category Name**, type the exact name of the tracking category as it appears in Xero, for example `Region`. Check in Xero under **Settings** → **Accounting** → **Tracking Categories** to confirm the exact name before entering it here.
  </Step>

  <Step title="Select the linked field">
    Under **Link to Field**, choose the Visualcare field whose values populate the tracking category. The available fields differ between Category 1 and Category 2:

    | Field                       | Category 1 (invoices) | Category 2 (payroll) |
    | --------------------------- | --------------------- | -------------------- |
    | Agreement Reference 1       | Yes                   | Yes                  |
    | Agreement Type              | Yes                   | Yes                  |
    | Area                        | Yes                   | Yes                  |
    | Client Division             | No                    | Yes                  |
    | Client Funding Type         | Yes                   | No                   |
    | Client Name                 | No                    | Yes                  |
    | Client Type                 | Yes                   | Yes                  |
    | Service Reference 1         | Yes                   | Yes                  |
    | Service Type                | Yes                   | Yes                  |
    | Worker Division Description | No                    | Yes                  |
    | Worker Name                 | Yes                   | Yes                  |

    The values in the Visualcare field you select must match the tracking category options in Xero exactly. For example, if your Xero "Region" category has the options North, South, East, and West, your Visualcare **Area** field values need to use those same names.
  </Step>
</Steps>

### Limitations

**Tracking invoices by client name**

Xero's tracking category setup links to a Visualcare field rather than the client record itself, so there's no direct way to track invoices by participant name using Category 1.

As a workaround, you can enter the client name manually in **Agreement Reference 1** and link that field to Category 1. This is a manual step per agreement and doesn't scale well for large client lists.

**Location roster shifts**

Location roster shifts have no associated agreement, so fields like **Agreement Reference 1** have no value for those shifts. Linking a tracking category to an agreement-based field produces export errors for location roster shifts. Tracking by **Area** (the worker's area) is a more reliable option for providers using location rosters, though this maps to the house or location rather than individual participants.

**Payroll tracking (Category 2)**

Category 2 for payroll tracking is not active by default. Contact **[support@visualcare.com.au](mailto:support@visualcare.com.au)** to have it enabled.

<Note>When payroll tracking is enabled, Visualcare amalgamates hours to the pay item before applying the tracking value. If a worker has hours under multiple funding types on the same pay item, only the tracking value from the first entry is applied. To track payroll by funding type accurately, separate pay items per funding type are needed.</Note>

## Common errors

When exporting data to Xero, the system may display configuration errors that are causing the export to fail. Below is a list of common errors with solutions. If the solution doesn't resolve your issue or the error is not listed, contact **[support@visualcare.com.au](mailto:support@visualcare.com.au)** for help.

### Invoicing errors

#### Export summary errors

These errors appear on the export summary pop-up if the setup is incorrect.

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138766-18.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=2fac042a2f35f4f3d3c521177a79d5a6" alt="Export summary showing invoice errors" width="482" height="637" data-path="images/integrations/xero/image-1761890138766-18.png" />

| Error                                  | How to resolve                                                                                                                                                                                                                   |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **No agreement payer accounting code** | Go to **Maintenance** → **Payers**, search for the payer missing an accounting code, click on it, and select an **Accounting Code** from the drop-down. If the contact is not listed, click **sync contacts** in the top-right.  |
| **No client payer accounting code**    | Same resolution as above.                                                                                                                                                                                                        |
| **Client missing accounting code**     | Go to the client profile and select a code in the **Accounting Code** drop-down or select a **Payer** if applicable.                                                                                                             |
| **Service missing accounting code**    | Go to **Maintenance** → **Services**, search for the service missing an **Accounting Code**, click on it, and select the code from the drop-down. If the code is not listed, click **Sync Xero Invoice Items** in the top-right. |

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138766-19.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=bbdd412687118e10279151a39c2bb4b5" alt="Payer accounting code fix" width="635" height="862" data-path="images/integrations/xero/image-1761890138766-19.png" />

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138766-20.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=a0fe68f98dbf5369e47a92fdb6d8b056" alt="Client accounting code fix" width="1917" height="604" data-path="images/integrations/xero/image-1761890138766-20.png" />

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138767-21.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=b7a6dd31fd74aa10282200fce12455d0" alt="Service accounting code fix" width="947" height="787" data-path="images/integrations/xero/image-1761890138767-21.png" />

#### Export status errors

If you get an error on the export status page before clicking **Start Import**, it means the payer, client, or service does not have an accounting code selected. See the resolutions above.

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138767-22.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=a7188d9ca5e9defdf330918d7f146cdf" alt="Export status error before import" width="1916" height="332" data-path="images/integrations/xero/image-1761890138767-22.png" />

| Error                                                         | How to resolve                                                                                                                                                                                                                      |
| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Accounting code missing in Visualcare - try syncing again** | Go to **Settings** → **Data Export** → **XERO** and click all the sync buttons, then try the export again.                                                                                                                          |
| **Missing code in Xero** (service-related)                    | Make sure the inventory item is set up and active in Xero.                                                                                                                                                                          |
| **Missing code in Xero** (kilometre-related)                  | Go to **Settings** → **Finance** → **Kilometre** and make sure the codes are entered. Also check the client agreement to see if override has been ticked. If so, make sure a code is selected or untick override if not applicable. |
| **Error: To update fields on a paid invoice line item**       | Go to **Settings** → **Data Export** → **Accounting Software** and update the **Next Invoice Number**. This occurs when the next invoice number has already been created in Xero.                                                   |
| **Invoice not of valid status for modification**              | Same resolution as above.                                                                                                                                                                                                           |

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138767-23.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=e8416ce598a02fd0d4ba790376737e24" alt="Sync buttons in Xero settings" width="698" height="86" data-path="images/integrations/xero/image-1761890138767-23.png" />

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138767-24.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=7a384a7e4c46ae3bf4dd9c194dde4835" alt="Kilometre settings for Xero" width="1912" height="315" data-path="images/integrations/xero/image-1761890138767-24.png" />

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138767-25.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=fa1af7ebe2a5c7813385874c61044f10" alt="Next invoice number setting" width="972" height="529" data-path="images/integrations/xero/image-1761890138767-25.png" />

### Payroll errors

#### Export summary errors

| Error                                 | How to resolve                                                                                                                                                                                 |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **No support worker accounting code** | Go to **Worker Profile** → **Finance** and select an **Accounting Code** in the worker profile. See the Workers set up section above.                                                          |
| **No service payroll code**           | Go to **Maintenance** → **Services**, search for the service, click on it, and select a payroll code for the level you were attempting to export. See the Services (pay) set up section above. |

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138767-26.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=199589818a7af79db5f0dabfd4d257fb" alt="Payroll export summary errors" width="489" height="519" data-path="images/integrations/xero/image-1761890138767-26.png" />

#### Export status errors

| Error                                                                 | How to resolve                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **FAIL undefined** or **Array no session**                            | Go to **Settings** → **Data Export** and click the pink **Clear Xero Token**. Navigate back to the same page and click **Authorise Xero**. Log into your Xero to re-establish the connection. Sync pay items and try the export again.                                                                                                                                                                                                                                                                                                                                        |
| **Employee doesn't have a pay run calendar**                          | Make sure the worker has a pay calendar set in Xero.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| **FAIL! Null**                                                        | This occurs when too many first aid allowances are exported. Select fewer items for export.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **Employee name not found in Xero**                                   | Go to the worker profile and make sure a worker accounting code is selected. This error is also caused by an apostrophe in the employee name on Xero preventing the data from being read. Remove the apostrophe from the Xero contact, resync, reselect the worker accounting code, and try the export again.                                                                                                                                                                                                                                                                 |
| **FAIL: Earnings Rate does not exist or is not valid for timesheets** | Check the pay item on Xero. Common causes: (1) the **Types of Units** for the pay item is not set to **Hours**, (2) the Xero pay item is not set up or active, (3) exporting a payroll code not in the pay template for the employee, (4) the pay item is set as an allowance, or (5) an apostrophe in a pay item name. Make sure the item is correctly set up as OTE or Reimbursement with Type of Units as Hours and is active. If using pay templates, make sure it has been added to the template. Remove any apostrophes in pay items, resync, and try the export again. |
| **TrackingItemID is required for each timesheet line**                | This occurs when timesheet tracking is enabled in Xero but not set up in Visualcare. Either disable timesheet tracking on Xero or contact [support@visualcare.com.au](mailto:support@visualcare.com.au) to set up timesheet tracking. Have your Xero category name and options ready along with the Visualcare field you'd like to map to.                                                                                                                                                                                                                                    |
| **FAIL A validation exception occurred**                              | This is due to a mismatch with the kilometre pay type and pay codes. Go to **Settings** → **Finance** → **Kilometre** and check how your KM pay codes are set up in Xero. Then go to **Settings** → **Data Export** → **XERO** → **KM Pay Type** and select **pay item** if the codes are Ordinary Time Earnings, or **reimbursement** if they're reimbursements.                                                                                                                                                                                                             |
| **No pay runs found**                                                 | This occurs when you export kilometres without a matching pay run. Create a pay run in Xero for the time period and try the KM export again.                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| **No payslips found on payrun**                                       | This occurs when you attempt to export kilometres or expenses but the timesheets have not been approved in Xero. Approve timesheets in Xero and try the export again.                                                                                                                                                                                                                                                                                                                                                                                                         |
| **Provided period doesn't correspond with a pay period**              | Check the pay calendar set up on Xero for the employee.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138767-27.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=72e0bbfdec535393025d5aaf6a985f52" alt="Clear Xero token and reauthorise" width="183" height="166" data-path="images/integrations/xero/image-1761890138767-27.png" />

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138767-28.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=ea6487729a1bd0914e92bb4b1cf73a61" alt="Worker accounting code selection" width="1913" height="346" data-path="images/integrations/xero/image-1761890138767-28.png" />

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138768-29.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=8f592c36a5443b51d42623ee1e2bc146" alt="Pay item configuration in Xero" width="807" height="176" data-path="images/integrations/xero/image-1761890138768-29.png" />

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138768-30.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=1933752f1e0568a9dbe72a34d3f9b4c4" alt="Kilometre pay type settings" width="917" height="616" data-path="images/integrations/xero/image-1761890138768-30.png" />

<img src="https://mintcdn.com/visualcare/QeIH4s4irGifZQzI/images/integrations/xero/image-1761890138768-31.png?fit=max&auto=format&n=QeIH4s4irGifZQzI&q=85&s=e7beb4d66bee20c1e118ebd6c3bb0c85" alt="Kilometre finance settings" width="929" height="738" data-path="images/integrations/xero/image-1761890138768-31.png" />

## Running into issues?

See [Integration troubleshooting](/troubleshooting/integration-issues) for additional common errors and fixes.

## Related articles

<CardGroup cols={2}>
  <Card title="KeyPay integration" icon="credit-card" href="/integrations/keypay">
    Connect Visualcare to KeyPay for payroll export
  </Card>

  <Card title="Exporting payroll data" icon="file-export" href="/finance/exporting-payroll-data">
    How to export timesheets and payroll data from Visualcare
  </Card>

  <Card title="Invoicing and billing" icon="file-invoice-dollar" href="/finance/claiming-invoicing-overview">
    Overview of billing and claiming in Visualcare
  </Card>

  <Card title="Invoicing sync" icon="arrows-rotate" href="/finance/invoicing-sync">
    Set up and manage invoice data sync
  </Card>
</CardGroup>
