Integration
ServiceM8 not syncing with Xero at all? Start with the connection
When no invoices, payments or contacts move between ServiceM8 and Xero, the connection itself has usually dropped. ServiceM8 loses access 12 months after connecting, when the app is disconnected inside Xero, when the Xero subscription expires or during Xero outages, and shows a Xero Access Token Has Expired notice. Click Authorise ServiceM8 With Xero to reconnect.
Last checked 25 Sep 2026 against the sources listed at the end of this page.
Symptom: Nothing is moving: approved invoices sit without a green tick, payments made in Xero never show in ServiceM8, and new Xero contacts do not appear, across every job rather than one.
Causes, most common first
The Xero access token has expired. ServiceM8 needs you to reauthorise 12 months after connecting.
Check: Open Invoicing in the ServiceM8 Online Dashboard and look for the 'Xero Access Token Has Expired' notice at the top.
Fix: Click Authorise ServiceM8 With Xero, log in with a Xero user who can see the organisation, select the right organisation and authorise. Then approve anything stuck in Awaiting Approval again.
Someone disconnected ServiceM8 from inside Xero, often a bookkeeper tidying the Connected apps list or changing Xero users.
Check: In Xero, open Settings, Connected apps. If ServiceM8 is missing, it was disconnected from Xero's side, and ServiceM8 shows the same expired token notice.
Fix: Reauthorise from ServiceM8's Invoicing page, and agree with your bookkeeper that ServiceM8 stays on the Connected apps list.
The Xero subscription lapsed, the trial ended or the organisation was moved to a plan that restricts invoicing.
Check: In Xero, check the organisation's subscription status. Approvals that fail with 'You have reached the limit of invoices you can approve' point to a capped plan.
Fix: Renew or upgrade the Xero plan (Xero sends businesses raising more than 20 invoices from Ignite to Grow), reauthorise ServiceM8 if the notice shows, then approve the backlog.
ServiceM8 is connected to a different Xero organisation, such as a demo company, a trust or an old entity.
Check: Switch organisations in Xero and search for the invoice numbers of recently approved jobs. If they are in the wrong file, this is the cause.
Fix: Reconnect ServiceM8 to the correct organisation. For each affected job, change it to Work Order and save, back to Completed and save, then approve again.
Xero's API is interrupted. ServiceM8 lists Xero API outages as one of the reasons the connection notice appears.
Check: Check Xero's status page. If Xero reports an incident, the connection will not hold until it clears.
Fix: Wait for Xero to recover, then reauthorise if the notice is still showing and approve anything that failed.
The reconnection itself fails with an 'app has requested access to data' error because Automated Timesheet Sync needs Xero Payroll access.
Check: The error appears while authorising, and the Automated Timesheet Sync add-on is switched on.
Fix: Turn off Automated Timesheet Sync, complete the Xero connection, confirm both the Xero organisation and your Xero user have Payroll access, then switch the timesheet add-on back on.
It is working, but the part you are waiting on is slow or one way by design.
Check: Compare what you expect with the sync rules: payments and contacts take up to 30 minutes, tracking categories up to 24 hours, and ServiceM8 clients only reach Xero with their first approved invoice.
Fix: Wait out the sync window. If one specific invoice is stuck while others flow, work through the single invoice causes instead.
Is it the connection, or one invoice?
The quickest test is to look at more than one job. If yesterday's invoices went through with green ticks and today's one has a red X, the connection is fine and that invoice has its own problem: a zero total, a duplicate number or an archived contact. If every approval since a certain date is stuck, payments have stopped coming back and new Xero customers are missing from ServiceM8, the link between the two systems has failed and nothing will move until it is restored.
ServiceM8 tells you when it has lost access. The Invoicing page shows a 'Xero Access Token Has Expired' notice, and the fix in almost every case is the Authorise ServiceM8 With Xero button in that notice. ServiceM8 lists four triggers for it: 12 months after the connection was made, the app being disconnected from within Xero, the Xero subscription expiring, and interruptions to Xero's API.
Reconnecting without making a mess
Before you click authorise, know which Xero organisation is the live one. Many trade businesses have more than one in the same Xero login: the operating company, a trust, an old sole trader file or Xero's demo company. ServiceM8 sends to whichever organisation you pick at the authorise screen, and picking the wrong one quietly sends invoices, clients and payments into the wrong books.
Once reconnected, go to Invoicing, Awaiting Approval. Anything approved while the link was down that failed will need approving again. Payments recorded in Xero during the outage come back on the normal 30 minute cycle once the link is live. Do not re-enter those payments in ServiceM8 by hand, because payments recorded in ServiceM8 after approval are sent to Xero and would double up.
Stop it happening again
The 12 month expiry is predictable, so put a reminder in the calendar for a week before the anniversary of the connection and reauthorise on your own schedule. Agree with your bookkeeper or accountant that nobody removes ServiceM8 from Xero's Connected apps and that any Xero plan change is checked against how many invoices you raise a month.
There is no dedicated ServiceM8 report of which Completed jobs never reached Xero. The Awaiting Approval tab is the working list, and the Advanced Reporting Pack's custom reports can export the Exported to Accounting Package fields if you need a check across a longer period.
Sources
- The 'Xero Access Token Has Expired' notice appears 12 months after connecting to Xero, if ServiceM8 is disconnected from within Xero, if the Xero subscription expires, or if there are interruptions to Xero's API; the fix is the Authorise ServiceM8 With Xero button. ServiceM8 Help Center, checked 25 Sep 2026.
- Connecting requires selecting the Xero organisation to connect with ServiceM8 and clicking Authorise; existing Xero customers and items are then imported. ServiceM8 Help Center, checked 25 Sep 2026.
- With multiple Xero organisations an approved invoice may sync to a different organisation; the fix is to re-integrate with the correct organisation, change the job to Work Order and back to Completed saving each time, and approve again. ServiceM8 Help Center, checked 25 Sep 2026.
- Xero accounts on a trial or a plan with an invoice limit return 'You have reached the limit of invoices you can approve', and must subscribe to a plan that includes the number of invoices required. ServiceM8 Help Center, checked 25 Sep 2026.
- In Xero, connected apps are reviewed and disconnected under the organisation's Settings, Connected apps; disconnecting takes effect immediately and no new data is sent to the app. Xero Central, checked 25 Sep 2026.
- Xero's Ignite plan directs businesses sending more than 20 invoices to the Grow plan. Xero, checked 25 Sep 2026.
- The 'app has requested access to data' error when connecting to Xero stems from Automated Timesheet Sync requiring Xero Payroll access; the fix is to turn the add-on off, reconnect, confirm Payroll permissions, then turn it back on. ServiceM8 Help Center, checked 25 Sep 2026.
- Payments in Xero sync to ServiceM8 within 30 minutes, ServiceM8 clients go to Xero only with an approved invoice, and payments received in ServiceM8 after approval are sent to Xero immediately. ServiceM8 Help Center, checked 25 Sep 2026.
- Xero tracking categories sync once a day, so changes can take up to 24 hours to appear in ServiceM8. ServiceM8 Help Center, checked 25 Sep 2026.
- ServiceM8 has no dedicated report splitting Completed jobs by whether they were sent to Xero; Awaiting Approval lists those not yet sent, and Custom Reports in the Advanced Reporting Pack can export Exported to Accounting Package fields. ServiceM8 Help Center, checked 25 Sep 2026.