Help centre

Xero integration for locums

Link your Sessional account to your Xero organisation, map your account codes and use Sync now to send accounting records and check payment status.

What the Xero integration does

The Xero integration sends accounting records from Sessional to your selected Xero organisation. After setup, choose Sync now on the Integrations page to run the sync:

  • Contacts: Sessional looks for existing contacts by name and creates workplace contacts where it finds no match
  • Invoices: your Sessional invoices are created in Xero as approved sales invoices (ACCREC) in AUD, with line items and your invoice number carried across
  • Expenses: eligible expenses post as bills (ACCPAY) under the account code you choose
  • Payments back: when a payment check finds a linked invoice marked paid in Xero, Sessional marks the matching invoice as paid

Connecting your Xero organisation

Setup has three steps:

  1. Connect to Xero: from the Integrations page, choose Connect to Xero. You are sent to Xero to sign in and approve access using OAuth 2.0 with PKCE.
  2. Select your organisation: choose the organisation to sync and press Use this account. If only one is available, it is preselected.
  3. Map your account codes: choose accounts from your Xero chart of accounts, then press Save and finish setup.

Sessional stores encrypted OAuth tokens and attempts to refresh expired access tokens when making Xero requests. If the connection fails, check the error shown on Integrations.

Mapping your account codes

During setup you map supported categories to codes in your Xero chart of accounts. The available mappings are:

  • Invoice income (Sales) (required): the income account your invoice lines post to
  • Expenses: Fuel, Mileage, Equipment, Training, Insurance, Subscriptions, Professional fees and Other expenses, each mapped to one of your expense accounts

A sales code is mandatory because invoices have to land somewhere; the expense mappings are yours to set. If a category is not mapped, expenses in that category are skipped during sync. Review your choices with your accountant.

How and when syncing happens

Press Sync now on Integrations. A run checks contacts, sends eligible invoices and expenses, handles eligible invoice voids, and checks linked invoices for payments. Some details worth knowing:

  • Invoices push as approved: creating the Xero invoice does not create a payment in Xero
  • Eligible invoices: issued, acknowledged and overdue invoices are checked, along with paid invoices that have no stored Xero invoice link
  • Hourly shift lines: hours and rate are sent when they reconcile to the stored line amount; otherwise the line uses a quantity of one at that amount
  • Expense limits: a run checks the newest 200 expenses. If older expenses are outside that set, the sync reports incomplete coverage and asks you to contact support
  • Existing records: Sessional checks stored invoice links and Xero references before creating records. Review sync errors and check existing records in Xero before retrying

Payments flowing back to Sessional

Sessional accepts signed Xero invoice notifications and queues them for processing. The worker checks the linked invoice in Xero and marks the Sessional invoice paid when Xero reports it paid. Partial payment detections are logged without marking the invoice paid. Sync now also checks payment status.

Check the invoice status in Sessional after processing. A payment notification does not import edits to the invoice description or line items from Xero.

A note on GST and BAS

Sessional sends tax types based on the recorded invoice line or expense treatment and the available tax rates in your Xero organisation. Account mapping alone does not determine that treatment. Review the saved GST details before syncing, and ask your registered tax agent to check the result before using it for a lodgement.

Disconnecting

You can disconnect Xero whenever you like from the Integrations page. When you do:

  • No further data syncs in either direction
  • The connection and stored invoice links are removed from Sessional
  • Anything already synced stays put in Xero: nothing is deleted
  • Invoices already marked paid in Sessional keep their paid status
  • Your stored Xero tokens are deleted from Sessional

If you reconnect, select the organisation and map account codes again. Check existing invoices and bills in Xero before syncing, particularly if you have changed organisation or edited records there.

Frequently asked questions

What do I need to connect Xero?
You need Sessional Pro and access to a Xero organisation you can authorise. Select one organisation, map your account codes and use Sync now from Integrations.
Will my older invoices sync when I first connect?
The sync checks issued, acknowledged and overdue invoices, plus paid invoices with no stored Xero invoice link. A run checks up to 200 eligible invoices. Review the sync result and your Xero records before assuming a backlog is complete.
Does the integration set GST on my Xero invoices?
Sessional sends tax types based on the recorded line treatment and available Xero tax rates. Review the GST details in both systems with your registered tax agent.
What happens if I edit an invoice directly in Xero?
Invoice description and line-item edits in Xero are not imported into Sessional. Payment checks happen during Sync now and when queued invoice notifications are processed.
How does Sessional connect to Xero?
You authorise access on Xero using OAuth 2.0 with PKCE. Sessional stores encrypted access and refresh tokens. Use Disconnect on Integrations to remove the connection from Sessional.

Connect your locum records to Xero

Xero sync is available on Pro. Set up your organisation and account mapping, then review the results of each sync.