Guide
MSP billing software: the reconciliation step most tools skip
What MSP billing software does, where seats still slip through between your distributor and your invoices, and a monthly check that catches them.
If you run a managed service provider, billing is the part of the business that has to be right every single month and that nobody wants to own. You resell Microsoft 365 and other per-seat licenses, you charge a monthly fee per user or per device, and you add projects and hourly work on top. MSP billing software exists to turn all of that into invoices.
Most of it does that job well. What many setups still miss is the check after the invoice is built: does what you are billing each client match what your distributor is charging you for that client? This guide walks through what billing tools do, where the gap opens, and how to close it with or without new software.

What MSP billing software usually covers
"MSP billing software" covers a few different kinds of tools, and most MSPs use more than one:
- Your PSA's billing module. ConnectWise PSA, Autotask and HaloPSA all bill from agreements or contracts, with recurring lines for each service and a quantity for each line. This is where most MSPs build the invoice.
- Your accounting system. QuickBooks Online or Xero, either as the place invoices are created (common for smaller shops) or as the place PSA invoices land.
- Distributor integrations. Distributors such as Pax8 offer integrations that push subscriptions or seat changes into a PSA. How much they update depends on how they are set up.
- Billing reconciliation tools. A separate category whose job is to compare what vendors charge you with what you charge clients, and flag the differences.
- Payment collection. Card and ACH processing, portals and dunning.
The first two build the invoice. The third tries to keep its quantities current. Only the fourth checks the result.
Where seats slip through
The invoice is only as right as the quantities on it, and those quantities change outside your billing system all the time:
- A technician adds licenses for a new hire at the distributor or in Partner Center, and the agreement in the PSA keeps last month's quantity.
- A client cancels a product, you stop paying for it, and the recurring line keeps billing it. That one costs you trust rather than margin when the client notices.
- An integration mapping breaks or was never made. A new product, a renamed SKU or a new client company that is not mapped yet will not flow through.
- Prices change. Your cost goes up at renewal and the unit price on the agreement stays where it was, so you bill the right count at a loss.
- Bundles hide counts. You sell a per-user package that includes Microsoft 365, so the invoice says "Managed user x 25" and the distributor says "Business Premium x 27". Nothing on either document flags the two missing seats.
None of these is a failure of the billing software. It billed exactly what it was told to bill.
What to look for in a tool
If you are choosing or reviewing MSP billing software, ask how each of these is handled:
| Question | Why it matters |
|---|---|
| Where do seat quantities come from? | Typed in by hand, synced from the distributor, or both. Hand entry drifts; syncs drift when a mapping is missing. |
| What happens when a client cancels at the distributor? | The recurring line should end, or at least be flagged. |
| Can it handle bundles? | One invoice item may stand for several licenses per user. |
| Does it show cost next to price? | A line billed below your cost is a leak even when the count is right. |
| What does it do with something it cannot match? | Silent skips are where seats disappear. You want a list. |
| How much setup per client? | A tool that needs an hour per client often stays half set up. |
The monthly check, with or without software
Whatever builds your invoices, the check that catches drift is the same. Do it each month after the distributor bill arrives and before you send invoices:
- Export what you paid for. From your distributor or Partner Center, the bill or subscription detail for the month: client, product, quantity, cost.
- Export what you billed. From your PSA or accounting system, the invoice lines for the same month: client, item, quantity, price.
- Pair the clients. The distributor's company name and your invoice client name rarely match exactly. Make a list of pairs once and keep it.
- Pair the products. Map each invoice item to the license it represents, with the number of seats per unit for bundles.
- Compare per client and product. Seats paid for against seats billed. Sort the differences by dollar value.
- Fix and record. Update the agreement or invoice, and note why any difference is intentional (a free seat for the owner, internal licenses you do not bill).
In a spreadsheet this is a few lookup formulas, and the license reconciliation guide has a column layout. The hard part is steps 3 and 4 the first time, and remembering to do it every month after that.
Checklist before you send invoices
- The distributor bill for the month has arrived and its total matches the export you are using.
- Every client on the distributor bill is paired with an invoice client, or marked internal.
- Every Microsoft 365 product on an invoice is paired with a license.
- Seats paid for and seats billed match for every client, or the difference is explained.
- No client is billed for a product you stopped paying for.
- No line is billed below your current cost unless you meant it.
When it makes sense to automate the check
If you have a handful of clients and one person who does billing carefully, the spreadsheet works. Once you have dozens of clients, several people who can change licenses, or a PSA sync you no longer fully trust, the check is worth automating, because it is the part that gets skipped in a busy month.
License Drift does this check from exports you already have: your distributor export (Pax8, Sherweb or the Partner Center reconciliation file) and your QuickBooks or PSA invoice export. It pairs clients and products once, remembers the pairs, and emails the under-billed, over-billed and cancelled-but-still-billed lines, with a reminder on the day of the month you choose. It does not connect to your PSA.
Find the Microsoft 365 seats you pay for but don't bill
License Drift compares your distributor's seat counts and costs with each client's invoices, and emails the under-billed, over-billed and cancelled-but-still-billed lines. A monthly reminder tells you when to run it.
$99/ month
Get startedCancel any time.