Xero has said it is not building a sales order
Xero's product-ideas board carries an idea titled "Sales Invoicing - Order acknowledgement", opened in May 2012 and still at status Submitted with 153 votes. Kelly Munro, a Community Manager at Xero, answered it on 9 May 2024: "Being open we don't have any plans for developing a Sales Order Acknowledgement atm." Her reply points at a branding theme instead - create one named for order acknowledgements, retitle the Quote template inside it, and apply that theme to an accepted quote. Commenters have pushed back on it every few months since - one in November 2025 naming the gap as the reason a migration onto Xero stalled, one in June 2026 asking for a button that copies a quote into an acknowledgement the way quote-to-purchase-order already does.
The API carries the same gap. Xero's Accounting API exposes Invoices, Quotes, RepeatingInvoices, CreditNotes, PurchaseOrders and Items, and nothing resembling a sales order, and Xero's own document types name a purchase order and a sales quote with no third entry between them. Purchase orders exist on the buying side only.
Xero removed the discussion forums from Xero Central on 22 June 2026, so the long-running order-acknowledgement discussions there are gone and the product-ideas board is the only place Xero's position is still stated.
A Xero quote is the closest document to a sales order
A quote in Xero is an offer of a price before the work rather than a demand for payment. It moves through five statuses - Draft, Sent, Accepted, Declined and Invoiced - the customer accepts or declines it with a single click and can leave a comment, and converting an accepted quote copies its contents into an invoice.
Retitling that quote through a branding theme changes the words on the page and nothing underneath them. The document still draws its number from the quote sequence rather than an order sequence, and on the Xero mobile app creating the invoice from a quote leaves the quote unmarked, so somebody marks it as invoiced by hand.
A repeating invoice bills the same lines every time
A repeating invoice in Xero is a template plus a schedule, and Xero can approve and email each invoice on that schedule. The lines are the template's lines. That fits a fixed monthly retainer rather than a wholesale week, where the quantities move with the order and a catch-weight line is not settled until the goods are on the scale. How to automatically invoice wholesale bakery customers covers raising invoices from the orders themselves.
An auto-approved invoice in a foreign currency needs an exchange rate for its transaction date, and cannot have that rate edited afterwards. In the United States, automatic sales tax is unavailable on repeating invoices, so the tax rate on the template is set by hand.
Xero's entry plan stops at 20 invoices a month
Only the entry plan carries a cap, and the plan names differ by market. In the United Kingdom that plan is Ignite, £18 a month after an introductory period, and it reads "Send quotes and 20 invoices". In the United States the same position is held by Early at US$27 a month, the US pricing page still carrying Xero's older plan names. Grow, Comprehensive and Ultimate in the UK, and Growing and Established in the US, state no invoice figure at all.
The cap counts approving as well as sending, and Xero's footnote states that transactions initiated by app partners may automatically contribute to it. One invoice per customer per month clears 20 at twenty accounts; invoicing the same twenty weekly passes it in the first week of the month.
The export is one row per line item
Wholesale Handler exports finalised invoice line items as a CSV. Each row is one line item, and the invoice-level fields - reference, date, customer, status, currency, notes - repeat on every row belonging to that invoice, which is how Xero and QuickBooks both read a multi-line invoice. The file opens with a UTF-8 byte order mark so Excel on Windows keeps accents, dates are ISO (2026-03-15), fields are escaped to RFC 4180, and amounts are bare decimals with the ISO currency code in a column of its own rather than a symbol glued to the figure.
The file is bounded by the period chosen, the columns picked and the invoice status.
- The period. This month, last month, this quarter, last quarter, the last six months, or a custom range of up to 186 days.
- The columns. You pick which columns to include and rename each heading to whatever your accounting package imports. The selection is stored against your business, so the next export comes out the same way.
- The status. Only finalised money leaves - sent, paid, and customer-declared-paid invoices. A draft invoice and a disputed payment declaration stay out of the file.
The preview on the page is the export rather than a sample of it. The same query and the same column resolver produce both, your own column headings included, so what is on screen is what lands in the file.
Mapping the export onto Xero's import template
Xero's customer-invoice import template has nine required headings and matches a column by its heading text rather than its position, so renaming the headings in Wholesale Handler is most of the work.
*ContactName*InvoiceNumberINV-2026-003*InvoiceDate*DueDate*Description*Quantity*UnitAmount*AccountCode*TaxType*ContactName*InvoiceNumberINV-2026-003*InvoiceDate*DueDate*Description*Quantity*UnitAmount*AccountCode*TaxTypeXero groups the rows sharing an invoice number into one invoice whatever order they arrive in. Imported invoices arrive as drafts, so a field the file could not carry is filled in before the invoice is approved.
Xero publishes no limit on how many rows one import file may hold. The guides that document the template put it around 500 and disagree over whether that counts rows or whole invoices, so splitting a wide export into several files is the safe assumption.
Limits on one export
- 5,000 line items. Past that the export is refused with a message asking for a narrower range, rather than returning a slow download.
- No column order of your own. Columns can be dropped and their headings renamed, but not moved, so the file comes out in Wholesale Handler's order and an import template keyed to column position needs a spreadsheet step in between. Choosing the export column order is on the roadmap.
- Invoice line items only. Orders, customers and products have no export of their own yet.
Wholesale Handler



