What to Do When a Client Disputes Your Freelance Work

6 min read 2 views

A client says you didn't deliver. Or that the quality was wrong. Or that the project wasn't finished. You know you did the work. But knowing isn't proof.

This happens constantly in freelancing. A 2023 survey by Freelancers Union found that 71% of freelancers had trouble getting paid at least once. Disputes are not rare events. They're a predictable hazard of working without the protections that full-time employees take for granted.

Here's how to handle it when it happens, and what you can do right now so you're ready next time.

What a Dispute Actually Looks Like

Most freelance disputes don't start with a formal complaint. They start with silence. The client stops responding. Then, when you follow up about payment, you get a message like:

  • "We weren't happy with the quality."
  • "This wasn't what we agreed on."
  • "We need to revisit the scope."
  • "We're not sure you delivered what you promised."

Sometimes the client is genuinely confused. Sometimes they're buying time. Either way, you're now in a situation where your word is against theirs, and invoices don't prove anything on their own.

An invoice is a claim. What you need is evidence.

What Evidence Actually Holds Up

When a client disputes your work, there are things that help and things that don't.

Things that don't help much:

  • Email threads saying "sounds good" with no specifics
  • Slack messages that only you can screenshot
  • Your own notes about what you delivered
  • General project files without timestamps

Things that actually help:

  • Timestamped records of each deliverable, created as you worked
  • Client messages that reference specific deliverables you sent
  • File uploads with metadata showing creation dates
  • A signed scope document or contract with clear acceptance criteria
  • Delivery confirmations where the client acknowledged receiving specific work

The difference is this: you need a record that a third party would find credible, not just screenshots you assembled after the fact. That's why emails don't work as well as you'd think. They're easy to misread, easy to take out of context, and easy for a client to claim they never received.

How to Respond Right Now

If you're in a dispute today, here's what to do.

Don't get defensive in writing. Every message you send can be used as evidence. Keep your tone factual. "I delivered X on [date] as agreed" is better than a paragraph explaining your process.

Gather everything. Pull together your delivery emails, file uploads, git commits, Figma versions, anything that has a date attached. Make a list of each deliverable with the date it was sent or completed.

Re-read the original agreement. What exactly did you agree to deliver? Compare it to what you actually delivered. If you overdelivered, note that. If something was out of scope that they're now claiming, note that too.

Send a summary, not a defense. Write a short message that lists what was delivered, when, and how. Don't argue. Just present the record.

Example:

"I want to make sure we're on the same page. Here's what was delivered and when: [list]. Please let me know which specific item you're unhappy with and I'll address it directly."

This puts the burden back on them to be specific. Vague complaints are harder to act on than specific ones.

What to Do Before the Dispute Starts

The best dispute resolution is the one that never happens. Here's what changes the dynamic.

Log deliveries as you go. Not in a private document on your computer. In something your client can see. Every time you complete a milestone or send a deliverable, add it to a shared record with a timestamp. When the invoice arrives, your client has already seen the work. There's nothing to dispute.

This is the single most effective change most freelancers can make. It shifts the dynamic from "client gets a bill and then decides if they're happy" to "client watches the work happen and has already accepted it."

Get written scope approval before starting. A sentence in an email saying "I'll start Monday" is not scope approval. You want something like: "Agreed: I'll deliver [specific list] by [date] for [amount]. You'll provide [specific inputs] by [date]." Both parties reply yes.

Define what "done" means in the contract. "Website redesign" is not a deliverable. "5-page responsive website matching approved mockups, with CMS integrated, delivered as a staging link" is a deliverable. The more specific you are, the less room there is for post-delivery disagreement.

Use a tool that creates timestamped proof of delivery. Tools like Workory let you log deliverables with timestamps and share a link your client can see in real time. When you send the invoice, you attach the proof link. The client can see every delivery. Disputes stop before they start.

When the Client Just Won't Pay

Sometimes there's no real dispute. The client knows you delivered. They're just avoiding payment.

In this case, your first move is a formal demand letter. Not an email. A written document, sent in a way that can be confirmed (certified mail or email with read receipt), stating the amount owed, the services rendered, and a deadline for payment before legal action.

A lot of clients pay after the demand letter. The formality signals that you're serious.

If they still don't pay:

  • Small claims court: for amounts under $10,000 (varies by jurisdiction), this is fast, cheap, and you don't need a lawyer. Your timestamped proof of delivery is exactly what a judge asks for.
  • A collections agency: they take a cut but do the work for you.
  • A public review: some freelancers post about non-paying clients on LinkedIn or in freelance communities. This carries risks but can be effective for smaller amounts where legal action isn't worth it.

None of these feel good. But if you have solid documentation, you have options. If you don't, you have a much harder road.

The Real Lesson

Every freelancer who's been through a dispute says the same thing: I wish I'd kept better records.

The work you do is real. The problem is that it's invisible to clients unless you show it to them. An invoice is a claim. A timestamped record of deliveries is proof. Get in the habit of creating that record as you work, not after the client complains.

It takes a few minutes per project. It's the best insurance you can buy.

Written by

W

Workory Team

Workory helps freelancers structure projects and keep proof of work (links, screenshots, approvals) to reduce friction and build trust.

Last updated: March 04, 2026

Related Articles