Microsoft 365 licence reconciliation tools for MSPs, compared
Five products that check what you bought from Microsoft against what you actually invoiced. What each costs, which need a PSA, and which one fits your size of shop.
The comparison
| Tool | Price from | Needs a PSA? | Reads QuickBooks / Xero? | Free tier |
|---|---|---|---|---|
| BillingReconcile | $129/mo | PSA-centric | Not listed | None |
| Sync 365 | Quote | Yes, required | No | None |
| Syncro Universal Billing | ~$139/tech/mo | Yes, Syncro itself | No | None |
| Gradient MSP | Quote | Yes | No accounting systems | None |
| SeatGap | $0 | No | Yes | Entirely free |
What each one actually is
- BillingReconcile: $129/month, the cheapest paid option
- Compares invoice quantities against licences, devices and Microsoft 365 seat counts before
month-end invoicing. Core is $129/month covering roughly 50 clients and 125 coverage
items; Team is $249, Business $399, Enterprise $649. Thirteen integrations, named as
ConnectWise, Bitdefender, Webroot, Comet Backup, Addigy, NinjaOne and Huntress, all of them PSA, RMM
or security vendors. No accounting system appears on the list. There is no free tier and no
trial advertised. History is 30 days, extendable to 24 months from $19/month.
The thing to know: the price is the same whether you have 8 clients or 50. A four-person shop pays what a fifty-client shop pays. - Sync 365: reconciles into your PSA's agreements
- Handles Microsoft 365 licence counts, proration, new-commerce changes and reactivated
users, then updates the matching PSA agreement or contract records after review. Supports
ConnectWise Manage, Autotask and HaloPSA. Pricing is by quote.
A PSA is required, because updating PSA agreement records is the product. - Syncro Universal Billing: bundled, and new
- As of the March 2026 release, Syncro syncs Microsoft licence counts directly onto
recurring invoices, detects seats added and removed daily, and lets you bill on licences owned
or licences actually consumed. Syncro's own description: it "eliminates the need for manual
reconciliation." Available on the Team plan with Entra tenants mapped to Syncro.
If you already pay for Syncro, this is included and you should use it. Syncro is around $139 per technician per month and is one of the two platforms most often recommended to shops with 1–10 technicians. - Gradient MSP: broad vendor coverage, PSA-anchored
- Integrates six PSAs and over a hundred vendors, reconciling vendor counts into PSA billing. Extremely broad on the vendor side. Zero accounting-system integrations, so the billing side has to be a PSA.
- SeatGap: free, browser-only, no PSA
- You drop in the Partner Center reconciliation CSV and an invoice export from QuickBooks,
Xero or Zoho. It reports which licences you are paying Microsoft for and not charging a client
for, per client and per SKU. All matching runs in the browser: no upload, no account, no
server. Free with no tier above it today.
What it is not: it does not write back to anything, does not run itself on a schedule, and does not connect to any API. It is a check you run, not a system you install.
Which one fits you
The comparison only gets interesting for shops that never bought a PSA. Typically one to ten people, somewhere between 100 and 800 seats under management, invoicing straight out of an accounting package. For them:
- Under about 15 clients: $129/month is hard to justify against a gap that is often a few hundred a month. Do it manually, or use something free.
- 15 to 50 clients, and it is costing real money: BillingReconcile at $129/month pays for itself quickly, if you are willing to adopt a PSA-shaped workflow.
- Growing and about to buy a PSA anyway: pick the PSA first and take reconciliation as part of it. Do not buy a point solution you will discard in six months.
Why this problem exists at all
The Microsoft reconciliation file is not a list of licences. It is a list of charges,
and one subscription produces several rows a month: cycleCharge for the baseline,
addQuantity when seats are added mid-term, removeQuantity which arrives
negative, and customerCredit rows that are money rather than seats.
Sum the Quantity column and you get a number that was never true. That is why this is done once a year instead of once a month, and why seats added in March get noticed in November.
The second half is worse: matching a Microsoft SKU to whatever your invoice line got renamed
to. Email & Office Bundle shares not one word with
Microsoft 365 Business Premium, so no string matching will ever connect them.
The full explanation is here.
Common questions
Can I reconcile Microsoft 365 licences without a PSA?
Yes, but none of the paid tools are built for it. BillingReconcile, Sync 365, Gradient MSP and Syncro all assume the billing side is a PSA. Without one you either compare the Partner Center CSV to your invoice export by hand, or use a free tool that reads both files directly.
How much money is actually sitting in this gap?
Reported figures cluster in the hundreds to low thousands per month per MSP. One vendor case study cites $2,500 a month recovered; an MSP posting publicly found roughly €5,000 across a single quarter. Treat vendor numbers as an upper bound, since they have an interest in the figure being large.
Why doesn't summing the Quantity column work?
Because one subscription produces several rows a month and some are negative. A
customerCredit row is a refund, not a seat change, so counting it reduces your seat
total for a reason that has nothing to do with licences. Group by client and SKU, then add only
the charge types that change quantity.
What is the cheapest way to check this?
Free, if you already have the two CSVs. The Partner Center reconciliation file is a download from your partner portal, and every accounting package exports invoices to CSV. The cheapest paid option is BillingReconcile at $129 per month.
Is it safe to upload client billing data to a reconciliation tool?
That is a contractual question for your client agreements, not a technical one. Every paid tool in this comparison processes the data on their infrastructure. If that is a problem, the alternative is a tool that runs locally in your browser and transmits nothing.
Last updated 11 August 2026. Prices are taken from each vendor's own published pricing page or documentation on that date and change without notice, so check before relying on any figure here. SeatGap is our own tool, which is why this page tells you not to use it in the three cases where something else fits better.