Sales orders in the Xero connector

Sales orders created in Brightpearl are pushed to Xero once they are invoiced. Payments can be recorded in either Brightpearl or Xero, with the resulting transaction updating the other system.



Sales invoices are only created in Xero once the sales order in Brightpearl moves to the mapped status. This is to ensure that quotes and incomplete or uninvoiced SOs do not get accounted for in Xero. The status is configured in the connector at Account settings > Brightpearl settings > Default configuration.


This should be the same status used for invoiced sales, which is set in Brightpearl at Settings > Sales > Sales workflow.



Fields between Brightpearl and Xero are mapped as follows:

Brightpearl field Xero field
Invoice ref Invoice number
Date created Date
Payment due Due date
Item code (SKU) Item code
Details Description
Qty Qty
Tax code* Tax rate*
Tax amount Tax amount
Invoice total Invoice total

The 'to' name, postal address and email address against the invoice in Xero are taken from the customer record in Xero.

*Tax code/rate: Typcially, in sales tax accounts, ecommerce orders are created in Brightpearl with a ‘-‘ tax code but with the tax amount as applied by the channel. In Xero, the API will re-calculate the tax rate (using the Avatax API) based on ZIP code. If the tax rate if not already present in Xero, it is created automatically.


Shipping inventory and invoicing

Important! Please be aware that in Xero inventory is depleted once a sales invoice is created. As such, if goods are shipped in Brightpearl before the order is invoiced, the change to inventory levels will not be reflected in Xero until such point as the invoice is created.

Likewise, if an order is invoiced in Brightpearl before it is shipped, the resulting invoice in Xero will automatically reduce Xero's on-hand inventory level. If the stock is unavailable, the connector will fail to create the invoice.

As such, it is recommended to only invoice orders in Brightpearl once all inventory has been shipped.

Payment initiated in Xero

You may choose to manage accounts receivable in Xero, in which case the sales order is still created in Brightpearl and posted to Xero once invoiced. The payment is then recorded in Xero and will be pushed back to Brightpearl, marking the linked order as paid. This is a common workflow for B2B sales where the order is only paid once it has been shipped and invoiced.


Overpayments in Xero

Overpayments can be recorded in Xero by navigating to New > Receive money > Overpayment. This can then be allocated against an outstanding invoice. If the invoice originated from Brightpearl, the payment is pushed to Brightpearl and automatically allocated against the corresponding invoice.

Payment initiated in Brightpearl

Alternatively, if the payment is recorded in Brightpearl it will be pushed to Xero once the order is invoiced. This is the typical workflow for online sales, where payments may be authorized and captured before the sale is invoiced. The order and payment will download into Brightpearl and both be created in Xero automatically once the order is invoiced in Brightpearl.


Note: the payment can also be received in Brightpearl after the order is invoiced.


Depending on your Brightpearl configuration, it may be possible to 'uninvoice'. This setting can be found in the Brightpearl backoffice at Settings > Company > Accounting: Options | Allow un-invoicing. If enabled, an invoiced order can be uninvoiced, cancelling the journal in Brightpearl and returning the order to your 'new order' status.

Upon uninvoicing in Brightpearl, the corresponding invoice in Xero is automatically voided (if the option is enabled in the connector config). This can happen both before and after payment has been taken. If the latter, both the invoice and payment are voided in Xero. Both will be resent when the order is reinvoiced.

The reference of the new invoice created in Xero will have a unique suffix, e.g. SI-1000/New-01.

Have more questions? Submit a request