Finance and IT teams at companies with 50+ software subscriptions
Get refunds for software double charges and stop paying for unused seats
Reads card, AP or SaaS-inventory exports and finds software charges billed twice, after cancellation or above the contract price, plus seats nobody uses and subscriptions paid twice. It flags every auto-renewal before its notice date and drafts the refund or seat-change request for each vendor.
The problem
Software renews itself. Seats bought for a project stay paid after it ends, two teams buy the same tool on different cards, prices rise without a contract change, and cancelled subscriptions keep billing. Zylo reports that on average 46% of SaaS licences go unused.
How it works
- Step 1Export software chargesFrom the AP ledger or your corporate card or bank feed.
- Step 2Group into subscriptionsEach subscription is one vendor and product, on one payment method, for one owner, so duplicates become visible.
- Step 3Find refundsCharges billed twice in a period, charges after cancellation, seat prices above contract and price rises with no contract change.
- Step 4Find savingsUnused seats, subscriptions nobody uses, duplicate subscriptions and auto-renewals about to lock in.
- Step 5Act before renewalERPSav drafts refund requests and keeps a renewal calendar with each notice date.
Typical results
- First-year savings
- 10–25% of the software spend reviewed, mostly at renewal
- estimate
What the engine checks
- Double charges and charges after cancellation
- Seat prices above the contract and unagreed price rises
- Paid seats above active users, and subscriptions idle for 90 days
- The same product paid on two cards or by two departments
- Auto-renewals inside the notice window, with the deadline
What you upload
A CSV export. Header names are matched automatically; these are the columns the engine reads.
| Column | Required | Example |
|---|---|---|
| Vendor | Yes | Slack |
| Product | Slack Business+ | |
| Charge date | Yes | 2026-09-03 |
| Amount | Yes | 1250.00 |
| Billing frequency | Monthly | |
| Service period | 2026-09 | |
| Seats / licences | 100 | |
| Active users | 96 | |
| Contract price per seat | 12.50 | |
| Billed price per seat | 12.50 | |
| Tax | 0.00 | |
| Renewal date | 2026-12-15 | |
| Notice days | 30 | |
| Auto-renews | Yes | |
| Cancellation date | 2026-09-15 | |
| Last activity | 2026-06-20 | |
| Owner / department | Engineering | |
| Payment method | Visa 4242 |
What you need
- Software charges from your AP ledger or corporate card feed
- Seat counts and active users from admin consoles (optional)
- Contract prices, renewal dates and notice periods (optional)
- Cancellation confirmations (optional)
Questions
- Which deadlines matter?
- Renewal notice periods. Miss one and the contract renews for another term. ERPSav lists renewals with their notice dates, nearest first.
- Is this money back or money saved?
- Both, kept apart. Refunds are charges already paid that were not owed. Savings are spend you avoid from the next term, which needs you to cancel or downsize.
- Do we need SSO or an integration?
- No. It works from an AP or card export. Seat data from admin consoles makes the unused-seat check exact.
- What does it cost?
- Self-serve plans start at $299 a month and you keep 100%. The Recovery plan is $99 a month for this module plus 12% of refunds and first-year savings. Managed is 25% of first-year savings.
- Is our data safe?
- Your files go into your own workspace, and every row is scoped to it, so no other customer can see them. Imports, letters and status changes are written to an audit trail with who did what and when. ERPSav runs on its own servers in the EU behind Cloudflare, and most modules work from a CSV export, so nothing is installed.
ERPSav shows what to cancel or dispute and drafts the request; you decide and send it, and no software vendor pays ERPSav.