> ## 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.

# Services sync

> How to map Visualcare services to accounting codes and payroll codes so that invoicing and payroll exports work correctly.

Services are the bridge between Visualcare and your accounting software. Every service your organisation delivers needs two types of codes before you export: an accounting code that drives invoicing, and a payroll code for each pay level that drives payroll. Getting these mapped correctly means exports run cleanly without errors or missing line items.

## How services connect to your accounting software

Each service in Visualcare has two distinct code fields:

* **Accounting Code** - links the service to a Xero inventory item. Visualcare uses this when building invoice lines, and it also carries the charge rate
* **Payroll Code** - links the service to a Xero pay item for a specific pay level. Visualcare uses this when exporting timesheet hours

These two fields serve different purposes and feed different exports. Accounting codes support invoicing. Payroll codes support payroll. Both need to be set up before you run either export.

<Note>
  Visualcare exports charge rates for invoicing (because rates vary by participant location and support ratio), but sends hours only for payroll. The rate on a Xero pay item determines what workers are paid, not the rate field in Visualcare.
</Note>

## Syncing items from your accounting software

Before configuring services, pull your Xero inventory items and pay items into Visualcare. This populates the drop-downs you'll use when setting codes on services.

<Steps>
  <Step title="Open Data Export settings">
    Go to **Settings** → **Data Export** → **XERO**.
  </Step>

  <Step title="Run all syncs">
    Click each of the sync buttons on this page:

    * **Sync Xero Invoice Items** - pulls your Xero inventory item catalogue into Visualcare (used for accounting codes on services and clients)
    * **Sync Xero Pay Items** - pulls your Xero pay items into Visualcare (used for payroll codes on services)
    * **Sync Employees** and **Sync Contacts** - used for worker and client mapping respectively

    These syncs aren't automatic. Run them again whenever you add new items in Xero.
  </Step>
</Steps>

<Tip>
  If your Xero file is new and has no inventory items yet, you can bulk upload the full NDIS service catalogue to Xero first and then sync. This is much faster than creating items one by one. Contact the Visualcare helpdesk for a template file.
</Tip>

<Accordion title="Bulk uploading the template to Xero">
  1. Open the template in Excel or Google Sheets and check the **Sales Account** column - the template assumes your sales account is **200**. If yours is different, update all rows before uploading (check an existing inventory item in Xero if you're unsure)
  2. In Xero, go to **Sales** → **Products and Services** and click **Import** → **Items**
  3. Choose the CSV, click **Continue**, and review the import preview
  4. Click **Import**

  If the preview warns that descriptions are too long (over 50 characters), you can ignore it - Visualcare overrides the descriptions when you export invoices. Once imported, run **Sync Xero Invoice Items** in Visualcare as described above.
</Accordion>

## Setting accounting codes on services

The accounting code on a service tells Visualcare which Xero inventory item to use on invoice line items for that service.

<Steps>
  <Step title="Open Services">
    Go to **Maintenance** → **Services**.
  </Step>

  <Step title="Select a service">
    Click on a service to open it.
  </Step>

  <Step title="Set the accounting code">
    Locate the **Accounting Code** field and select the matching Xero inventory item from the drop-down.

    If your Visualcare service codes match your Xero inventory item codes (for example, both use `01_015_0107_1_1`), Visualcare auto-populates this field when you sync invoice items. Check the field is populated rather than assuming it is.

    If the codes don't match (for example, one uses underscores and the other uses hyphens), select the correct inventory item manually.
  </Step>

  <Step title="Save">
    Click **Save**. Repeat for every service you invoice clients for.
  </Step>
</Steps>

<Note>
  You only need accounting codes on services you actually provide, not every service in the NDIS catalogue.
</Note>

## Setting payroll codes on services

Each service needs a payroll code for every pay level your organisation uses. This is the intersection that tells Visualcare: "when a worker at this pay level delivers this service, export those hours to this Xero pay item."

The number of mappings required equals the number of services you provide multiplied by the number of pay levels you use. For example, 20 services across 4 pay levels means 80 mappings.

<Steps>
  <Step title="Open Services">
    Go to **Maintenance** → **Services** and click on a service.
  </Step>

  <Step title="Review the pay level rows">
    You'll see a row for each pay level label configured in **Settings** → **Finance** → **Pay Levels**. Each row represents a different worker classification tier.
  </Step>

  <Step title="Select payroll codes">
    For each pay level row, select the matching Xero pay item from the payroll code drop-down.

    For example, for a Weekday Daytime service:

    * SCHADS Level 1 Casual row → select "SCHADS L1 Casual Day"
    * SCHADS Level 2 Casual row → select "SCHADS L2 Casual Day"
    * And so on for each level

    Work through every service your organisation delivers.
  </Step>

  <Step title="Save">
    Click **Save** after completing each service.
  </Step>
</Steps>

<Warning>
  The rate field visible on a service is for internal reporting only. Visualcare does not send rates to Xero for payroll exports. The pay item in Xero determines what workers are paid.
</Warning>

<Note>
  Payroll code drop-downs are populated from Xero pay items. If the drop-downs are empty, go to **Settings** → **Data Export** → **XERO** and click **Sync Xero Pay Items** before returning to this step.
</Note>

## Mapping services in bulk

If you have a large number of services, a bulk spreadsheet method lets you map payroll codes in Excel and upload them all at once. This is faster than clicking through each service individually, particularly if you use most of the NDIS catalogue.

<Steps>
  <Step title="Export the services spreadsheet">
    Go to **Maintenance** → **Services** and click **All Services** (top left), then click **Export CSV** (top right). Save the file to your computer.
  </Step>

  <Step title="Prepare the spreadsheet">
    Open the CSV in Excel. Select the header row and go to **Data** → **Sort & Filter** → **Add Filter** to enable drop-down filtering on each column. This is important when you're working across hundreds of rows.
  </Step>

  <Step title="Map payroll codes by shift type">
    The most efficient approach is to filter by shift type and fill all services of that type at once:

    1. Click the drop-down arrow on the **Service Name** column
    2. Filter to a shift type (for example, "Sunday")
    3. For each pay level column, enter the matching payroll code for all visible rows
    4. Drag or paste the code down the column
    5. Repeat for each shift type: weekday daytime, weekday evening, Saturday, Sunday, public holiday, and sleepover if applicable
  </Step>

  <Step title="Upload the updated spreadsheet">
    Save the file as a CSV. In Visualcare, go to **Maintenance** → **Services** → **All Services** and click **Import CSV**. Select your file, click **Upload**, then click **Save**.
  </Step>
</Steps>

<Tip>
  Use exact award terminology when labelling pay levels in **Settings** → **Finance** → **Pay Levels**. When pay level labels match the language in your award, it's much easier to select the right payroll code for each service row.
</Tip>

## Running into issues?

See [Finance troubleshooting](/troubleshooting/general) for common errors and fixes. If services are missing accounting or payroll codes, see [Xero export troubleshooting](/troubleshooting/xero-export-errors).

## Related articles

<CardGroup cols={2}>
  <Card title="Service management" icon="gear" href="/operations/service-management">
    Create and configure services in Visualcare
  </Card>

  <Card title="Invoicing sync" icon="arrows-rotate" href="/finance/invoicing-sync">
    How invoice data flows to your accounting software
  </Card>

  <Card title="Payroll sync" icon="arrows-rotate" href="/finance/payroll-sync">
    How payroll data flows to your accounting software
  </Card>

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