The ServiceM8 Xero integration pushes completed jobs into Xero as draft invoices so you do not re-key every line item. Turn it on once, map your tax codes and items, and invoices flow across in seconds instead of eating your evenings. Below is exactly how to set it up, the errors that trip most tradies up, and what to do when the native sync is not enough.
Updated 09/08/2026
Key takeaways
- ServiceM8 pushes completed jobs to Xero as draft invoices, but you need to map your tax codes, items and contacts correctly or invoices silently fail to sync.
- The three most common sync errors are mismatched tax codes, a disconnected OAuth token, and duplicate contacts, all fixable without a developer.
- The native integration covers invoices out but does not pull payments, purchase orders or supplier bills back into ServiceM8.
- If you are spending more than 30 minutes a week fixing sync errors or re-keying data, an automation layer on top of the native connector saves time and catches the gaps.
What does the ServiceM8 Xero integration actually do?
ServiceM8 connects to Xero through an OAuth link you authorise inside ServiceM8's settings. Once connected, every job you mark as complete in ServiceM8 creates a draft invoice in Xero with the customer name, line items, quantities and tax codes pulled straight from the job. ServiceM8 connects to Xero, MYOB and QuickBooks as supported accounting providers (ServiceM8 add-ons directory).

What crosses over:
- Invoices out. Completed jobs push to Xero as drafts (or approved invoices if you choose). Line items, descriptions, quantities and unit prices all carry across.
- Contacts. ServiceM8 matches or creates Xero contacts by name and email. A mismatch here is the most common duplicate-contact headache.
- Tax codes. Each ServiceM8 item maps to a Xero tax code. Get this wrong and every invoice lands with the wrong GST treatment.
What does NOT cross over natively:
- Payments received. If a customer pays you in Xero, ServiceM8 does not know about it. The job still shows as unpaid inside ServiceM8.
- Purchase orders or supplier bills. Materials you buy for a job stay in Xero only.
- Timesheets. ServiceM8 staff time does not flow to Xero payroll without a third-party bridge.
Even if the native connector does not cover everything, eliminating the invoice re-key alone is worth the ten-minute setup. Tradies who set up the integration typically find the invoicing step drops from around 20 minutes to under a minute.
How do I set up ServiceM8 and Xero step by step?
The setup takes about ten minutes if your Xero chart of accounts is already tidy. Here is the walkthrough.

- Open ServiceM8 Settings, then Accounting. Choose Xero from the provider list and click Connect. You will be redirected to Xero to authorise the connection with your Xero login.
- Map your tax codes. ServiceM8 shows every tax rate it uses. Match each one to the correct Xero tax rate (usually GST on Income for standard supplies, BAS Excluded for items outside GST). A wrong mapping here silently breaks every invoice.
- Map your items. If you use inventory items or service items in Xero, match them to your ServiceM8 materials and labour line items. This keeps your Xero reporting accurate at the category level.
- Choose your invoice status. Draft is safer (you review before sending). Approved is faster (Xero auto-sends if you have email rules). Start with Draft until you trust the mapping.
- Test with one job. Complete a test job in ServiceM8 and check that it lands in Xero with the right contact, line items, tax codes and total. Fix any mapping issues now, not after 50 invoices have synced wrong.
The whole process is a one-time setup. Once the mapping is right, every future job flows through without you touching it.
What are the most common ServiceM8 Xero sync errors?
Three errors account for most of the support tickets tradies raise about this integration. All three are fixable without a developer.
| Error | What causes it | Fix |
|---|---|---|
| Invoice does not appear in Xero | The OAuth token expired or was revoked. Xero OAuth2 tokens expire every 30 minutes and must be refreshed automatically by the connected app (Xero developer docs). A password change or Xero outage can break the refresh cycle. | Disconnect and reconnect in ServiceM8 Settings. Check the connection status shows a green tick. |
| Duplicate contacts in Xero | The customer name or email in ServiceM8 does not exactly match the existing Xero contact (a space, a middle initial, or a different email is enough) | Standardise names in ServiceM8 to match Xero exactly, or merge duplicates in Xero after the fact. |
| Wrong GST on invoices | Tax code mapping was skipped or a new ServiceM8 tax rate was added without mapping it | Re-check Settings, Accounting, Tax Codes. Map every rate. Re-sync any invoices that went across with the wrong code. |
If invoices suddenly stop syncing after months of working fine, the OAuth token is almost always the culprit. Reconnect first, investigate second.
How do I know if the native integration is enough for my business?
The native ServiceM8 Xero connector works well for a sole trader or a small crew running simple jobs: quote, do the work, invoice, get paid. It starts to creak when any of these apply:

- You need payment status to flow back. A customer pays in Xero but you are still chasing them in ServiceM8 because the payment did not sync back. You end up checking two systems every morning.
- You run variations or progress claims. The integration pushes line items as they were when the job was completed. Variations added after completion need a manual credit note and a new invoice, or a workaround in ServiceM8 before you mark it complete.
- You want automated follow-up on overdue invoices. Neither ServiceM8 nor the native Xero integration triggers a reminder SMS or email at 7 and 14 days overdue. That is a custom automation.
- Your crew logs time and you need it in payroll. ServiceM8 timesheets do not reach Xero payroll natively. Single Touch Payroll reporting is mandatory for all Australian employers, so if you are running crew timesheets through ServiceM8 you need a bridge to get those hours into your payroll and STP lodgement on time.
If you are spending more than 30 minutes a week fixing sync errors or re-keying data that should flow automatically, an automation layer is worth exploring. See how AI automation works with ServiceM8, Tradify and simPRO for the broader picture.
What does a tradie's invoicing workflow look like with the integration running?
Here is the practical daily workflow once ServiceM8 and Xero are connected and mapped correctly:
- Finish the job on site. Mark the job as complete in ServiceM8 from your phone. Add any materials or extras before you close it out.
- Invoice syncs automatically. Within seconds, a draft invoice appears in Xero with the correct contact, line items and GST. You did not type a thing.
- Review and approve. Open Xero (or your Xero app), glance at the draft, approve it and send it to the customer from Xero's email. If you set the integration to auto-approve, this step is already done.
- Get paid. The customer pays via the Xero payment link. Xero records the payment. If you want ServiceM8 to reflect the payment status, you need a manual check or a custom sync.
The whole invoice step, the one that used to eat 20 minutes at the kitchen table after dinner, now takes under a minute.
What about Single Touch Payroll and BAS?
The ServiceM8 Xero integration handles invoicing, not payroll or tax reporting. But the two systems together cover most of a tradie's reporting obligations:
- BAS. Xero tracks the GST on every invoice ServiceM8 pushes across. As long as your tax code mapping is correct, your BAS figures in Xero are accurate and your BAS agent can lodge directly from Xero.
- Single Touch Payroll. If you employ staff, STP lodgement runs through your payroll software (Xero Payroll, KeyPay or similar), not through ServiceM8. Xero Payroll handles STP Phase 2 reporting, super payments and leave management inside the same platform that receives your ServiceM8 invoices (Xero). As Xero puts it:
Pay your employees and lodge STP reports from one place, built into Xero.
ServiceM8 timesheets do not lodge STP on their own; they need a payroll bridge. - TPAR. If you pay subcontractors in building and construction, Taxable Payments Annual Report lodgement is mandatory. Xero handles this if you record subcontractor payments correctly. ServiceM8 does not feed subcontractor costs into Xero natively, so those payments need to be entered in Xero directly or via a middleware.
Frequently asked questions
Does the ServiceM8 Xero integration cost extra?
No. The native integration is included in ServiceM8 plans that support accounting connections. You do not pay Xero extra for it either. Third-party middleware (Zapier, Make) carries its own subscription if you add automation on top.
Can I use ServiceM8 with MYOB instead of Xero?
ServiceM8 supports MYOB as an alternative accounting provider. The setup is similar but the field mapping differs. Compare job management platforms and their accounting integrations if you are still deciding.
What happens if I disconnect and reconnect?
Existing invoices already in Xero stay untouched. Jobs completed while disconnected do not sync retroactively. You may need to push those manually or re-complete them in ServiceM8 after reconnecting. Always test with one job after reconnecting.
Will the integration handle progress invoicing for builders?
Not natively. Progress claims and staged invoicing require you to structure jobs in ServiceM8 as separate stages or use a workaround. Builders running large contracts often need a custom automation layer or a different job management platform designed for staged billing. Read how AI bridges the gaps in your job management platform.
How do I get my accountant access to check the integration?
Invite your accountant as a Xero advisor. They can review the draft invoices, tax code mappings and chart of accounts without touching your ServiceM8 settings. Most BAS agents prefer this setup because they see the invoices in the tool they already use.
Next step
If the native ServiceM8 Xero integration covers your needs, set it up today. It takes ten minutes and saves hours. If you are hitting the gaps listed above, spending time on manual follow-ups, chasing payments across two systems, or re-keying variations, a 15-minute discovery call will map out exactly where automation fills the holes. Book a free 15-minute discovery call and we will walk through your invoicing workflow together.
Compare ServiceM8 vs Tradify for AI automation if you are still weighing platforms.

