Syncing Your Sales to Xero

Your sales, in your books โ€” automatically. Set it up once, and stop exporting spreadsheets.

This guide is about sales โ€” your revenue flowing into Xero as invoices. (Purchases and supplier bills aren't synced yet.)

Time: ~15 minutes ย ยทย  You'll need: admin access to Twine POS, and your Xero login.

Note
Two parts. Part 1 sets up how your books are organised โ€” the same for any accounting tool. Part 2 onward connects Xero and points your numbers at the right accounts. Using QuickBooks or Sage instead? Part 1 is identical; only the connection changes.

Before you start

  • You're an admin in Twine POS.
  • You have a Xero account you can sign in to and authorise.
  • Everything you sell is sorted into accounting groups (Food, Beverages, โ€ฆ) โ€” the buckets your revenue reports under. Groups apply across the board: menu items, product variants, add-ons, and fees like BCRS. No groups yet? Set them up under Finance โ†’ Accounting Groups (/admin/finance/accounting-groups).
Warning
Once sync is on, an accounting group is mandatory. Twine POS blocks creating a new item โ€” menu item, variant, add-on, or fee โ€” until it has one. That's what guarantees every sale has somewhere to land in Xero.

Part 1 ยท Set up your books

Finance โ†’ Settings (/admin/finance/settings). This part is provider-agnostic โ€” true whether you use Xero, QuickBooks, or Sage. Set it once and forget it.

Choose how sales are grouped

Under Sync Configuration:

  • Sync mode โ€” Aggregate rolls a period's sales into one summary invoice (right for most businesses). Individual sends one invoice per order. Choose Aggregate if unsure. (Either way, B2B invoice orders are never rolled into the summary โ€” they always sync as their own invoice.)
  • Group invoices by โ€” split invoices per location, channel, both, or neither. Most venues group by location โ€” one invoice per site keeps each set of books clean.
  • Reference format โ€” what each invoice is named in Xero. {tenant} {location}: {date} reads as "Fumiglia Qala: 25 Jun 2026." Placeholders: {tenant} {location} {channel} {date}.

Batch invoices by Z-report

Under Z-Report Invoicing:

  • Invoice per Z-report โ€” on by default, and the right call. Each Z-report (your end-of-day fiscal close) becomes one clean invoice in Xero. Leave it on. (Turning it off batches by calendar day instead โ€” emergency use only.)
  • Z-report reference format โ€” what each of those invoices is named in Xero. Z{z} {printer} {location}: {date}. Placeholders: {z} {printer} {location} {date}.

Keep your VAT honest

Under Accounting Groups, leave Require VAT rate matching on. It stops a 7% item landing in an 18% bucket. Turn it off only if your accountant tells you to.

Match the fiscal printer (if you use one)

Under Fiscal Reconciliation, Require fiscal reconciliation blocks a sync until your fiscal printer totals match the period. If you run a fiscal printer, keep this on โ€” it's your guarantee that Xero agrees with the taxman.

Tip
Selling through Bolt or Wolt in Malta? Fiscal receipts and VAT are handled with care โ€” here's how we get it right.

When you're set, hit Save Settings.

Note
Segments โ€” for businesses with more than one identity. A segment is a slice of your business โ€” a location, a sales channel, a payment method, or a mix โ€” that needs its own accounting identity in Xero (its own contact, or its own account codes). The classic case: Malta vs Gozo, kept on separate books. Define your Segment Rules here; each one becomes a target you can map separately in Part 3. One business, one set of books? Skip this entirely.

Part 2 ยท Connect Xero

Integrations โ†’ Xero (/admin/integrations/xero).

  1. Click Connect to Xero.
  2. Sign in to Xero and authorise Twine POS.
  3. You'll land back here, now showing your Xero organisation and a token expiry date.

That's the whole connection.

Warning
Connections expire. Xero authorisations lapse periodically โ€” when yours does, the page shows Token Expired. Just hit Connect to Xero again. Ten seconds, and your settings are untouched.

Part 3 ยท Point your numbers at the right accounts

Integrations โ†’ Xero. This is the one part worth your accountant's eyes.

Now connected, Twine POS can read your Xero chart of accounts. First, the shape of what you're building โ€” every invoice Twine POS creates in Xero has four parts:

  • a contact โ€” who the invoice is billed to
  • line items โ€” what sold, each landing in a revenue account
  • the payment โ€” how those items were paid, landing in a bank account
  • a reference โ€” the invoice's name (set back in Part 1)

Your mappings fill in the first three. Three things to set:

1. Sales โ†’ revenue accounts

Under Account Code Mappings โ†’ Add Mapping, map each accounting group to a Xero revenue account.

Accounting group Xero account
Food 4000 โ€“ Food Sales
Beverages 4010 โ€“ Beverage Sales

Repeat for every group you sell under.

2. Payments โ†’ bank accounts

Under Payment Method Mappings โ†’ Add Mapping, map each payment method to where the money lands in Xero.

Payment method Xero account
Cash 1025 โ€“ Cash on Hand
Viva Wallet 1000 โ€“ Business Bank Account

3. Tips, discounts & shipping

Under Account Codes, set the accounts for tips, discounts, and shipping. Product revenue is already handled by your accounting-group mappings above โ€” these three are the extras.

Tip
Choosing which Xero account each number lands in is an accounting decision. If you're the owner and unsure, this is a five-minute call with whoever does your books. Get it right once โ€” it's done for good.

The fine print (for your bookkeeper)

  • Tax type override โ€” each Xero account uses its own tax rate by default. Override per mapping only when you need a specific Xero tax type, e.g. ZERORATEDOUTPUT.
  • Invoice contact โ€” the Xero contact every invoice is billed to (often a single Sales Control contact). Set a default; override per segment if you set those up in Part 1.
  • Segments โ€” every mapping can target a specific segment rule. Leave it on Default unless you're running multiple identities.
Warning
See a "missing" badge? You have unmapped items, and sync stays off until they're filled. That's deliberate โ€” no silent gaps in your books.

Part 4 ยท Turn it on

Integrations โ†’ Xero โ†’ Sync Settings.

  1. Failure notification email โ€” where we alert you if a sync ever fails. Use an address someone actually reads.
  2. Flip Enable Xero Sync on. (It stays locked until your mappings are complete โ€” that's the warning you'll see if it won't move.)
  3. Save Settings.

Done. Twine POS now pushes to Xero every cycle, on its own.

Note
Syncing starts the moment you enable it โ€” sales from here onward. It won't back-fill orders from before you switched it on.

Check it's working

Integrations โ†’ Xero โ†’ Sync History lists every push โ€” invoices and payments โ€” with a status.

  • Synced โ€” it's in Xero.
  • Failed โ€” it needs attention. The row tells you why, and we've emailed you.

Open any row for the full detail.


When something's off

What you see What to do
Token Expired Your Xero authorisation lapsed. Connect to Xero again. Ten seconds.
Sync won't turn on You have unmapped items. Fill the "missing" mappings in Part 3.
A row says Failed Open it for the reason โ€” usually a new payment method or accounting group with no mapping yet. Add the mapping; it retries automatically.
Numbers don't match the taxman Confirm Require fiscal reconciliation is on (Part 1).

That's it. Your books keep themselves now.