FFP Guides

Integration

Why does ServiceM8 ignore my customers' payment terms in Xero?

ServiceM8 calculates each invoice's due date itself, from the payment terms saved on the client in ServiceM8, and sends that date to Xero. Terms saved on the contact in Xero do not sync to ServiceM8, so clients without their own ServiceM8 terms get your default Invoicing Terms. Set them under the client's Billing Details, Payment Terms.

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

Symptom: A customer is on 30 day or end of month terms in Xero, but invoices approved from ServiceM8 arrive in Xero with your standard due date, or already overdue.

Causes, most common first

  1. The terms only exist on the Xero contact. ServiceM8 does not read payment terms from Xero, so the client falls back to your default Invoicing Terms.

    Check: In ServiceM8 open Clients, the client, Billing Details, Payment Terms. If nothing specific is selected, the default applies.

    Fix: Choose the right Payment Terms on that client in ServiceM8 and save. Future invoices get the correct due date in both systems.

  2. Your default terms are wrong for most customers. Every client without a specific setting uses Settings, Preferences, Invoicing, Invoicing Terms.

    Check: Open Invoicing Terms and read the Invoice period. Compare it with what most of your account customers actually get.

    Fix: Set the default to what suits the majority of your customers and give the exceptions their own terms on the client card.

  3. The due date is counted from when the job was Completed or its first PDF invoice was produced, not from when you approved it to Xero.

    Check: Compare the job's Completed date with the Xero invoice date and due date. A job completed weeks before approval arrives with most of its terms already used.

    Fix: Approve completed jobs daily or weekly rather than monthly. For an invoice already sent, have your bookkeeper adjust the due date in Xero.

  4. The client is set to Prepaid or COD, which ServiceM8 treats as 0 days.

    Check: Look at the client's Payment Terms. Prepaid and COD produce a due date equal to the invoice date.

    Fix: Change it to a day based term if the customer is really on account.

  5. The invoice was already approved before you fixed the client's terms.

    Check: The Xero invoice's due date still shows the old calculation.

    Fix: Edit the due date on that invoice in Xero. Changing the client's terms only affects invoices produced after the change.

ServiceM8 owns the due date

It surprises people because Xero has a perfectly good place for customer terms. But ServiceM8 raises the invoice, so ServiceM8 decides the due date and sends it across fully formed. ServiceM8's help centre says the due date will match in both systems, and it spells out the one way traffic: due dates calculated from client specific terms sync to your accounting package, terms selected in the accounting package do not sync to ServiceM8, and non default terms set in ServiceM8 do not update the contact in Xero either.

So the terms your bookkeeper maintains in Xero and the terms your office maintains in ServiceM8 are two separate lists. Only the ServiceM8 list affects invoices raised from jobs.

Setting terms where they count

There are two places in ServiceM8. Settings, Preferences, Invoicing, Invoicing Terms holds the default that applies to every client with nothing specific set. Clients, Open Client, Billing Details, Payment Terms overrides it for one client. Before 2019 per client terms needed the Customer Payment Terms add-on, which has since been retired, so every account now has the field.

If you have dozens of account customers, pull a list of them from Xero with their terms and work through it once. Builders, real estate agencies and strata managers are the usual ones on longer terms. ServiceM8 also uses these terms when the Automation add-on sends payment requests, so fixing them corrects your chasing emails as well.

Show terms, not just a date

Some commercial customers want their invoice to state the terms rather than a date. ServiceM8 supports this through a merge field in your Word invoice template, {company.customfield_payment_terms}, which prints the client's terms, for example Prepaid. The due date still travels to Xero as normal, so your aged receivables in Xero stay correct.

If a customer's terms are end of month rather than a number of days, check what options the Payment Terms list offers in your account before promising it. Where the list cannot express the arrangement, pick the nearest day count and have your bookkeeper adjust the due date in Xero on the few invoices where it matters.

Sources

  1. Default Invoicing Terms are set in Settings, Preferences, Invoicing, Invoicing Terms and apply to all customers except those with specific terms; client specific terms are set in Clients, Open Client, Billing Details, Payment Terms; Prepaid and COD are equivalent to 0 days. ServiceM8 Help Center, checked 25 Sep 2026.
  2. The payment due date is calculated from the date the job was Completed, or the date the first PDF invoice was produced on the job, whichever came first. ServiceM8 Help Center, checked 25 Sep 2026.
  3. Due dates calculated from client specific payment terms sync to the accounting package; client specific payment terms selected in the accounting package do not sync to ServiceM8; non default terms applied in ServiceM8 do not sync to the accounting package's client database. ServiceM8 Help Center, checked 25 Sep 2026.
  4. Per client payment terms needed the Customer Payment Terms add-on before 2019; it is deprecated and the ability is now in all accounts. Terms can be shown on invoices with the merge field {company.customfield_payment_terms}. ServiceM8 Help Center, checked 25 Sep 2026.
  5. Invoices are sent to Xero when approved from the Invoicing page, and later changes affecting the total re-sync the line items. ServiceM8 Help Center, checked 25 Sep 2026.