Skip to main content

Xero - Invoice Sync

Written by Michael Mulligan
Updated this week

Released BMS invoices are pushed to Xero as accounts receivable invoices. The sync keeps both systems aligned on outstanding customer balances and payment status, with BMS pushing invoice data out to Xero and pulling payment confirmation back.

The Xero Integration Panel

Navigate to Billing → Invoices and open a released invoice. The Xero Integration panel appears in the invoice detail view and shows:

  • View Xero Invoice — opens the linked invoice directly in Xero

  • Last Push — the date and time the invoice was last pushed to Xero

  • Last Pull — the date and time payment data was last pulled from Xero back into BMS

  • Sync Invoice with Xero Invoice — manually triggers a push of this invoice to Xero

How Invoice Sync Works

When an invoice is released in BMS, it becomes eligible for Xero sync. The invoice is pushed to Xero with the customer contact (linked via Customer Sync), line items and amounts, tax rates mapped to Xero tax types, invoice date and due date, and payment terms.

BMS also pulls payment data back from Xero. When a customer pays the invoice in Xero, the payment information flows back to BMS and updates the invoice status accordingly.

Syncing an Invoice Manually

Click Sync Invoice with Xero Invoice on the invoice detail page to force a push. This is useful when:

  • An invoice was released before the customer had a Xero Identifier

  • The automatic push did not complete (check Admin → Background Jobs for errors)

  • Invoice details were corrected and need to be re-pushed to Xero

Common Issues

If an invoice fails to sync:

  • Confirm the customer has a Xero Identifier — open the customer record and check the Xero Integration panel. If blank, sync the customer first (see Xero - Customer Sync)

  • Check that all account codes on the invoice line items exist in Xero (see Xero - Maintaining your Chart of Accounts)

  • Review Admin → Background Jobs for sync errors with a description matching the invoice

Did this answer your question?