Platform — Xero Integration

HaulageOps creates the invoice. Xero handles the accounting.

Connect HaulageOps to your Xero account via OAuth2. Invoices built from completed jobs sync to Xero automatically. When Xero records a payment, that status flows back to HaulageOps in real time. No double entry between systems.

OAuth2 connection6-hourly scheduled syncReal-time payment webhooksNo manual data entry
Industry-standard OAuth2 — no password sharing
6-hourly cron sync for invoice data
Real-time webhook when Xero marks payment
Payment status visible in HaulageOps & Client Portal
Xero is accounting — HaulageOps is operations
Works with Xero AU, NZ and UK
How the connection works

The invoice workflow from job completion to Xero — step by step.

The Xero integration in HaulageOps is built around a clear division of responsibility: HaulageOps manages the job data and invoice creation; Xero manages the accounting record, payment processing, and your chart of accounts. The two systems complement each other — they are not trying to do the same job.

01

Connect via OAuth2

The connection is established through Xero's official OAuth2 authentication flow — the same protocol used by major software integrations. You authorise HaulageOps to connect to your Xero account through Xero's own interface. No Xero passwords are shared with or stored by HaulageOps.

02

Complete the job

The driver marks the job complete on the mobile app. POD is uploaded and attached to the job record. The job is now ready to invoice — all the detail (client, rates, loads, dockets) is already in HaulageOps from the work being done.

03

Build the invoice in HaulageOps

The invoice is built from the completed job record. Line items are generated from the job data — rates already applied, quantities from the job details. No re-entry of the data that already exists. The invoice is reviewed in HaulageOps before syncing.

04

Sync to Xero

The invoice syncs to Xero via the scheduled 6-hourly cron sync. It appears in Xero as a standard invoice, coded to the appropriate account. Your accounts team works with it in Xero exactly as they would with any other invoice — chase payment, reconcile, report. HaulageOps did not change how Xero works.

05

Payment recorded in Xero

Your accounts team reconciles the payment in Xero as part of their normal process. The moment Xero marks the invoice as paid, a webhook fires back to HaulageOps in real time.

06

Status updates in HaulageOps

The invoice status in HaulageOps updates to Paid as soon as the Xero webhook arrives. Operations can see payment status without logging into Xero. The Client Portal also reflects the updated status — the client sees their invoice as paid without a phone call to your office.

Two systems, one job record

Xero is the accounting system. HaulageOps is the operations system.

A common concern when connecting two systems is which one becomes the source of truth. The answer in the HaulageOps and Xero relationship is clear: job data and invoice creation originate in HaulageOps; accounting, payment processing, and financial records live in Xero. Neither system tries to replace the other.

Your accountant or bookkeeper does not need to learn HaulageOps. Your dispatcher does not need access to Xero. The sync carries the invoice data from operations to accounting, and carries the payment status back. Each team works in the system built for their function.

  • Operations builds invoices from job data in HaulageOps
  • Finance manages payment and reconciliation in Xero
  • Payment status is visible to operations and clients without Xero access
  • No manual re-entry of invoice data between systems
Invoice sync — HaulageOps to Xero flow

HaulageOps

Invoice #1042

Client: Apex Civil

3 job line items

Total: $4,800

Status: Sent

Xero

Same reference

Same amount: $4,800

Account code: 200 Revenue

Awaiting Payment

6-hourly sync
Webhook — real time
Payment visibility

Operations and clients see payment status without logging into Xero.

One of the practical benefits of the real-time payment webhook is that invoice status is visible to the right people without additional system access. Operations knows which invoices are outstanding. Clients can see whether their invoice is paid through the Client Portal. Neither needs to contact the accounts team for a status update.

Operations view in HaulageOps

The invoice list in HaulageOps shows current status — draft, sent, paid, overdue — updated when Xero records a payment. Dispatch staff can see outstanding invoices for a client without needing access to the accounting system.

Client Portal view

Clients see their invoices through the Client Portal with current status. When Xero records payment and the webhook fires, the Client Portal reflects paid status automatically. No manual update required, no client emailing to ask if their payment was received.

Management reporting

Invoice status feeds into management reporting — outstanding accounts, revenue by period, aged receivables. The data reflects the Xero payment record via the webhook without requiring management to query Xero separately.

Invoice status — HaulageOps billing view
#1039Apex Civil
$3,200Paid
#1040Ridge Earthworks
$5,600Overdue
#1041Summit Quarries
$2,100Sent
#1042Apex Civil
$4,800Draft

Total outstanding highlighted in the billing dashboard

A note on MYOB

Using MYOB? It is available subject to scope — not a standard integration.

MYOB is not a standard built-in integration in HaulageOps. The Xero integration is live and operates as described on this page. MYOB is a different accounting platform with a range of product versions and configurations that affect what a connection would look like.

If you use MYOB, we can explore what is technically achievable for your specific MYOB version, product configuration, and required workflow. The starting point is understanding your MYOB setup and what you need the connection to do. From there we can scope whether and how a connection is practical for your situation.

If MYOB is a hard requirement in your evaluation, tell us at the demo stage and we will give you an honest answer about what is possible for your setup before you proceed.

Related platform features

The Xero integration is part of the job-to-invoice workflow.

Billing & Invoicing

The full invoice lifecycle in HaulageOps — draft, sent, paid, overdue, voided. The Xero integration is the bridge between the HaulageOps invoice and the Xero accounting record.

Billing & invoicing

Rate Management

Rates set in HaulageOps — per-tonne, per-load, hourly, fixed-fee — feed directly into invoice line items. When those invoices sync to Xero, the rate detail goes with them.

Rate management

Add-ons & Integrations

Xero is the standard live accounting integration. See what else is included by default and what is available on request — including the honest status of MYOB and roadmap items.

Add-ons & integrations
Frequently asked questions

Xero integration — common questions.

Which Xero plan is required to use the integration?

The HaulageOps Xero integration uses Xero's standard API, which is available on Xero's Starter, Standard, and Premium plans. It is not available on free Xero trials. If you are on an active paid Xero subscription and have an active HaulageOps account, the integration is included — there is no additional per-connection fee from HaulageOps.

Does the integration work with Xero AU, NZ, and UK?

Yes. Xero's API is consistent across their AU, NZ, and UK product variants. The HaulageOps integration works with Xero accounts in each of these markets. If you are in a market where Xero is available and your Xero account is active, the connection operates the same way regardless of your country.

What happens if the sync fails?

The 6-hourly cron sync attempts to push all pending invoice data. If a sync attempt fails — due to a temporary connectivity issue or a Xero API interruption — HaulageOps retries on the next scheduled cycle. Failed sync attempts are logged. If a sync issue persists, it surfaces in the integration status view so your team is aware without needing to monitor it manually. Your Xero data and HaulageOps data are not corrupted by a failed sync — the records simply remain out of sync until the next successful attempt.

Can I disconnect the Xero integration if needed?

Yes. You can disconnect the Xero integration from within HaulageOps at any time. Disconnecting removes the authorisation HaulageOps holds to access your Xero account — it does not delete invoices that have already synced to Xero, and it does not affect historical data in HaulageOps. You can reconnect at any time by going through the OAuth2 authorisation flow again.

Does the integration push all invoices or only new ones after connection?

The integration syncs invoices created in HaulageOps after the connection is established. It does not retroactively push historical invoices that predate the connection. During setup, your implementation contact will advise on how to handle the transition from your previous invoicing process so there are no gaps or duplicates in your Xero records.

Do I need a Xero account before I can use HaulageOps?

No. HaulageOps billing and invoicing operates independently of the Xero integration. You can create, send, and track invoices within HaulageOps without connecting to Xero. The Xero integration is an add-on that pushes those invoices into Xero for accounting purposes. If you do not use Xero, invoice management is handled entirely within HaulageOps.

Build the invoice in HaulageOps. Let Xero handle the accounting.

See how the job-to-invoice-to-Xero workflow runs end to end — in a 20-minute demo with your specific use case in mind.