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:
- 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.
- Select your organisation: choose the organisation to sync and press Use this account. If only one is available, it is preselected.
- 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?
Will my older invoices sync when I first connect?
Does the integration set GST on my Xero invoices?
What happens if I edit an invoice directly in Xero?
How does Sessional connect to Xero?
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.