Resources

Help & articles

Guides, how-tos and news for your catering business.

Help topics

Reports & Integrations

Connecting with Xero

Connect Puree to Xero so your quotes automatically create and update invoices without re-entering financial data.

Learn how to connect Puree with Xero accounting software to automatically create and update invoices.

Integrations page showing the Xero connection and settings controls

Using QuickBooks instead?

QuickBooks uses a different mapping: you select a QuickBooks Service in Puree, and that service’s Income account determines where the revenue is recorded. Xero maps directly to your chart of accounts. See Connecting with QuickBooks for the connection steps, service setup and invoice settings.

What the Xero Integration Does

When you link Puree with Xero, your quotes in Puree will automatically create invoices in Xero. If you update a quote, the corresponding Xero invoice is updated too. This saves you from manually re-entering financial data and keeps everything in sync.

Connecting to Xero

To get started, go to Settings → Integrations and click Connect to Xero. This will open an authorisation page in Xero. You may need to log into Xero first. Select the organisation you want to connect to (if you have multiple), then click Allow Access.

Once authorised, you’ll be taken back to Puree and into the Xero settings page.

Configuring Your Settings

Chart of Accounts Mapping

You need to link each Puree master category to an income account in Xero. The categories are: Menu, Beverages, Equipment, Miscellaneous, Staff, Delivery, Venue (if enabled) and Packages (if enabled). The dropdown options are pulled directly from your Xero chart of accounts.

Depending on how your Xero is set up, you might use the same account (e.g. “Sales”) for all categories, or you might have separate accounts for staff, delivery, etc. With Individual priced lines you can also give an item category its own account, using Set by category beside the master category. See How quotes appear as Xero invoices.

Invoice Due Date

Set the default number of days before a Xero invoice is due. The invoice date is the date of the event or delivery in Puree, and the due date is calculated from that. For example, setting this to 7 means the invoice is due 7 days after the event. Common settings are 7 or 14 days.

Auto-Sync

Make sure the auto-sync option is enabled. This ensures that whenever you update a quote in Puree, the changes are automatically pushed to Xero.

Invoice Number Prefix

You can customise the prefix used for invoice numbers in Xero. By default, it’s INV, so if your Puree quote is number 123, the Xero invoice number will be INV123. You can change the prefix to whatever you like, but the quote number will always follow it.

Linking Quotes to Xero

Once you’re connected to Xero, you’ll see an extra column on your Quotes list with a Link button for each quote. Clicking Link opens Link with Xero, where you connect the quote’s customer to a Xero contact.

The Xero Contact field starts on the contact the customer was last linked to, so a returning customer is a quick Save. A customer that has never been linked starts on a contact only when exactly one Xero contact has the same name (capitals and spaces at either end don’t matter). Otherwise the field is blank, showing Link to a Xero contact. Puree never picks the first contact in the list for you, and Save waits until you’ve chosen one.

Link with Xero for a customer never linked before: the Xero Contact field shows Link to a Xero contact, with a red message asking you to pick a Xero contact or create a new one before saving

If the customer isn’t in Xero yet, click Create new contact in Xero and Puree creates the contact from the customer’s details. Its email is the customer’s Invoice email if one is set, otherwise the main contact’s email. You can also search your existing Xero contacts in the dropdown.

Chef users can’t open Link with Xero or download invoice PDFs, as they can’t see quote prices.

Invoice Email

Some customers want invoices sent to one address, such as a central accounts team, rather than to whoever placed the order. Add that address to the customer as their Invoice email: open the customer, click Edit, and fill in Invoice email under Payment terms. The customer page then shows Invoices to and the address.

Link with Xero has an Invoice Email row under the customer mapping:

  • Puree Invoice Email: the customer’s invoice email, or Not set on the customer with an Add on customer link that opens the customer in a new tab.
  • Xero Contact Email: the email the chosen Xero contact has in Xero right now. Under it, Puree lists any of the contact’s people who are ticked to be included in emails.

The Link with Xero window showing the customer mapping and the Invoice Email row: the Puree invoice email on the left, the Xero contact's current email on the right, one person included in emails, and the unticked option to update the Xero contact's email

When the two differ, a tick appears: Update this Xero contact’s email to the invoice email. Tick it and click Save, and once the invoice is linked Puree changes that Xero contact’s email address. Only the email address changes. The contact’s people and everything else on it stay as they are. If Xero refuses, the invoice is still linked, and Puree tells you why the email wasn’t changed.

The tick belongs to the contact it was shown for. If you pick a different contact, it clears, and Puree checks again for the new one.

The Invoice Email row for a customer with no invoice email: the left box says Not set on the customer, with an Add on customer link

Xero can’t copy someone in on one invoice. When you email an invoice from Xero, it goes to the contact’s email address and to every person on the contact who is ticked Include in emails. To copy the person who ordered on a customer’s invoices, add them to the contact in Xero as a person and tick Include in emails. They’ll then get every invoice and reminder for that contact.

When to Link

We recommend linking quotes once they’ve been accepted, not while they’re still pending. Linking creates a draft invoice in Xero, so if a pending quote doesn’t go ahead, you’d have to go into Xero and delete the invoice manually. By waiting until the quote is accepted, you avoid unnecessary cleanup.

A good rhythm to get into: each time you receive a notification that a quote has been accepted, go to the quotes list and link it straight away. It only takes a moment, especially once Puree remembers the customer’s Xero contact.

Unlinking a Quote from Xero

A linked quote shows three things in the Xero column: a small chain-link icon, which reopens the Link with Xero window; the invoice’s status button, which opens the invoice in Xero (see Xero Status on the Quotes List below); and a download icon for the invoice PDF.

The Xero column of the quotes list, with the small chain-link icon circled in red beside a quote's status button

Open that window and Unlink from Xero sits at the bottom left. It asks you to confirm, and the quote then goes back to showing Link, as though it had never been sent.

The Link with Xero window, showing customer mapping and invoice dates, with an Unlink from Xero button at the bottom left beside Cancel and Save.

What unlinking does, and what it does not

Unlinking only forgets the connection on Puree’s side. The invoice stays in Xero exactly as it is. Nothing is deleted, voided or changed there.

So if the invoice should not exist, unlinking is only half the job — go into Xero and delete or void it yourself. If you only wanted to correct something on Puree’s side, leaving the invoice where it is may be exactly right.

Unlinking is the fix when:

  • The quote went to the wrong Xero contact, and you want to link it again to the right one.
  • The invoice was deleted or voided in Xero, and Puree still shows the quote as linked.
  • The quote should go onto a combined invoice with others, which it cannot do while it is invoiced on its own.
  • You want to start the invoice over rather than let Puree update the one already there.

Sending again after unlinking

Because the invoice is still sitting in Xero under the same invoice number, sending the quote again will not quietly create a second one. Xero recognises the number, and Puree tells you the invoice already exists. Save a second time and Puree updates that existing invoice instead of duplicating it.

If you would rather have a fresh invoice number, delete the invoice in Xero first, then send the quote again.

Quotes on a combined invoice

A quote that is part of a combined invoice shows the combined invoice’s status, and its chain-link icon opens the combined invoice instead. Unlinking there dissolves the combined invoice, so each quote in it can be invoiced on its own again. The same rule applies: the invoice itself stays in Xero.

Invoices Are Created as Drafts

When you link a quote, Puree creates the invoice in Xero as a draft. It does not send the invoice to your customer automatically — you need to go into Xero, review the draft, and then approve and email it yourself.

To find your draft invoices in Xero, go to Sales → Invoices and filter by Draft. From there, click into the invoice and use the Approve and Email button to send it.

Xero emails the invoice to the contact’s email address and to the contact’s people ticked Include in emails. To have invoices go to a customer’s accounts team, set their Invoice email in Puree and use the tick in Link with Xero to copy it to the Xero contact (see Invoice Email above).

Invoice Dates

The invoice date is automatically set to the date of the event or delivery in Puree. The due date is calculated from the invoice date using the default number of days you configured in your Xero settings (e.g. 7 or 14 days after).

You can override both the invoice date and the due date when linking a quote. These overrides only affect the Xero invoice — they don’t change any dates in Puree.

Note: If a quote was created before you connected to Xero, the due date may not auto-populate when you link it. In that case, simply enter the dates manually.

Customer Reference / Purchase Order Number

If your customer provides a purchase order number, enter it in the Customer reference field on the quote in Puree. This value is automatically passed through to the Reference field on the Xero invoice. Any updates to the customer reference in Puree will sync to Xero as well.

How Invoices Appear in Xero

The Invoice detail setting on Xero Settings decides the shape of the invoice. Summarised by category gives one line per master category (Menu, Beverages, Equipment and so on), each with its total. Individual priced lines gives one line for each priced item, package, staff charge and venue reservation, named as the quote names them, so two lines of the same item with different options can be told apart.

The invoice also includes an introductory line with the customer’s name and a link back to the Puree quote, so the customer can click through to view the full quote online.

Packages on the Invoice

A package is its own line on the invoice. Xero allocation, on the package’s edit page, splits its price across Menu, Beverages, Staff, Equipment and a package account, and chooses the Xero income account for each share, so package revenue can show under the right headings in your Xero reporting. Until you set one, the whole package price goes to your Packages account (or Miscellaneous if that is not set).

What each line looks like, how Set by category and package shares choose their accounts, and a worked example are on How quotes appear as Xero invoices.

Xero allocation is switched on per account. Until it is turned on for yours, each package carries on posting as a single line to your Packages account. Please let us know if you’d like it switched on.

Changing a package’s split can affect invoices you have already sent. The allocation is read from the package each time a quote syncs, not frozen onto the quote at the time you sent it. So if you re-split a package that older quotes used, those quotes are re-coded to the new accounts the next time they sync. Changing the package doesn’t push anything by itself, and Xero won’t alter an invoice that has already been paid or voided, so reconciled work is safe. The case to watch is an invoice that is still open, for an event already past, on a quote somebody edits later. To change a package’s split for new work only, duplicate the package, re-split the copy, and use the copy on new quotes.

Sales tax on the invoice

The quote’s Includes sales tax or Excludes sales tax choice sets the Xero invoice’s Amounts are treatment. This is saved on the quote; changing the account default does not change existing quotes.

With tax bands enabled, map each Puree band to its matching Xero tax rate in Settings → Tax. These tax mappings are separate from your chart-of-accounts mappings. Charges with different mapped tax rates can appear on separate invoice lines even within one category.

Xero calculates tax using the mapped rate. Check that its percentage matches the treatment intended in Puree, especially for reduced or 0% bands. Also check any Override all tax bands selection on the quote.

To correct the inclusive/exclusive setting, edit the quote’s Adjust quote tax section. Follow the invoice syncing and locking guidance below when updating an existing invoice. See Tax Rates.

Xero Status on the Quotes List

Once a quote is linked, its button in the Xero column says where the invoice is in Xero:

  • Draft: in Xero as a draft, not yet approved. This is how every invoice starts.
  • Awaiting Appr.: submitted for approval in Xero but not approved yet, so it can’t be paid.
  • Awaiting Pmt: approved in Xero, and not yet marked as sent to the customer.
  • Sent: approved and emailed to the customer from Xero.
  • Paid: paid in full.
  • Voided or Deleted: no longer live in Xero. These buttons are greyed out. A quote whose invoice is deleted in Xero goes back to Link, ready to link again.
  • Linked: linked, but Puree hasn’t received the invoice’s status from Xero yet.

The Xero column of the quotes list showing the status buttons Paid, Awaiting Pmt, Awaiting Appr., Sent, Draft and a greyed-out Voided, a Link button for a quote not yet linked, and the chain-link and download icons either side

Hover over the button to see the invoice number, the amount due and any prepayments the customer has in Xero. Combined invoices show the same statuses.

Puree updates the status when Xero lets it know the invoice has changed, and each time Puree sends the invoice, so it is usually current within moments. A regular full refresh from Xero catches anything missed.

Downloading the Invoice PDF

A linked quote has a download icon beside its status button, titled Download Xero invoice PDF. Click it to download the invoice from Xero as a PDF, named after the invoice number, such as Invoice INV123.pdf. Combined invoices have the same icon, and so does the quote’s page, under its Actions menu.

A quote's row in the Xero column with the pointer on the download icon, showing the tooltip Download Xero invoice PDF

The PDF comes from Xero when you click, so it always matches the invoice in Xero. If Xero can’t be reached, or the quote isn’t linked any more, Puree says so and nothing downloads.

Don’t Edit Invoices Directly in Xero

The sync between Puree and Xero is one-way: Puree pushes updates to Xero, but changes made in Xero are not pulled back into Puree. If you edit an invoice directly in Xero, your changes will be overwritten the next time someone updates the quote in Puree.

Always make changes in Puree and let them sync through to Xero. This ensures both systems stay consistent.

Important: Payments and Locked Invoices

Anytime you update a quote in Puree, the Xero invoice will be updated automatically. However, there is one exception: if a payment (partial, prepayment, or full) has been applied to the invoice in Xero, Xero locks that invoice and will not allow updates.

If this happens, Puree will show a warning when you try to edit the quote. You can still update the quote in Puree, but the changes won’t sync to Xero. To resolve this:

  1. Go into Xero and unreconcile the payment from the invoice
  2. Come back to Puree and make your updates
  3. The invoice will be updated in Xero
  4. Re-allocate the payment in Xero

Tip: Avoid allocating prepayments or deposits to an invoice until the very last moment — ideally just before you send the final invoice. This keeps the invoice unlocked so any last-minute changes to the quote can still sync through.

Adding Charges After the Invoice Has Been Sent and Paid

Extras that land after the invoice has been paid, such as guests over the final number or extra staff hours, can be billed two ways.

Raise a separate invoice for the extras. Best when the payment is already reconciled or the period is closed. Do this in Xero: a quote in Puree only ever has one invoice.

  1. In Xero, create a new invoice for the same customer.
  2. Add a line for each extra charge, coded to your usual income account.
  3. Approve and email it.

Or update the one invoice. Best when the customer should end up with a single invoice for the whole event.

  1. In Xero, remove the payment from the invoice. If it has been reconciled, unreconcile the bank statement line first.
  2. In Puree, add the extra items to the quote and save. Saving is what pushes the update across to Xero.
  3. Check the invoice in Xero, then re-allocate the payment. What is left owing is the extra amount.
  4. Approve and email it again.

Combined invoices work the same way. See Combined Invoices.

Xero will not let a paid invoice change, so a quote you save while the invoice is still locked fails to sync. Once the payment is off, save the quote again, or click Retry on the failed row under Settings → Integration sync history. The invoice itself is never harmed by a failed sync.

Deposits recorded in Puree and payments in Xero

A deposit receipt entered through Actions → Add deposit received is a Puree record of the amount and date received. It shows on the quote, but it does not create a Xero payment, prepayment or separate deposit invoice, and it does not reduce the sales value of the linked invoice.

  1. Set the deposit requirement on the Puree quote.
  2. Collect the payment through your configured payment process. For a manual payment, record the amount and receipt date in Puree after you receive it.
  3. Handle the corresponding accounting entry and reconciliation in Xero through your agreed bookkeeping process.
  4. Review the linked Xero invoice and any sync result separately. Saving a quote queues an automatic invoice update only when the connection, auto-sync and existing invoice link permit it. A payment or other invoice restriction can prevent an update.

Puree does not automate a separate deposit-invoice-and-void workflow. This guide does not prescribe duplicating an invoice, voiding it or allocating a prepayment as a universal solution. Those are accounting actions to agree with your bookkeeper for the actual transaction.

For the operational report, open Settings → Deposits held. Its filters and PDF/CSV exports use deposits recorded in Puree. The date filters use the order/event date and the balance column is quote total minus recorded deposits. It is not a reconciled Xero liability balance. See Managing Deposits for the report and order-level developer API fields.

See Processing Deposits in Xero for a concise explanation of the two records.