Help Centre

Connect Xero

Connect Mucka to Xero — your contacts, invoices and customer payments push across automatically.

Walkthrough coming soon
90-second video. We're recording these now.

Connecting Mucka to Xero means your clients, invoices and customer payments flow straight into Xero — no more typing the same numbers twice into two systems. Mucka stays the place you raise an invoice; Xero is where your bookkeeper sees it land seconds later.

Heads up: before invoices start syncing you need to pick a default revenue account, default tax rate and default bank account using the Map accounts button on the Xero panel. Contacts sync the moment you connect; invoices and payments flow as soon as mapping is saved.

Connect your Xero org

Head to Settings → Integrations → Xero and tap Connect Xero.

Xero asks you to sign in and pick which organisation (org) you want to link. Approve the permissions Mucka asks for:

  • Accounting contacts, invoices, payments and settings — so Mucka can push your clients in and (soon) your invoices
  • Your email address — so Mucka can show "connected by ryan@ryansplumbing.co.uk" on the panel

Approve and Xero bounces you back to Mucka with a "Connected" confirmation.

Already have clients in Xero? Bring them in

If you're coming to Mucka with an established Xero org, you don't have to re-type your contacts. Tap Import from Xero on the panel to pull your existing clients (and, if you want, their invoice history) straight into Mucka — matched against your Mucka clients first so nothing is duplicated. Full walkthrough: Import your existing clients.

One Xero org per Mucka workspace

If you run multiple businesses through separate Xero orgs, you need a separate Mucka workspace for each. Mucka pins each workspace to one Xero org so the right contacts and invoices land in the right place.

What flows across automatically

Contacts. Every client you create in Mucka — through the app, voice, WhatsApp or the CSV importer — is pushed into Xero contacts in a few seconds. Mapped fields:

  • Name (residential = first + last; commercial = company name)
  • Email (uses the client's email, falling back to company email)
  • Phone (primary phone goes in as Default)
  • Address and postcode
  • VAT number (if set, appears as Tax Number in Xero)

Update a client in Mucka and the changes flow through to Xero too.

Invoices. When you raise an invoice in Mucka, it lands in Xero as a draft (Mucka draft) or authorised invoice (anything sent). Line items, reference number, due date and tax all carry across. Edit the invoice in Mucka and the Xero side updates next time the engine syncs.

Customer payments. Recording a payment against an invoice in Mucka pushes a matching payment into Xero against the same invoice. If your customer pays you directly through Xero (bank feed, Stripe etc.), Xero pings Mucka and the invoice ticks over to Paid automatically — no double entry.

Voids. Voiding a draft invoice in Mucka removes the draft from Xero. Voiding a sent invoice that's already authorised in Xero pops up a choice on the void dialog: Issue a matching credit note in Xero (recommended — Mucka creates a credit for the same amount and allocates it against the original so the Xero balance zeros out), or Just unlink — leave Xero alone (the Xero invoice stays exactly as it is, you reconcile it manually).

Map accounts — pick your defaults

Tap Map accounts on the Xero panel and choose:

  • Default revenue account — where invoice income lands in your chart of accounts (often "200 Sales", but plumbers split into 200 Boiler Service, 201 Installations etc.)
  • Default payment bank account — where customer payments are received (your Xero bank feed account)
  • Default tax rate — applied to every invoice line on push. 20% (VAT on Income) is the usual UK pick; zero-rated or flat-rate accounts pick their matching code
  • Tracking (optional) — tag every invoice line with a Xero tracking option, useful for splitting reporting by engineer or service type

Save the mapping and any invoices that were waiting (raised in Mucka after you connected but before mapping was complete) push to Xero straight away in the background.

The sheet also has an Also push the last 90 days of invoices to Xero on save tick. Leave it on if you've just connected Xero and want your existing invoices in there too. Untick if you're mid-year and don't want a flood — only invoices raised from your save onwards will sync, and you can use Sync invoices now later to pull older ones across if you change your mind.

"Sync contacts now" + "Sync invoices now" — manual backfills

If you've got hundreds of clients in Mucka already, the first connect pushes them all across in the background. You can re-trigger the same sweep from the panel any time using Sync contacts now — useful if you've imported a big CSV and want to nudge Xero to catch up.

Sync invoices now does the same for invoices created in the last 90 days that don't have a Xero link yet — handy if Xero was down or your mapping was incomplete when an invoice was raised. It only enables once mapping is set; until then the button is greyed out.

Mucka skips records that are already in Xero, so you can tap either Sync button without worrying about duplicates. Both are rate-limited to one tap every 30 seconds per workspace, so a stuck finger can't blow through Xero's API limits.

Automatic retry — Mucka catches up on its own

Mucka runs a quiet retry sweep every hour (at quarter-to). If anything failed to push to Xero in the previous hour — bad timing, Xero hiccup, network blip — the sweep retries the last 24 hours of contacts and invoices for any connection still showing an error. Most of the time you'll never notice the failure happened; you only ever need to tap Sync now manually for big imports.

Ask Mucka about Xero — voice and chat

Once Xero's connected, you can ask Mucka questions about your accounting position in plain English. Mucka pulls the numbers live from Xero and reads them back. Example asks:

  • "What's outstanding in Xero?" — lists invoices still owing, oldest first
  • "Anything over 90 days overdue?" — pulls aged receivables and reads the worst offenders
  • "Who owes me money?" — same as above, ranked by amount
  • "What was my month?" / "How did Q1 look?" — pulls the Profit & Loss for the period
  • "Push that invoice to Xero" — when an invoice didn't sync automatically (rare) or you want to force a retry, Mucka stages a one-tap approval card
  • "Draft that quote as a Xero invoice" — turns an accepted quote into a draft invoice in both Mucka and Xero, ready for your bookkeeper to finalise

The query tools fire instantly; the push tools always wait for a one-tap confirmation in the app — Mucka never sends data to Xero (or money around) without an explicit owner approval.

Permission needed to connect

Only people with the manage billing permission can connect or disconnect Xero. Engineers see the connection state on the panel ("Xero is connected to Ryan's Plumbing Ltd") but can't change it.

This is the same rule as the rest of the billing tab — the people who can change your subscription are the ones who can wire Xero in.

Disconnect

The Disconnect Xero button revokes Mucka's access on Xero's side and stops any new contacts, invoices or payments from flowing across. Existing records that have already pushed stay in Xero as accounting records — Xero doesn't allow Mucka to delete those (and you wouldn't want it to — they're your audit trail).

The disconnect sheet offers a default-on tick: Also clear the Xero badges from Mucka clients and invoices. Leave it ticked unless you specifically want Mucka to keep showing the old "synced to Xero" markers on entities whose Xero link is no longer active. The Xero side is untouched either way.

Troubleshooting

"Connection expired" — Xero sessions time out after a long pause. Tap Reconnect on the panel and approve again; Mucka catches up on anything missed during the gap.

"Access revoked" — happens when somebody on the Xero side removes Mucka from connected apps. Same fix: tap Reconnect.

A client didn't sync — Mucka shows the last sync error on the Xero panel. Tap Sync contacts now to retry. If a client has a bad email format Xero rejects, fix the email on the client record and the next push goes through.

What's coming next

  • More providers — QuickBooks, Sage and FreeAgent will follow Xero. Same patterns; tap Connect, pick mapping, done.
  • Subcontractor bills + CIS — pay subbies in Mucka, push to Xero as bills with the right CIS deduction (riding with the Subcontractor skill)

Watch for the next release notes — you don't need to do anything to opt in, the engine extends as we ship each phase.

Last updated 6 July 2026