ConnectWise to Xero · Month-end

Reconciling ConnectWise vs Xero monthly: a step-by-step audit

The Connect Zero team · 24 May 2026

TL;DR

A clean monthly reconciliation between ConnectWise and Xero takes under 45 minutes following the six-step audit pattern. The variance budget is under AUD 50 for a typical 100-invoice MSP. The hardest step is step 5 (root-cause walk-back); the rest is mechanical. Done correctly, this audit catches mapping drift before it shows up in the BAS or VAT return.

Why a structured audit pays off

An MSP whose ConnectWise to Xero sync has been running for six months without a structured reconciliation will have accumulated mapping drift. Drift is the slow accumulation of small variances that look harmless individually but compound over time. A wrong tracking category here, a missing tax-code mapping there, a customer whose location was changed in ConnectWise without updating the Xero side. After six months, the cumulative variance is AUD 600 to AUD 1,200 of unexplained revenue on the Xero P&L.

The structured audit catches drift at the per-month level when the variance is still small (AUD 50 to AUD 100) and the root cause is still recent enough to remember. Walking back six months of drift is a half-day project; walking back one month is a 45-minute project. The lever is frequency.

This audit assumes a real-time or batch sync between ConnectWise and Xero is already running, and the reconciliation is the recurring check that the sync's output continues to match the ConnectWise source. It is not a one-off migration check (for that pattern see the migration checklist).

The six-step monthly audit

Step 1: Generate the ConnectWise revenue report (5 minutes). In ConnectWise PSA, run the per-customer per-agreement revenue report for the closing month. Export to CSV. Columns: customer, agreement, total invoiced excl GST, GST, total invoiced incl GST. For an MSP with 35 customers, this is a 35-to-100-row CSV depending on how many agreements each customer has.

Step 2: Generate the Xero invoice report (5 minutes). In Xero, pull the Sales by Customer report for the same period. Slice by customer and by tracking category. Export to CSV. Columns: customer, tracking category, total ex-tax, tax, total inc-tax. For the same MSP, this is also a 35-to-100-row CSV.

Step 3: Compare totals at the top level (5 minutes). Three numbers from the ConnectWise CSV and three from the Xero CSV: total revenue ex-tax, total GST, total receivables created. If all three match within AUD 50, you can move on. If they don't, you have variance to investigate.

Step 4: Drill into variance by customer (10 minutes). Sort both CSVs by customer. Compare per-customer totals. Find the customers where the two sides differ. For a typical MSP with one drift issue per month, this surfaces 2 or 3 customers in this step.

Step 5: Identify the root cause (10 to 20 minutes). For each variance customer, open the ConnectWise invoices for that customer for the month and the Xero invoices for the same customer. Compare line by line. The variance is usually one of: a missing tracking category mapping (Xero line has blank Location), a wrong tax code mapping (Xero shows GST-free where it should show standard GST), an unsynced credit note, a re-issued invoice that produced a duplicate, or a customer rename that broke the matching logic.

Step 6: Fix and reprocess (5 to 10 minutes). Update the mapping in the Connect Zero sync admin (or the relevant sync vendor's admin). Re-sync the affected invoices (the admin should have a "re-sync this invoice" button; Connect Zero does). Re-run steps 3 and 4 to verify the variance is now zero.

Numeric scenario: a typical clean month

Concrete numbers for a 12-person Australian MSP doing AUD 1.5 million in annual revenue. April 2026 close.

MetricConnectWiseXeroVariance
Total revenue ex-GSTAUD 124,815.00AUD 124,815.00AUD 0.00
Total GSTAUD 12,481.50AUD 12,481.50AUD 0.00
Total receivables createdAUD 137,296.50AUD 137,296.50AUD 0.00
Invoice count97970

This is what a clean month looks like. Zero variance, identical invoice counts, identical totals. The reconciliation in this case takes under 15 minutes (steps 1, 2, 3 only). Steps 4 to 6 are not invoked because step 3 returns clean.

For comparison, here is what a month with drift looks like; the same MSP, March 2026.

MetricConnectWiseXeroVariance
Total revenue ex-GSTAUD 118,420.00AUD 117,892.00AUD 528.00
Total GSTAUD 11,842.00AUD 11,789.20AUD 52.80
Total receivables createdAUD 130,262.00AUD 129,681.20AUD 580.80
Invoice count94931

The invoice-count delta is the tell. One invoice didn't make it to Xero. Step 4 drilling reveals it's customer "Marsden Engineering"; their April managed-services invoice of AUD 528 ex-GST didn't sync. Step 5 reveals the root cause: a ConnectWise location was changed two days before the invoice was issued, and the sync's location-to-tracking-category mapping didn't include the new value, which triggered a sync rejection. Step 6: add the missing mapping, re-sync the one invoice, verify it lands. Total reconciliation time including drill-down: 38 minutes.

The variance signal lookup

Five variance signals account for roughly 80 percent of monthly reconciliation drift. Knowing the symptom lets you skip straight to step 6 in many cases.

SymptomMost likely causeStep 6 fix
One invoice missing on Xero sideMapping rejected the syncAdd the missing mapping; re-sync the invoice
Total GST off but ex-GST matchesTax code mapping wrongRe-map the tax code; re-sync the affected invoices
Tracking category showing Untracked revenueLocation field blank in ConnectWiseBack-fill the location; re-sync
Duplicate invoice on Xero sideSync retry after a previous partial failureDelete the duplicate; review sync retry policy
Credit note missing on Xero sideCredit notes have separate sync flag from invoicesVerify credit note sync is enabled; re-sync the credit note

For the tax-code variance specifically, see the tax mapping guide. For the tracking-category variance, see the tracking categories guide.

The 30-minute month-end-close pattern

Sophisticated MSPs roll the reconciliation into the broader month-end close, which the 30-minute close guide covers in full. The reconciliation is one of six tasks in that close; for clean MSPs it stays under 15 minutes, leaving the remaining 15 to 20 minutes for the bank reconciliation, the BAS prep, the AR ageing review, the AP ageing review, and the close-the-period action.

For MSPs that have not yet structured their month-end close, this article's six-step audit is the right place to start. Once the reconciliation runs cleanly three months in a row, the rest of the 30-minute close pattern becomes possible.

Pitfalls

  • Reconciling at the GL-account level only. The variance might be netting at the GL level (one customer over by AUD 500, another under by AUD 500). Per-customer drilling is what surfaces the real issue.
  • Skipping the reconciliation when totals look right. Mapping drift can compound without showing up in totals (e.g. wrong tracking category but right account). The audit doesn't replace the per-customer drill; it adds to it.
  • Reconciling against the bank rather than the invoice. Bank reconciliation is a separate process (payment-side). The ConnectWise vs Xero reconciliation is invoice-side. Don't conflate.
  • Treating step 5 root-cause analysis as optional. Just fixing the variance without finding the root cause means the same drift repeats next month.
  • Forgetting to re-run steps 3 and 4 after step 6. The fix can introduce new variance (rare, but it happens with cascading mapping changes). Always verify after re-syncing.

The annual rollup

Twelve monthly reconciliations done cleanly produce an annual outcome where the year-end Xero numbers match the ConnectWise year-end numbers within AUD 600 for a typical AUD 1.5 million revenue MSP. The variance is exchange-rate rounding on multi-currency invoices and unavoidable timing differences on month-boundary invoices.

The financial-year close (30 June for Australian MSPs) becomes a verification rather than a reconciliation, because the monthly cadence has already cleaned each month. The MSP's external accountant works from the year-end Xero numbers with confidence rather than from the ConnectWise year-end numbers.

This compounding outcome is the real return on the 45-minute monthly audit. Done well, it removes the year-end-reconciliation panic.

The role of the bookkeeper

The 45-minute audit needs an owner. For most MSPs, that's the bookkeeper. The bookkeeper owns Xero and runs the close; the operations lead owns ConnectWise and runs the agreement billing. The reconciliation sits between them.

The clean handoff pattern is: the operations lead generates the ConnectWise revenue report on the first business day of the new month (step 1, 5 minutes), emails it to the bookkeeper, and answers any drill-down questions during steps 4 and 5. The bookkeeper runs the Xero report (step 2), does the top-level comparison (step 3), drills into variance (step 4 to 5), and applies the fix in the sync admin (step 6). Total time: 45 minutes bookkeeper, 5 to 15 minutes operations lead.

For smaller MSPs (under 10 staff, fewer than 50 invoices per month) one person typically wears both hats. For larger MSPs (above 30 staff) the role is dedicated and the audit becomes part of a structured month-end-close playbook.

Frequency: monthly is the default, weekly is the upgrade

Monthly reconciliation is the default for most MSPs because the BAS or VAT return cadence is quarterly and a clean monthly cycle is enough to keep the quarterly return clean. For MSPs running real-time syncs with high invoice volume (above 200 invoices per month) or for MSPs where the CFO checks the Xero P&L daily, weekly reconciliation is the upgrade path.

Weekly reconciliation runs the same six-step audit but on a one-week period rather than a one-month period. The advantage is that mapping drift is caught within a week of when it happened, while the root cause is still fresh in memory. The disadvantage is the time cost: 4 × 15-to-30 minutes per month against the monthly pattern's single 45-minute session.

For most MSPs, monthly is the right cadence. Move to weekly only when monthly is genuinely producing too much accumulated drift to walk back in 45 minutes; this is uncommon below AUD 5 million revenue.

Tooling: what to use beyond Xero and ConnectWise

The six-step audit can be run entirely in Excel or Google Sheets using CSV exports from both sides. For most MSPs that's enough. For MSPs running this audit at scale (multi-entity, weekly cadence) the next-step tooling is a BI dashboard joining ConnectWise and Xero data via API.

The pattern: Power BI or Looker pulls the ConnectWise revenue API and the Xero invoice API daily, joins by customer ID, computes variance per customer per day, alerts on any non-zero variance. The bookkeeper opens the dashboard once a day, sees zero variance on most days, drills into the customer-level detail on variance days. The 45-minute monthly audit becomes a 5-minute daily check.

This is the operating model of mature MSPs (above AUD 10 million revenue typically). Below that, the manual CSV-export pattern is operationally sufficient.

Frequently asked questions

How long should monthly reconciliation take?

Under 45 minutes for a clean MSP. Under 30 minutes for an MSP whose sync has been running cleanly for 90+ days. Over 90 minutes is a signal that mappings have drifted; investigate the root cause rather than just clearing the variance.

What variance is acceptable?

Under AUD 50 per month for a typical 100-invoice MSP. Under AUD 200 is workable. Over AUD 500 means something is materially wrong and the next sync should be paused until the root cause is found.

Should we reconcile in the sync layer or in Xero?

In Xero. Xero is the source of truth for finance reporting; the sync layer is a writer. Reconciliation pulls the ConnectWise revenue report and compares against Xero, not the other way around.

What if our sync vendor doesn't expose a per-invoice mapping audit trail?

That is a real problem for reconciliation. The whole point of the six-step pattern is being able to walk back from a Xero variance to the specific ConnectWise mapping that produced it. Connect Zero exposes the mapping audit trail per invoice in the admin console.

About this article

Written by the Connect Zero team, an Australian-built ConnectWise to Xero sync sold by Auswide IT, an Australian MSP integration vendor based in Adelaide. We run this six-step audit ourselves at month-end. Last updated 24 May 2026.

See Connect Zero.

The integration layer. ConnectWise invoices in Xero with a per-invoice audit trail for reconciliation.

Start a free trial

Fill out the following details, and we’ll email you your trial login credentials. Get ready to experience the full capabilities of Connect Zero

Connect Zero is an independent third-party application. 3CX is a registered trademark of 3CX Software DMCC. ConnectWise is a registered trademark of ConnectWise LLC. Xero is a registered trademark of Xero Limited. Connect Zero is not affiliated with, endorsed by, or sponsored by these companies. All other trademarks are the property of their respective owners.