FFP Guides

ServiceM8 how-to

How do you get the customer's PO number onto a ServiceM8 invoice?

Record the PO in the job's purchase order number field, then add the merge field job.purchase_order_number to your invoice template in Word and upload it. In Xero, ServiceM8 writes the PO into the Reference field only when the ServiceM8 job number is used as the Xero invoice number.

Last checked 25 Sep 2026 against the sources listed at the end of this page.

Yes, natively

Yes: fill in the job's purchase order number field and add job.purchase_order_number to your invoice template; Xero gets it in the Reference field if the job number is the invoice number.

Step by step

  1. When the job comes in, type the customer's PO into the job's purchase order number field on the job card.
  2. Go to Settings, Document Templates, select your invoice template and use the click here link in the Help pane to download it.
  3. Open it in Microsoft Word. Under Table Tools, Layout, click View Gridlines so you can see the hidden table the template is built on.
  4. Add a row or cell labelled PO number near the invoice number or date.
  5. Put the cursor where the PO should print, then Insert, Quick Parts, Field (on a Mac, Insert, Field). Choose MergeField and enter job.purchase_order_number as the field name.
  6. Match the font to the rest of the template and save the file.
  7. Back in Settings, Document Templates, choose Invoice, click Upload Custom Invoice Template, attach the file and save.
  8. Produce an invoice on a test job that has a PO and check it prints.
  9. In Settings, Preferences, Invoicing, check the Xero invoice number setting uses the ServiceM8 job number, so the PO lands in Xero's Reference field.
  10. Repeat the template edit on your quote template if customers want the PO on quotes too.

Gotchas

  • Changing the Xero invoice number setting to let Xero issue numbers moves the job number into Xero's Reference field and drops the PO from Xero.
  • Uploading your edited file replaces the current invoice template. Keep a copy of the original in case the layout breaks.
  • ServiceM8's template instructions assume desktop Microsoft Word and recommend the edit only for people comfortable with advanced Word features. If that is not you, a ServiceM8 partner can do it.
  • Copy and paste job.purchase_order_number from ServiceM8's field list rather than typing it, and test on a job with a PO before relying on it.
  • The supplier PO for Supplier Invoice Import is your job number, not the customer's PO. Do not overload one field to serve both.
  • Nothing blocks approval of a job with an empty PO field. Check it at Awaiting Approval for customers who require one.

What the official help article misses: It lists job.purchase_order_number in a table of fields but does not show how to add it to a template, does not say that the PO only reaches Xero's Reference field when the job number is the invoice number, and does not warn that the supplier import feature uses a different PO. Read ServiceM8's article.

Why the PO goes missing

Commercial customers, builders and facilities managers often will not pay an invoice that does not quote their purchase order number. Their accounts payable team matches your invoice to their PO, and an invoice with no PO goes to the bottom of the pile or straight back to you. At 100 or more invoices a month, retyping POs by hand is not an option.

ServiceM8 has the pieces. Every job has a purchase order number field, which the API describes as the client purchase order reference for cross referencing with accounting systems. ServiceM8's list of template fields includes job.purchase_order_number, described as the Job Purchase Order Number. What most standard invoice templates do not do is print it. So the fix is a one off template edit, then a habit of filling in the field when the job comes in.

Getting the PO into Xero as well

The invoice PDF is only half the job if the customer pays against a statement or remittance from Xero. ServiceM8 fills Xero's Reference field according to one setting under Settings, Preferences, Invoicing, Xero invoice number.

If the ServiceM8 job number is your Xero invoice number (the default), the Reference field in Xero carries the ServiceM8 PO number. That is what you want: the invoice number matches the job, and the PO shows on Xero's side too.

If you have chosen Let Xero issue the invoice number, often to fix invoice number clashes, the Reference field carries the ServiceM8 job number instead, and the PO does not reach Xero at all. If you changed this setting in the past, that is usually why POs stopped showing in Xero.

Two different PO numbers, do not mix them up

ServiceM8 uses "PO" in a second place. The Supplier Invoice Import add-on asks your staff to quote the ServiceM8 job number as your purchase order when they buy materials, so supplier invoices match to the job. That is your PO to the supplier. The customer's PO is their number, typed into the job's purchase order field. Keep them apart: do not type the job number into the customer PO field to make supplier matching work.

Making it stick at volume

Nothing in ServiceM8's approval steps checks that a PO is present, so build the check into your process. Every completed job lands in Invoicing, Awaiting Approval before it goes to Xero, and that screen is the natural gate: whoever approves opens any job from a PO customer and confirms the field is filled in. The same field is available to quote templates, so printing the PO on quotes to those customers also helps.

Sources

  1. ServiceM8's invoice and quote templates can use the field job.purchase_order_number, described as the Job Purchase Order Number. ServiceM8 Help Center, checked 25 Sep 2026.
  2. The job record's purchase_order_number field is described as the client purchase order reference number for the job, used for cross referencing with external accounting or order management systems. ServiceM8 Developer Docs, checked 25 Sep 2026.
  3. If the Xero invoice number is the ServiceM8 job number, Xero's Reference field contains the ServiceM8 PO number; if Xero issues the invoice number, the Reference field contains the ServiceM8 job number. The setting is under Settings, Preferences, Invoicing, Xero invoice number. ServiceM8 Help Center, checked 25 Sep 2026.
  4. Templates are modified by downloading from Settings, Document Templates, inserting fields in Word with Insert, Quick Parts, Field, MergeField (Insert, Field on macOS), and uploading with Upload Custom Invoice Template. ServiceM8 Help Center, checked 25 Sep 2026.
  5. By default, ServiceM8 job numbers become the invoice number in Xero. ServiceM8 Help Center, checked 25 Sep 2026.
  6. Supplier Invoice Import matches supplier invoices to jobs by the ServiceM8 job number, which staff give suppliers as the purchase order or reference number. ServiceM8 Help Center, checked 25 Sep 2026.