// AI SUMMARY

Quick answer: The “invoice must be unique” error means Xero already has an invoice with the same number ServiceM8 is trying to send. Search Xero for that number with deleted and voided invoices included. Then delete, renumber or copy the clashing invoice, depending on its status, and approve the job again.

What does “invoice must be unique” mean in ServiceM8?

You see it as an error icon on a job in Invoicing > Awaiting Approval. Xero will not accept two invoices with the same number. ServiceM8 tried to send one, Xero found a match, and the approval failed.

The match is often an invoice you can’t see. A voided or deleted invoice in Xero still holds its number.

How do I find the clashing invoice in Xero?

  1. In Xero, go to Business > Invoices > All > Search.
  2. Tick Include Deleted & Voided.
  3. Type the invoice number into the search field.
  4. Click Search.

Note the status of the invoice that comes up. The fix depends on it.

How do I fix the error for each Xero invoice status?

Xero invoice statusFix in XeroThen in ServiceM8
Draft or Awaiting ApprovalDelete it with Invoice Options > Delete, or change its number and click Save.Approve the job again.
Awaiting Payment or PaidOpen Invoice Options > Edit, change the number, click Save.Approve the job again.
Voided or DeletedClick Invoice Options > Copy to make a new invoice from it.Go to Invoicing > Awaiting Approval, select the job, right-click, and choose Approve job(s) without sending to Xero.

Watch the last row. That option approves the job in ServiceM8 and sends nothing to Xero. The copy you made in Xero is the invoice. Check its line items and total match the job before you move on.

What if the error keeps coming back?

Email ServiceM8 Support at support@servicem8.com. Ask them to change the job number so the invoice can sync. You can’t change it yourself.

How do I stop the error from happening again?

Two habits cover most of it.

Renumber before you void. If you need to void or delete an invoice in Xero and send it again later, change its number before you void it. ServiceM8 suggests adding “void” to the end of the number. That frees the original number.

Stop making invoices in Xero by hand. An invoice typed straight into Xero can take a number ServiceM8 wants later. If your office does both, change one setting in ServiceM8:

  1. Go to Settings > Preferences > Invoicing > Xero.
  2. Find Xero invoice number.
  3. Select Let Xero issue invoice number.

With that on, Xero hands out the numbers, so the two systems stop competing for them. If someone was typing up one Xero invoice to cover several jobs, see how to bill multiple ServiceM8 jobs together.

Why didn’t my invoice reach Xero even with no error?

Two other causes look similar but are not a number clash:

  • The invoice total is $0.00. ServiceM8 does not send zero-value invoices to Xero. Add priced line items and approve again.
  • It went to a different Xero organization. If you have more than one, check the others.

Running QuickBooks Online instead? Here is why QuickBooks payments can still show unpaid in ServiceM8.

Need more calls coming in?

Web Blend builds websites, video and Google Ads for contractors. If the phone is too quiet, let’s talk.

Get a quote