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

# Invoicing sync

> How to configure Visualcare to export invoices to Xero, including syncing inventory items, mapping accounting codes on services, and linking client profiles to Xero contacts.

When you export invoices from Visualcare, the system uses a chain of mappings to build each invoice correctly. It matches services to Xero inventory items and clients (or their payers) to Xero contacts. Setting up these mappings before your first export saves time and prevents errors.

Unlike payroll export, invoice exports include charge rates. This is because rates vary depending on factors like participant location and support ratio, so the rate needs to travel with the invoice line item.

## How invoicing sync works

Each time you run an invoice export, Visualcare works through the following:

1. For each shift, it reads the service's **Accounting Code** to identify the matching Xero inventory item
2. It checks the agreement for a payer - if one is set, the invoice goes to that payer's Xero contact
3. If no agreement payer is set, it checks the client profile for a payer
4. If no payer is found, it invoices the client's own **Accounting Code** (their Xero contact)
5. Invoices land in Xero as drafts, ready for you to review and approve

The priority order for determining where an invoice goes is:

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

## Syncing invoice items from Xero

Before you configure services, pull your Xero inventory items into Visualcare so they're available in drop-downs.

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

  <Step title="Sync Xero invoice items">
    Click **Sync Xero Invoice Items**.

    This pulls your Xero inventory item catalogue into Visualcare. The sync isn't automatic - run it again whenever you add new inventory items in Xero.
  </Step>
</Steps>

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

## Configuring services for invoice export

Each service needs an **Accounting Code** that points to a Xero inventory item. Without this, the service won't export on invoices.

<Steps>
  <Step title="Open Services">
    Go to **Maintenance** → **Services** and select a service.
  </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 all services 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>

## Configuring payers and client accounting codes

Visualcare needs to know which Xero contact to raise each invoice against. How you configure this depends on how the client's funding is managed.

### Plan-managed clients

For plan-managed clients, set the client's **Accounting Code** (in their Visualcare profile) to the participant's contact in Xero - not the plan manager.

Most providers create the participant as the Xero contact but use the plan manager's email address on that contact. This way, bulk-sending invoices from Xero delivers them to the plan manager for payment, while the invoice itself is still addressed to the participant. Many plan managers reject invoices not addressed to the participant, so this setup avoids that problem.

<Steps>
  <Step title="Open the client profile">
    Go to **Clients** → **Profile** and select the client.
  </Step>

  <Step title="Set the accounting code">
    In the **Accounting Code** field, select the participant's Xero contact.

    If the contact doesn't exist in Xero yet, click **Send Contact to Xero** to push the client's Visualcare data across as a new Xero contact. You or the client can update the email address in Xero afterwards.
  </Step>

  <Step title="Leave the Payer field blank">
    For plan-managed clients, leave the **Payer** field empty. The invoice goes to the participant contact, which has the plan manager's email.
  </Step>
</Steps>

### Agency-managed clients

Agency-managed clients are invoiced directly to NDIS. Providers typically record these in Xero for bookkeeping but don't send the invoices from Xero to the agency - that goes through Proda PACE upload instead.

To route agency-managed invoices to an NDIS contact in Xero:

<Steps>
  <Step title="Create a payer record">
    Go to **Maintenance** → **Payers** and click **Add Payer**.

    Enter a payer code and name (for example, "NDIS"). In the **Accounting Code** field, select the NDIS contact from your Xero contacts.
  </Step>

  <Step title="Assign the payer to the client">
    In the client profile, set the **Payer** field to "NDIS" and leave **Accounting Code** blank.

    All invoices for this client go to the NDIS Xero contact.
  </Step>
</Steps>

### Clients with mixed funding (plan-managed and agency-managed services)

Some clients have services funded both by NDIS directly and through a plan manager. Don't set a payer on the client profile in this case. It would send all invoices to NDIS, including the plan-managed ones.

Instead, configure payers at the agreement level:

<Steps>
  <Step title="Set the client accounting code">
    In the client profile, set **Accounting Code** to the participant's Xero contact. Leave **Payer** blank.
  </Step>

  <Step title="Create two agreements">
    Under the client's agreements:

    * **Agency-managed agreement**: Set **Payer** to "NDIS" and list the agency-managed services
    * **Plan-managed agreement**: Leave **Payer** blank and list the plan-managed services
  </Step>
</Steps>

The system checks the agreement payer first. If set, it uses that. If blank, it falls back to the client profile payer, then the client accounting code. This means agency services invoice to NDIS, and plan-managed services invoice to the participant's contact.

<Accordion title="Priority order for invoice routing">
  The system resolves where to send each invoice in this order:

  1. **Agreement payer accounting code** - checked first. If the agreement has a payer with an accounting code, the invoice goes to that Xero contact
  2. **Client profile payer** - if no agreement payer is set, the system checks the client profile for a payer
  3. **Client profile accounting code** - if neither payer field is set, the invoice goes to the client's own Xero contact
</Accordion>

## Running an invoice export

Once services and client profiles are configured, you're ready to export.

<Steps>
  <Step title="Go to Data Export">
    Go to **Timesheets** → **Data Export** and set the date range to cover the period you're invoicing.
  </Step>

  <Step title="Select shifts">
    Click **Select All** or select specific shifts to include in this export.
  </Step>

  <Step title="Start the export">
    Click **Export Invoices** → **Export to Xero**.

    Visualcare checks each shift for:

    * A client or payer accounting code
    * A service accounting code

    If anything is missing, you'll see an error message identifying the gap.
  </Step>

  <Step title="Review and confirm">
    Click **Process Export** to see a summary showing the contact name, service code, hours, and date for each invoice line.

    Review this before proceeding - once you click **Start Import**, invoices are created in Xero.
  </Step>

  <Step title="Approve in Xero">
    Invoices land in Xero as drafts under **Sales** → **Invoices**. Review, approve, and send them from there.
  </Step>
</Steps>

<Tip>
  Set your invoice prefix to "VC" in **Settings** → **Data Export**. This prevents invoice number conflicts if anyone creates invoices manually in Xero.
</Tip>

<Warning>
  If you get an error after clicking **Start Import**, the issue is in Xero, not Visualcare. Common causes include incomplete Xero inventory item setup or a contact that no longer exists. Fix the Xero configuration and re-run the export.
</Warning>

<Accordion title="GST on invoices">
  If invoices are exporting with GST when they should be GST-free, go to **Settings** → **Data Export** → **Xero section** and tick **Xero Use GST**. This tells Visualcare to apply its own GST codes rather than pulling them from the Xero inventory item settings.
</Accordion>

## Running into issues?

See [Integration troubleshooting](/troubleshooting/integration-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="Billing to accounting software" icon="building-columns" href="/finance/billing-to-accounting-software">
    Export invoices to Xero, MYOB, and other accounting platforms
  </Card>

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

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

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