Billing reconciliation for MSPs

You bill 150 seats. Your distributor bills you for 200. That gap is $1,100 a month.

Seats get added mid-month, people leave, plans change, and your PSA agreements quietly drift from what your vendors actually charge you. BillRecon lines the two up, tags every gap with a dollar figure, and hands you a finished statement before invoice day.

Free during the private beta, then flat from $179/mo with Microsoft included and no per-seat add-ons. Once you are in, connect once and reconciliation runs itself.

ExceptionsSeptember 2026 · Last run, 6:12amSample

Under-billed. Revenue you are not invoicing.

+$1,843.00/mo

+$22,116 a year · 6 lines across 4 clients

Over-billed. Money you owe back.

$264.00/mo

2 lines to refund

ClientProduct$ / mo
Meridian LogisticsMicrosoft 365 Business PremiumUnder-billed+$1,100.00
Cohort HealthMicrosoft 365 E3Under-billed+$288.00
Brightpath LegalMicrosoft 365 Business StandardUnder-billed · locked to 28 Feb 2027+$330.00

Showing the 3 biggest of 6.

Net8 open lines+$1,579.00

Sample data. Your number is computed from your own connected data.

Works with the systems you already run

12 integrations live today, newer ones marked beta. No logo for your tool? The spreadsheet import and the automation feed take anything that exports. More PSA, distributor, and MSP-stack coverage every month. Request an integration →

BILLING DRIFT · THE FIVE TYPES

Five ways billing drifts. One screen that catches them.

Not billed

Seats you pay for and never invoice

Microsoft 365 Business Premium · 12 licensed at the distributor · no agreement line in your PSA

12 → –+$264.00 /mo
Under-billed

Seats added mid-term, still billed at the old count

distributor bills you 200 · you invoice 150 · 50 seats on the house

200 → 150+$1,100.00 /mo
Over-billed

Offboarded users still on the invoice

Defender for Endpoint P1 · 0 assigned at the vendor · 4 still billed to the client

0 → 4$22.00 /mo
Wrong plan

Agreement bills the wrong plan

billed as Microsoft 365 Business Standard · the tenant runs Business Premium · 22 seats × the $11 plan gap

22 → 22+$242.00 /mo
Not in vendor

Lines your vendor no longer sells you

still on the client's agreement · nothing behind it at the distributor

– → 3$45.00 /mo

HOW IT WORKS

Connect once. Confirm your clients. Fix the drift.

  1. Connect your stack

    PSA first: that is where your billing lives. Then the distributors and vendors that charge you. Every connection reads through least-privilege credentials, and write-back stays off until you arm it.

    Connections3 connected · all healthySample
    ConnectWise PSAPSARead + write-back
    Pax8DistributorRead-only
    Microsoft 365VendorRead-only

    Vendors and distributors are never written. Write-back to your PSA waits behind the caps you arm.

  2. Confirm your clients

    Mapping lines up every vendor account with the PSA client it bills and scores each match. Confirm the sure ones in one move and decide the rest yourself; products map the same way. Every decision is remembered, so the next sync applies your book, not a guess. No dollar is trusted until you confirm the match behind it.

    Mapping12 of 14 matchedSample
    Client matches12 of 14 confirmed
    Meridian Logistics↔ Meridian Logistics LLC98%Confirmed
    Cohort Health↔ Cohort Health Inc96%Confirm
    9 more above 95%Confirm all 9
    Product maplearned once, applied every sync
    O365_BUSINESS_PREMIUMMicrosoft 365 Business PremiumRemembered
  3. Fix the drift

    Every gap lands as a money-tagged line that shows its work: the vendor count, the agreement line, the price it rides. Approve it and BillRecon updates the agreement quantity in your PSA inside the caps you set, or exports the same fix in one click. Every write is logged, and every write has an undo.

    Under-billedMeridian Logistics+$1,100.00
    Microsoft 365 Business Premium200150+$1,100.00/mo
    Where these numbers came from
    Seats at Pax8200
    Seats billed in ConnectWise150
    Price, from the agreement$22.00 /seat
    Raise ConnectWise to 200 seatsInside your caps · every write is logged, with an undo

Sample data. Every line in your statement shows its own sources.

HANDS-OFF RECONCILIATION

It runs itself, inside guardrails you set.

BillRecon re-pulls your PSA, distributors, and vendors on schedule and refreshes the statement. When your invoices finalize, the month’s digest lands in your inbox. You open a finished statement, not a chore.

Approve a correction and BillRecon updates the agreement quantity in your PSA itself, inside the caps you set. Prefer paper? The same fixes export in one click.

Last night, unattendedSample
02:00synced PSA, distributor, vendors
02:04run complete · 3 new lines
02:042 corrections inside your capsAuto-applied
Write-back guardrails · layered, all yours
  • Global kill switchOFF BY DEFAULT
  • Per-connection toggleYOU ARM IT
  • Per-client allow-listYOU CHOOSE
  • Per-fix dollar capYOU SET THE $
  • Per-run ceilingYOU SET IT
  • Audit trailEVERY WRITE

RENEWALS AND POOLS

Built for the NCE era.

Microsoft’s NCE term-locks your seat counts. You can only trim seats at renewal, so a missed window means another full term paying for seats nobody uses. BillRecon puts every client’s renewals on one calendar with the seat drift attached, so you cut before the lock, not after.

Connect your per-user assignments and it shows the committed-versus-deployed headroom too, so you renew for what you actually run.

Renewals3 clients · next 8 monthsSample
Renews in
45days
Globex Corporation
Microsoft 365 Business Premium · annual
reduce by 26 Oct12 idle / 200
Renews in
150days
Soylent Corp
Microsoft 365 Business Premium · annual
reduce by 8 Feb 20275 over-committed
Renews in
240days
Wayne Enterprises
Microsoft 365 E3 · 3-year
reduce by 9 May 20278 idle / 60
Commitment pool · Microsoft 365 E3 · 3-year commit
Locked to 9 May 2027
60 committed52 deployed8 idle

Deployed counts come from your per-user license matrix.

Sample data. Your calendar is built from your own vendor subscriptions.

DEVICE COVERAGE

Agents you pay for. Devices that are real.

Your RMM only knows its own agents. BillRecon merges the device list from every tool you connect into one inventory per client and lines up each tool’s last check-in. An agent that goes quiet while its siblings still report is a stalled install, not a dead machine.

Then it checks what each device should be running. Say a workstation gets EDR and RMM while a server is judged on its own terms, and BillRecon flags the live machines missing a tool you pay to deploy. A workstation reporting in fine that no EDR has ever seen is a billing conversation no single console can find, because each one only sees its own.

It raises a gap only when a connected tool proves it can already see your other devices, so the list is worth acting on, not a wall of false alarms. Coverage gaps are conversation first and carry no dollar figure.

Coveragelast check-in per toolSample
ClientRMMSecurityBackup
Riverside Health0/2411/240/24
Acme Logistics38/4141/4129/41
Northbeam Dental18/1818/1816/18
Vela Studio9/99/99/9
ReportingPartialStopped

Device dollars are approximate and labeled as such. They never enter the drift total.

Why MSPs trust the number

Read-only mirror of your PSA

BillRecon does not author contracts. Your PSA stays the system of record, and nothing changes until you approve it.

Credentials in a managed vault

Encrypted at rest, scoped to read only what is needed, and hard-deleted the moment you disconnect a source.

Trust before totals

Every vendor account is matched to its PSA client and confirmed before a single dollar is trusted. No confident, precise, wrong numbers.

PRICING · FLAT PER MSP

One price. Every connection included.

These plans open when we leave beta. We will email you before any billing starts. Flat per MSP, by reconciled-client count, every connector included at every tier.

Starter
$179 /mo
Reconciled clientsup to 50
Runsmonthly
Growth
$349 /mo
Reconciled clientsup to 150
Runsweekly
Scale
$649 /mo
Reconciled clientsup to 500
Runsweekly

Free during the private beta. Request beta access.

See what this month is hiding.

Connect your PSA and vendors, confirm the matches, and your run-rate exposure is on screen, down to the exact lines that are drifting.