Home » Posting Sales to Xero

Posting Sales to Xero


The goal here is to successfully post a sales order to Xero.  Once you have completed this, all that should be left to do in Xero is to ‘Approve’ the invoice.

In this document:

Set Up Xero Ledger Codes

The first thing you need to do is make a decision about how you want your revenue to appear on your profit and loss statement in Xero.   If you want to code your revenue by customer category e.g. Customer Region or Customer type, you’ll have to set the Revenue Ledger for the Contacts in Vinsight.  Otherwise if you want to code your revenue by product category or type, you need to set the Revenue Ledger for the Stock Items in Vinsight.

Just to be clear, this is the top level view on your Profit & Loss Statement.  You can still do more detailed sales reporting within Vinsight.

As you may be aware, Xero has numeric codes for different accounting ledger categories, for example,  ‘200’ for Sales income or ‘400’ for Advertising Expenses.

To ensure that the Sales or Purchase Order you post to Xero is allocated to the correct ledger, you will need to make sure that these ledger references have been set in Vinsight.

Tracking Sales by Stock Item

To track sales by Stock Item, you need to set the Revenue Ledger Codes in each Stock Item that you intend to sell.   You can use the default codes set in Xero or you can create your own ledger codes.  For more information see Stock Items Ledger Codes.


Tracking Sales by Customer Type

As a default the ledger codes posted to Xero will be those set in the Stock Item.  If you want to change this to enable you to track sales by customer type  (e.g. 201 Sales-Export, 202 Sales-Domestic and  203 Sales-Direct ) you can override this on a customer by customer basis by changing the ‘Default Revenue Ledger Code’ in the ‘Ordering Details’ area of customer’s Contact page.  For more information see Contacts – Revenue Ledger Codes

Important: Remember to use the code only ( & not the description) when setting the Ledgers, e.g. you should write ‘200’ not ‘200 Sales’

Connect to Xero

Before posting a Sales Order to Xero you will need to make sure you are connected.  For instructions on how to do this see ‘Connecting to Xero‘.

Create  a Sales Order

Create a Sales Order in the usual way.   Ensure that you have included payment terms, currency, tax information and any other information that you will want to see on your Xero posting.  See Creating Sales Orders for more information about this process.

Finally click ‘Post’ to post the order to Xero.

By selecting the ‘Post’ option you can post your completed order from Vinsight directly into Xero.  Your accounting staff can then log into Xero to approve the sales order (and purchase orders too,  for that matter).

The goal is to post an order that is fully coded and only needs to be approved in Xero.  If you’re having to choose or correct ledger codes or tax rates in Xero then you should check and fix the configuration in Vinsight and then repost the order so you only need to approve it.


Stopping an order being posted to Xero

If you have an order or orders that you do not want sent or synced with Xero, you can mark these orders to be ignored.
e.g: if the orders are from a time prior to when you used Xero.


The ‘Account’ in Xero is empty or incorrect:

  • Check that you have specified a revenue ledger for the Stock Item or Contact.
  • If an account is specified, check that it exists in Xero and is the correct account type (e.g. Revenue)
  • Check that you have only put the Code ( & not the Description) into the Stock Item or Contact.

You record WET tax and this is not coded correctly:


Common Posting Errors and resolutions

“Organisation is not subscribed to currency XXX”.

Cause: Vinsight is multi-currency capable and you are trying to post an order in a currency that your Xero account does not support.

Resolution: either upgrade your Xero account to a multi-currency account or add the currency you are using to your Xero account: https://help.xero.com/nz/Currency-AddCurrency

“Account code must be specified”.

Cause: In Xero, orders that are in the draft state do not require an Account Code but approved orders do. The error implies you are posting to update an existing invoice that is in the approved state so does require an Account Code. There are a couple of possible causes with separate resolutions, but in both cases it implies you do not have the Account Codes correctly set on the Stock item


a) if Vinsight has posted this order to Xero, i.e. it looks like this:

then is implies you do not have the Account Codes correctly set on the Stock item, so simply update the stock items on the order to ensure they have Revenue or Expense Codes set.

b) if Vinsight does not indicate that the order is posted, ie it looks like this:

then it implies that you have an unrelated order in Xero that was created manually but has the same order number. So the Vinsight order is colliding with an unrelated Xero order. See resolving order number collisions below.

Posting over old orders

If you receive errors when you are posting *new* orders like the following:

“To update fields on a paid invoice line item, you must supply a LineItemID” or any errors that mention the order “Cannot be changed on an invoice that has payments or credit notes allocated to it”

This is a strong indication that you might have new orders trying to post over the top of old orders, ie an order number collision.

Resolving order number collisions

Resolving the issue with the current order:
For Sales Orders, either you must change the posting prefix using the instructions below, or you must copy the Vinsight order to issue a new order number that does not collide with the Xero order number
For Purchase Orders, Vinsight sends a composite order number that is the combination of the Vinsight Order Num and the Order Ref, so you can put a unique number into the Order Ref field to avoid a collision with the existing order in Xero.

Resolving the issue for future orders: going forward do not create manual orders in Xero that use the same numbering pattern as Vinsight. By default Vinsight posts order in the format INV-41, so if you want to create a non-inventory order directly in Xero, change your pattern to something like SI-41 which might stand for “Service Invoice 41”, also for Purchase Orders consider using a unique reference in the Order Ref field such as the suppliers invoice number. Alternatively if you are going to have multiple systems creating orders in Xero, consider editing the Vinsight Xero Addon settings and change the prefix from the default “INV-” to something else like “VIN-” so the orders do not collide.
If the issue is that Vinsight orders start at a lower order number than your existing Xero order numbers, then you can “fast forward” the Vinsight order number to be greater than the highest existing Xero order number. This will only work if Vinsight is the only app creating orders, otherwise use one of the options above. You can fast forward the order number in Vinsight in Settings > Setup > Advanced Settings > Orders.

“Invoice not of a valid state for modification”.

If you apply a payment in Xero to an order, then it cannot be modified. Potentially if necessary you could remove and redo the payment in Xero however, if Vinsight thinks the order has not been posted, this is a symptom of an unrelated order in with the same number having been created in Xero. See Resolving order number collisions above.

 “The Total for this document must be greater than or equal to zero”

You may have a line item on your order that has a negative price. You should be using a positive price with a negative quantity if you are trying to return or credit product.

Order Has been Posted to Xero, but has been modified since

Since there has been a change in the order that has a financial effect, in this case was a “tax” update, you can re-post the Sales Order and it will update the existing order in Xero.


Re-post the order. However, if the order has been marked as paid, you will need to remove the payment and redo it again.

“Order failed to post: Xero says: This order has been voided in Xero”

For orders posted from Vinsight to Xero, if you void an order in Xero rather than voiding it in Vinsight and letting Vinsight void the order in Xero, the Vinsight order will stay connected to the voided order in Xero.


You will need to “Void” the order in Vinsight by clicking the Posted to Xero tile on the order then clicking “Void in Xero”.

“Order failed to post: Xero says: An existing Credit Note…”

Whenever you need to edit a Sales Order or a Credit Note, remember to do such changes first in Vinsight and then re-post. If you make the changes in Xero first, there is no way for Vinsight to know that something has changed, so there will be an error message when you try to re-post.


You will need to “Void” the order in Xero and then re-post.

“Failed to Post Orders: One or more errors occurred”

Whenever Xero renews, it disconnects from Vinsight so you will need to connect the Add-on back again.


Go to Settings> Add-Ons> Xero> Connect

“The TaxType code does not exist or cannot be used for this type of transaction.”

If you see this error when posting to Xero, double check that the zero rated (e.g. GST Free) Tax Rates in use on your Sales Order are matched in the Xero Addon’s Tax Rate Matching Settings.


You may need to update your Sales Order to use one of the already matched rates. Contact Vinsight Support for more assistance.