When a Client Cancels a Claude Code Project Mid-Build (Get Paid, Hand Over, Stay Friends)
- Clients cancel builds for reasons that usually have nothing to do with you: the budget moved, the person who hired you left, or the priority changed. Treat a cancel as a business event, not a verdict on your work, and handle it with a process instead of a reaction.
- Use the Profit Room's Paid-to-Date Rule: every cancellation ends with you paid for the work completed and the client owning exactly what they paid for. Write it into the agreement before the build starts: written notice, a non-refundable deposit that reserved your calendar, payment for work done to date, and handover of paid-for work once the final invoice clears.
- On the day it happens, do not argue and do not go silent. Confirm in writing, send a plain summary of what was built, invoice the work to date, and offer a pause as an alternative to a full stop. If you never wrote a clause, the same summary is still your best tool, and the relationship is worth more than the last invoice.
The Short Answer
When a client cancels a Claude Code project mid-build, the goal is a clean ending: you are paid for the work you completed, the client receives exactly what they paid for, and nobody burns the relationship on the way out. The way to get there is to decide what cancellation means before the build starts, in the same agreement where you set scope and payment. When the cancel email lands, you are not negotiating. You are following the clause both of you already signed.
That is the Paid-to-Date Rule: paid for work done, owning what was paid for, nothing more and nothing less. It protects you from the client who wants everything built so far for free, and it protects the client from a builder who holds their project hostage. It also keeps the door open, which matters more than most builders think, because a client who cancels cleanly is a client who can come back.
Why Clients Cancel AI Builds
Most cancellations are not about the quality of the work. They come from the client's side of the table, and knowing the usual causes helps you stay calm when it happens and spot it earlier next time.
- The budget moved. A slow quarter, a surprise expense, or a new finance lead who is reviewing every line item.
- The champion left. The person who hired you changed roles or left the company, and nobody else feels ownership of the project.
- The priority changed. Something more urgent landed, and your build slid from 'this quarter' to 'someday'.
- The demo made it look easy. The client saw early progress and decided they could finish it themselves or with a cheaper tool. This one is worth hearing out, because sometimes they can, and the best move is to hand over cleanly and stay the person they call when it gets hard.
- Trust broke. Missed updates, scope drift, or a surprise invoice. This is the one cause that is on you, and the fix is upstream: [set expectations before the build](/blog/set-client-expectations-before-a-claude-code-build) and send a [weekly client update](/blog/weekly-client-update-prevents-fires).
Early warning signs are usually quiet: slower replies, a new person cc'd on emails, questions about what has been spent so far. If you see them, raise it directly before the cancel email arrives. 'It feels like priorities may have shifted on your side. Do you want to talk about a smaller scope or a pause?' That one question saves more projects than any clause. [What to do when a client goes silent](/blog/what-to-do-when-a-client-goes-silent) covers the silent version of this.
The Cancellation Clause to Write Before You Build
Put a short cancellation section in every agreement, including the [one-page agreement](/blog/one-page-agreement-before-you-build) you use for small builds. It does not need legal language to be clear. It needs to answer five questions in plain words.
| Question | What the clause says | Why it matters |
|---|---|---|
| How does either side cancel? | Either side can end the project with written notice by email. | No arguments about whether a phone call counted. |
| What happens to the deposit? | The deposit reserved your calendar and is non-refundable once work has started. | You turned down other work to hold those weeks. |
| What is owed for work done? | Completed milestones are paid in full; the milestone in progress is paid in proportion to the work done. | You are paid for real work, not for the whole project. |
| What does the client receive? | On payment of the final invoice, the client receives the code, files, and documentation for the work they paid for. | Ownership follows payment, which is fair to both sides. |
| What happens to accounts and keys? | Anything in the client's name stays with them; anything in yours is transferred or shut down, and API usage stops on the cancel date. | No orphaned hosting bills or live keys after you leave. |
What a cancellation clause should settle before the build starts
The milestone structure does most of the work here. If you already [structure client payments in milestones](/blog/structure-client-payments-milestones) and [collect a deposit upfront](/blog/the-deposit-conversation-get-paid-upfront), a cancellation is just an early final invoice. Some builders add a kill fee on top, a fixed amount owed if the client cancels, to cover the calendar they reserved. That is reasonable for long builds where you are turning down other work. For short builds, a non-refundable deposit usually does the same job with less friction.
What to Do the Day the Cancel Email Arrives
Reply the same day, and keep it short and calm. Do not argue the decision, do not guilt them, and do not disappear while you think about it. Then work through the steps in order.
- Confirm in writing. Thank them for telling you, confirm the cancellation date, and say you will send a summary and final invoice.
- Stop the work and the spend. Pause any running jobs, scheduled tasks, or API usage tied to the project so nothing keeps billing after the cancel date. [Billing clients for AI API costs](/blog/bill-clients-for-ai-api-costs) covers how to keep usage separate so this is easy.
- Write the summary. A plain list of what was finished, what was in progress and how far along, and what was not started. Link to the commits or a short screen recording of the current state. This is your proof of work, and it does more to get you paid than any argument.
- Send the final invoice. Paid-to-date only: completed milestones, the proportion of the current one, and anything the clause says. No padding.
- Hand over on payment. Package the code, a short README on how to run it, and any notes on what is unfinished. Transfer or shut down accounts in your name, and revoke your own access to theirs.
Close with one line that keeps the door open. 'If priorities change back, I would be glad to pick this up where we left off.' Then put a reminder in your calendar to check in after a few months. A client who cancelled cleanly is one of the easiest [reactivation emails](/blog/reactivation-email-win-back-past-clients) you will ever send.
If You Never Wrote a Cancellation Clause
Then you negotiate, and your summary is your leverage. Send the same written summary of what was built, propose a fair paid-to-date invoice based on the work completed, and offer the handover on payment. Most reasonable clients pay for work they can see. Keep the tone factual, not defensive, and do not inflate the number to make up for the lost project.
If they push back, decide what the relationship is worth against the invoice. Sometimes the right move is to settle for less, hand over cleanly, and keep a client who will refer you or come back. Sometimes it is to hold the line politely. Either way, learn the lesson once: add the clause to your template today, the same way you would add a [change order process](/blog/change-order-template-for-a-claude-code-project) after the first scope fight.
If a client asks for money back on work already delivered rather than cancelling future work, that is a different conversation. [When a client asks for a refund](/blog/when-a-client-asks-for-a-refund) covers that one.
Turn a Cancel Into a Pause
Before you accept a full stop, offer a pause. Many cancellations are really 'not now', especially when the cause is budget or a shifted priority. A pause option gives the client a way to stop spending without throwing away what is built.
Keep it simple: the client pays for work done to date, you hand over the current state, and the project can restart within an agreed window at the same rate, with a fresh deposit to get back on your calendar. Some clients will prefer a smaller scope instead, finishing just the most valuable piece. Both options keep money and goodwill on the table, and both are easier to offer when you ask early, before the decision is final.
Short, practical drops on offers, outreach, pricing, and closing clients with Claude Code. No spam, unsubscribe anytime.
Frequently asked
What should I do when a client cancels a project mid-build?
Reply the same day to confirm in writing, stop the work and any running API usage, send a plain summary of what was finished and what was in progress, invoice the work completed to date, and hand over the paid-for code and notes once the invoice is paid. Close by leaving the door open to restart later.
Should I charge a kill fee if a client cancels?
It can be reasonable on longer builds where you reserved weeks of your calendar and turned down other work. For shorter builds, a non-refundable deposit plus payment for work done to date usually covers it with less friction. Either way, it has to be in the agreement before the build starts, not introduced after the cancel.
Who owns the code if a client cancels a Claude Code project?
A fair default is that ownership follows payment: once the final invoice is paid, the client receives the code, files, and documentation for the work they paid for. Write this into the agreement. Never withhold the client's own data, logins, or accounts over a payment dispute. Contract rules vary by place, so have a lawyer review your template.
What if my agreement does not say anything about cancellation?
Send a factual summary of the work completed, propose a fair invoice for work done to date, and offer the handover on payment. Most reasonable clients pay for work they can see. Decide how much the relationship is worth against the invoice, then add a cancellation clause to your template so it does not happen again.
Can I stop a cancellation from happening?
Sometimes. Watch for early signs like slower replies, new people on emails, or questions about spend, and raise them directly. Offering a smaller scope or a pause, where the client pays for work to date and can restart later at the same rate, turns many 'cancel' conversations into 'not now' ones.
Last reviewed October 7, 2026.

Co-founder of the Claude Code Profit Room. Built and sold AI services to real clients; writes about offers, pricing, outreach, and closing with receipts.
More from Duncan Rogoff →