How-To

How to Reconcile Microsoft CSP Billing with Your PSA

7 min readHow-To
LF

Written by

Leakage Finder Editorial Team

MSP billing reconciliation research and product team

Published
March 25, 2026

Helpful next step

See how this mismatch shows up in a ConnectWise billing workflow.

If you are researching a specific vendor-vs-PSA reconciliation problem, jump from the article into the matching compare page before you run your own audit.

Split screen showing Microsoft CSP billing export alongside PSA billing data being reconciled

How to Reconcile Microsoft CSP Billing with Your PSA Every Month

You have your Microsoft CSP export open in one tab and your PSA billing report in another. Now what?

Matching these two datasets manually feels like solving a puzzle where half the pieces have different names. This guide gives you a repeatable process that works every month, whether you manage 10 clients or 200.

Step 1: Get Clean Exports from Both Sides

Reconciliation only works if you start with the right data. Before you compare anything, make sure you have line-item exports from both Microsoft and your PSA for the same billing period.

From Microsoft Partner Center (or your distributor):

Go to Billing, then Usage-based subscriptions or License-based subscriptions, and export the current billing period as CSV. Confirm the export includes customer name, product description, quantity, and unit price. Avoid summary-level reports. You need line-item detail.

From your PSA:

Export your agreement or contract billing report for the same period. The path varies by platform:

  • ConnectWise: Finance > Agreement Billing Summary
  • Autotask: Contract Billing report
  • Kaseya BMS: Billing > invoice line items

Columns you need: company name, product name, quantity billed, and unit price.

Step 2: Normalize the Data Before You Match It

The biggest source of false mismatches is inconsistent naming. The same client might appear as "Acme Corp" in your PSA and "Acme Corporation" in the Microsoft export. The same product might be "Microsoft 365 Business Premium" in one system and "M365 Bus Premium" in another.

Normalization means applying consistent rules to both datasets before you compare them:

Flowchart of monthly CSP-to-PSA reconciliation process for MSPs
  • Strip extra whitespace and punctuation
  • Apply consistent capitalization (use all lowercase for comparison)
  • Map known SKU variations to canonical names (for example, "M365 BP" becomes "Microsoft 365 Business Premium")
  • Remove common suffixes that don't affect matching, like "Ltd", "Inc", and "Corp"

Manual normalization is tedious and error-prone. Reconciliation tools handle this automatically using pre-built normalization rules and SKU alias maps.

Step 3: Run an Exact Match First

Start with exact matching. For each row in your vendor export, find a PSA row with an identical client name and identical product name after normalization. Exact matches are high-confidence. Act on any quantity differences found here immediately.

Most clean MSP datasets will get 60 to 75 percent of rows matched exactly. The remaining 25 to 40 percent require fuzzy matching.

Step 4: Use Fuzzy Matching for the Rest

Fuzzy matching compares string similarity rather than requiring exact equality. "Stark Industries" and "Stark Ind." score as highly similar. "Microsoft 365 E5" and "M365 E5" match with high confidence. The algorithm assigns a score between 0 and 1. Rows above your threshold are treated as matches.

Tuning the threshold matters. Too strict and you miss real matches. Too loose and you get false positives where different clients or products are incorrectly paired. A threshold of 0.65 to 0.75 similarity works well for most MSP data.

Review any matches below your confidence threshold manually before acting on them.

Step 5: Review, Update, and Invoice

After matching, every row falls into one of three buckets:

  • Matched, quantities equal: no action needed
  • Matched, quantities differ: the difference is your revenue leakage. Update the PSA and invoice the delta.
  • Unmatched vendor rows: seats you're paying for with no PSA counterpart. These are high priority. You're likely billing nothing for them.

Update your PSA agreement lines for each mismatch, generate a supplemental invoice for the current month, and log the correction in your ticket history. Tracking recurring issues helps you spot clients or products that need a permanent fix.

Frequently Asked Questions

What columns do I need in each export?

Client name, product or SKU, quantity, and unit price are the minimum. Subscription ID helps with edge cases but is not required for basic reconciliation.

How do I handle Microsoft SKU name changes?

Maintain a SKU alias map that links old names to current names. Or use a tool that maintains it for you. Leakage Finder includes 85 Microsoft SKU aliases covering NCE, legacy, and distributor-specific variations.

Is there a faster way than building this manually?

Yes. Purpose-built reconciliation tools like Leakage Finder automate export normalization and matching, turning what used to take hours into a 10 to 20 minute monthly task.

Stop Leaving Microsoft Seats Unbilled

Leakage Finder compares your Microsoft CSP billing against your PSA automatically. It catches quantity mismatches, unmatched seats, and SKU inconsistencies before they cost you another month of revenue.

Run your first reconciliation in under 20 minutes.

Key takeaway

The real issue is rarely one broken row. It is the drift between vendor billing and PSA billing that keeps compounding until someone compares both exports line by line.

Next step

Turn this billing mismatch into a real audit.

Inspect the sample audit first, then run the same workflow on your own exports to see where mismatches, under-billing, and orphaned items are still hiding.

Related reading

Keep going with the next question MSP billing teams usually ask

Browse the blog

Share this article

Pass it to a teammate, drop it into a client thread, or save the link for your next billing review conversation.

How to Reconcile Microsoft CSP Billing with Your… | Leakage Finder