TREADSTONE LAW · ONTARIO · DIGITAL LEGAL SERVICES · EST. MMXXI ·TSL
Home/Case Studies/Litigation
№ 74 Case Study — Litigation

Chasing $410,000 in Unpaid Software Invoices in Newmarket

A Newmarket software consultant delivered a year of custom development work and watched the invoices go unpaid one by one. Getting paid meant proving the work was done — and living with a negotiated compromise.

Litigation6 min readNewmarket, OntarioBreach of contract
All Litigation case studies
ClientMeron, a software consultant running a small development firm in Newmarket
The issueA client stopped paying invoices partway through a custom software build
ServiceBreach of contract litigation and judgment collection
ResolutionNegotiated settlement for about 65% of the amount owed, avoiding a trial

The situation

Meron ran a small software development firm out of Newmarket, building custom platforms for businesses that needed something off-the-shelf tools couldn't handle. His spouse Oksana, a pharmacist, had no role in the business day to day but had co-signed a line of credit the company used to cover payroll during slow stretches — a detail that would matter later.

In late 2024, Meron signed a contract with Vikram, who ran a mid-sized logistics company, to design and build a custom dispatch and inventory management platform. The agreed scope was roughly $620,000, billed in monthly milestones over an expected ten-month build. For the first six months, invoices went out and got paid, mostly on time. Meron's team delivered working modules, Vikram's staff tested them, and the relationship looked healthy.

Then, around month seven, payments started slowing. Vikram's company had cash flow problems of its own — a large customer had delayed payment to him, and he was juggling several vendors at once. Meron kept working, assuming the relationship and the eventual completed product would smooth things over, and reluctant to walk away from ten months of work with the finish line in sight. By the time the platform was substantially finished, roughly $410,000 across five invoices sat unpaid, and Vikram had stopped responding to calls. Meron had two junior developers on contract whose pay depended on the business's cash flow, and the unpaid invoices were now large enough that covering their next few pay cycles out of his own savings was starting to look like the only option.

The problem

Meron came to Treadstone Law with a stack of invoices, email threads, and a signed contract, wanting to know how to get paid. The case looked straightforward on its face — services rendered, invoices issued, no payment — but a few complications shaped the strategy from the start.

Breach of contract claims turn on two separate questions: was there a valid, enforceable agreement, and did one side fail to do what it promised under it. Here the existence of the contract wasn't in doubt — both sides had signed it and performed under it for six months without dispute. The real fight, once it came, would be about performance: had Meron delivered what the agreement required, in a form that entitled him to be paid for the invoices already issued.

First, the contract itself was thin. It set out the overall scope and price but described milestones loosely, with no clear sign-off process for when a module was considered 'complete' and payment was due. Vikram's likely defence, once he engaged a lawyer, would be that some of the delivered work was incomplete or didn't meet the agreed specifications — turning a simple unpaid-invoice claim into a dispute about the quality and completeness of software that only a technical person could really evaluate.

Second, timing mattered. Under Ontario's Limitations Act, 2002, a claim for unpaid amounts generally has to be started within two years of when the debt became due, or of when the problem was reasonably discoverable. Meron had waited nearly four months after the last unanswered invoice before seeking legal advice, which wasn't a limitations problem yet, but it underscored that further delay was not free.

Third, even a strong judgment is only worth what can actually be collected. Before investing heavily in litigation, the team needed a realistic read on whether Vikram's company had assets or ongoing revenue to satisfy a judgment, because a win on paper that can't be enforced is an expensive lesson, not a resolution.

What we did

  1. Built the paper record before filing anything. We assembled every invoice, delivery email, meeting note, and instance of Vikram's team using or approving the delivered modules, organizing them by milestone so it was clear exactly what had been delivered and when each payment fell due under the contract. Continued use of software a client claims is defective is powerful evidence that it substantially worked, since a business does not keep running dispatch orders through a system it believes is broken — it undercuts a later argument that nothing of value was received.
  2. Sent a formal demand letter. Before commencing a lawsuit, we set out the amount owed, the contractual basis for it, and a short deadline to respond, giving Vikram a clear final opportunity to resolve the matter without the cost and delay of a court filing. Demand letters occasionally resolve disputes on their own, and even when they don't, as happened here, they show a court that the claimant tried to resolve things reasonably before litigating rather than rushing straight to a lawsuit.
  3. Filed a claim in the Superior Court. Given the amount in dispute, the claim was well above the Small Claims Court limit, so it proceeded in the Superior Court, where the process is more formal, the pre-trial steps more extensive, and the timelines longer than the simplified track available for smaller claims. We claimed the full $410,000 outstanding, plus interest, and pleaded the contract's payment terms in detail to anchor the amount owed against a documented schedule rather than a round number.
  4. Anticipated the quality defence early. Rather than waiting for Vikram to raise deficiencies as a surprise partway through the case, we had an independent technical consultant review the delivered code against the original scope documents, producing a report that identified which modules were functionally complete and which had minor outstanding items. This let us concede small, genuine gaps upfront rather than have them used later to attack the credibility of the much larger claim around them.
  5. Pursued examinations for discovery. This is a formal, out-of-court process where each side questions the other under oath about the facts of the dispute, with a transcript kept for use later in the case. Vikram's evidence under questioning was inconsistent about which specific deficiencies he was relying on and when he had first noticed them, which weakened his position heading toward any trial and gave us a concrete basis for pressing a resolution.
  6. Moved to mediation once the record was strong. With the technical report, the discovery transcripts, and a clear paper trail in hand, we proposed mediation rather than pushing straight to trial. Trials in the Superior Court over a dispute this size can take a year or more to reach, cost substantially more in legal fees on both sides, and carry real uncertainty in front of a judge who has never built or bought software.

The outcome

Mediation produced a settlement, not a clean win. Vikram agreed to pay roughly $265,000 — about 65% of the $410,000 originally claimed — in exchange for a full release of any further claims, including his threatened counterclaim over the modules with outstanding items. Payment was structured over four months rather than all at once, reflecting Vikram's genuine, verified cash flow constraints rather than reluctance to pay.

Meron was disappointed at first. He had done the work and believed, reasonably, that he was owed the full amount. But the settlement reflected a realistic assessment of risk on both sides: the quality dispute over a handful of modules was real, even if overstated, and a trial carried a meaningful chance of a judge splitting the difference in a similar range anyway — after another year of legal costs eating into whatever was ultimately recovered.

The compromise also solved the collection problem before it started. A negotiated payment plan that Vikram had agreed to and could actually meet was worth more in practice than a full judgment against a company that might not have been able to pay it. Ontario courts don't collect judgments for you — a plaintiff who wins in court but can't enforce the result is often no better off than one who settled for less but got paid.

Oksana's co-signed line of credit never became an issue in the dispute itself, but it was a reminder Meron took seriously afterward: personal and business finances had been blended in ways that could have exposed household assets if the business itself had been the one facing a judgment, rather than bringing one.

What you can learn from this

  • Get payment milestones and acceptance criteria in writing before work begins. A contract that says work is due 'on completion of the dispatch module' invites disputes about what completion means — define it with specific, checkable criteria instead.
  • Keep a running record of deliveries, approvals, and client sign-off as you go. Emails where a client uses or praises delivered work are some of the strongest evidence against a later claim that the work was deficient.
  • A judgment is only as good as your ability to collect it. Before litigating hard, get a realistic picture of the other side's ability to pay — it should shape whether you push for a full judgment or a workable settlement.
  • Address quality complaints early and honestly. Conceding small genuine gaps in a technical report can protect the credibility of the much larger claim around it.
  • Mediation is often the more rational outcome in a contract dispute with real arguments on both sides — a negotiated compromise you can enforce beats a larger judgment you might spend years trying to collect.
This case study is entirely fictional. It does not describe any real client, file, or matter handled by Treadstone Law, and it is not a real file with details changed. All names, people, properties, businesses, dollar amounts, dates, and events are invented, and any resemblance to a real person, business, or situation is coincidental. Fictional scenarios like this one illustrate the kinds of legal issues people in Ontario commonly face and how a lawyer can help. They are general information, not legal advice — no two matters unfold the same way, and nothing here predicts the outcome of any real case. Reading a case study does not create a lawyer-client relationship. If you are facing something similar, speak with a lawyer about your specific circumstances.

This is a litigation problem we handle

Start a file online — flat, published fees, reviewed by a licensed lawyer before a dollar is owed.

ContactStart a File →