WaffleInvoice Blog
Practical invoicing tips for freelancers and service businesses.
Blog Post
How to Write a Freelance Contract: 8 Essential Clauses Every Freelancer Needs
Learn how to write a freelance contract that protects your work, guarantees payment, and prevents scope creep.
How to Write a Freelance Contract: 8 Essential Clauses Every Freelancer Needs
A freelance contract is the single most important document in your business. It defines what you will deliver, when you will get paid, and what happens when things go wrong. Without one, every project is a handshake deal - and handshake deals fall apart the moment expectations diverge.
Yet many freelancers skip contracts entirely, especially early in their careers. The project seems small. The client seems nice. Writing a contract feels like overkill. Then the client requests a fifth round of revisions, delays payment by six weeks, or ghosts after receiving the final deliverable. Suddenly that missing contract is the most expensive mistake you have ever made.
This guide walks through the eight clauses every freelance contract needs, explains what each one protects you from, and covers the most common mistakes freelancers make when drafting agreements.
Why Every Freelancer Needs a Contract
Contracts are not about distrust. They are about clarity. A good contract forces both you and your client to agree on expectations before work begins - not after a disagreement surfaces.
Here is what a contract does for you as a freelancer:
It guarantees payment terms. Without a written agreement, you have no legal basis to enforce payment. A contract specifying net-30 payment terms, a deposit requirement, and late fees gives you real leverage if a client delays or refuses to pay.
It prevents scope creep. When the deliverables are written down, you have a reference point for every "can you also..." request. Anything outside the documented scope is a change order - with its own timeline and price.
It protects your intellectual property. By default, freelancers in many jurisdictions retain copyright over their work. A contract spells out exactly when and how IP transfers to the client - usually upon final payment.
It gives you a professional exit. Projects go sideways. Clients become unresponsive. Budgets get cut. A termination clause lets either party walk away without burning the relationship or losing money already earned.
The 8 Essential Clauses
Every freelance contract should cover these eight areas. Missing any single one creates a gap that becomes a dispute when expectations stop matching reality.
1. Scope of Work
The scope clause is the foundation of your entire contract. It defines exactly what you are delivering, in what format, and to what standard.
A weak scope clause says: "Design a website for the client." A strong scope clause says: "Design a five-page marketing website (Home, About, Services, Portfolio, Contact) using Figma. Deliverables include two initial design concepts, one round of revisions per page, and final export of production-ready assets. Content population and development are not included."
The more specific your scope, the easier it is to identify when a client request falls outside it. Specificity is not rigidity - it is protection. You can always agree to add work via a change order. But you cannot subtract work that was never clearly defined in the first place.
Tip: If you use estimates before starting projects, your estimate can serve as the basis for the scope clause. Many freelancers attach their accepted estimate as an appendix to the contract.
2. Payment Terms
Payment terms answer four questions: how much, when, how, and what happens if the client does not pay on time.
How much: State the total project fee or your hourly rate. If the project is milestone-based, list each milestone with its corresponding payment amount.
When: Specify payment timing. Common structures include 50% deposit before work begins with the balance due upon delivery, milestone payments tied to deliverables, or net-15 or net-30 terms from invoice date.
How: List accepted payment methods. Bank transfer, credit card, PayPal - whatever you accept, put it in writing. This prevents the "I will mail you a check" delay tactic.
Late fees: Include a late payment penalty. A standard clause is 1.5% per month on overdue balances. Even if you never enforce it, the existence of a late fee clause motivates on-time payment. Learn more about structuring late fees.
Deposits: Always require a deposit before starting work. The industry standard ranges from 25% to 50% of the total project value. A deposit confirms the client's commitment and ensures you are not working for free if the project is canceled early.
3. Timeline and Milestones
A timeline clause sets the project start date, key milestones, and the expected completion date. It should also address what happens when timelines slip - and whose responsibility the delay is.
Include a clause stating that the timeline assumes timely feedback from the client. If the client takes two weeks to review a deliverable that was supposed to take three days, the completion date shifts accordingly. Without this language, you absorb every delay the client causes.
For milestone-based projects, tie each milestone to both a deliverable and a payment. This creates natural checkpoints where both parties confirm the project is on track before moving forward.
4. Revision Policy
Unlimited revisions is a promise no freelancer should make. Without a revision cap, projects expand indefinitely - and your effective hourly rate drops with every additional round.
A clear revision clause specifies how many rounds of revisions are included in the project fee (two rounds is standard for most creative work), what constitutes a "round" (one consolidated set of feedback, not a continuous stream of small changes), and how additional revisions beyond the included rounds are billed.
Frame additional revisions as a positive: "Additional revision rounds are available at $X per round." This is not a penalty - it is a service offering. Most clients will consolidate their feedback when they know extra rounds cost money.
5. Intellectual Property
The IP clause defines who owns the work product and when ownership transfers. This is one of the most misunderstood areas of freelance law.
In many jurisdictions, freelancers retain copyright over their work by default - even after the client has paid for it. A "work for hire" clause or an IP assignment clause is required to transfer ownership to the client.
The most freelancer-friendly structure is: "All intellectual property rights in the deliverables transfer to the client upon receipt of final payment in full." This means if the client has not paid, they do not own the work. It is your most powerful leverage for collecting final payment.
You may also want to retain the right to display the work in your portfolio. Add a clause like: "The freelancer retains the right to display the deliverables in their professional portfolio and marketing materials."
6. Confidentiality
A confidentiality clause (also called an NDA clause) commits both parties to keeping sensitive project information private. This protects the client's business information and your proprietary processes.
Keep confidentiality clauses reasonable in scope and duration. A clause that prevents you from ever discussing any aspect of the project with anyone is too broad. A clause that protects the client's trade secrets, financial data, and unreleased product information for two years after project completion is standard and fair.
Avoid signing standalone NDAs before a project contract is in place. If a potential client wants you to sign an NDA before even discussing the project scope, that is a yellow flag. Discuss scope and fit first, then formalize confidentiality as part of the project contract.
7. Termination
Every project needs an exit ramp. A termination clause defines how either party can end the engagement and what financial obligations survive the termination.
A balanced termination clause includes notice period (14 to 30 days is standard), payment for all work completed up to the termination date, the status of any deposit already paid (typically non-refundable if the freelancer has begun work), and what happens to work-in-progress deliverables.
One-sided termination clauses that let the client cancel without paying for completed work are unacceptable. If the contract allows the client to walk away after you have completed 80% of the project with no obligation to pay, you are absorbing all the risk. Insist on a kill fee or payment-for-work-completed clause.
8. Dispute Resolution
Disputes happen. A dispute resolution clause determines how they get resolved - and prevents either party from immediately jumping to litigation.
A standard escalation path is: first, the parties attempt to resolve the issue through direct negotiation within 14 days. If that fails, they engage a neutral mediator. If mediation fails, the dispute goes to binding arbitration or court in a specified jurisdiction.
Specify the governing law and jurisdiction. If you are based in Texas and your client is in New York, the contract should state which state's laws apply and where any legal proceedings would take place. Without this, you could end up litigating in the client's jurisdiction, which is expensive and inconvenient.
Common Contract Mistakes Freelancers Make
Using a generic template without customizing it. Templates are a starting point, not a finished product. Every client and project is different. A contract you found online may not cover the specific risks of your industry, your pricing model, or your local laws. Read every clause and adjust it to fit your situation.
Not including a scope change process. Your contract defines the original scope - but what happens when the client wants to add features, pages, or deliverables mid-project? Without a change order process, every addition becomes a negotiation. Include a clause stating that scope changes require a written change order with an updated timeline and fee before work begins.
Agreeing to non-compete clauses. Non-compete clauses restrict your ability to work with other clients in the same industry. For freelancers, this is almost always unreasonable. If you are a web designer who specializes in restaurant websites, a non-compete that prevents you from working with other restaurants would destroy your business. Push back on non-competes or negotiate them down to a narrow, time-limited non-solicitation clause instead.
Skipping contracts for small projects. A $500 project without a contract is just as risky as a $50,000 project without one. The contract protects your time and professionalism regardless of the dollar amount. Use a simplified version for smaller projects, but never skip it entirely.
Not addressing what "done" means. Your contract should define acceptance criteria - the specific conditions under which the project is considered complete. Without this, the client can perpetually claim the work is not finished and withhold payment. Tie acceptance to objective criteria: delivery of specified files, client sign-off within a defined review period, or passage of a set number of days after final delivery.
How Your Contract Connects to Your Invoicing
A well-written contract makes invoicing straightforward. Your payment terms clause dictates when invoices go out. Your milestone structure determines invoice amounts. Your late fee clause gives your follow-up emails teeth.
The most efficient workflow is: contract signed, deposit invoice sent immediately, milestone invoices sent as deliverables are completed, final invoice sent upon project completion with IP transfer contingent on payment.
WaffleInvoice fits directly into this workflow. Create estimates that become the basis for your scope clause. Convert accepted estimates into invoices with one click. Set up automatic payment reminders that reference your contract terms. Track every invoice from sent to paid in one dashboard.
The free plan covers unlimited invoices and clients - everything you need to start invoicing professionally. The Pro plan adds recurring invoices for retainer contracts, a client portal, and automated follow-ups that chase late payments so you do not have to. See pricing details.
The Bottom Line
A freelance contract is not a formality. It is the document that separates professional freelancers from people who do side work and hope for the best. Every clause exists to solve a specific problem that thousands of freelancers have encountered before you.
Write your contract once, customize it for each project, and never start work without one. Your future self - the one who gets paid on time, avoids scope creep, and has a clear exit from bad projects - will thank you.
Related reads: How to Write a Freelance Proposal · Payment Terms for Freelancers · How to Charge Late Fees · Invoice vs. Estimate · How to Invoice Freelance Clients
Ready to improve your invoicing?
WaffleInvoice makes it easy to invoice faster, get paid on time, and manage your cash flow. Start free today.
Sign Up FreeMore from the blog
How to Write a Freelance Proposal That Wins Clients (With Examples)
Most freelance proposals lose because they talk about the freelancer instead of the client. Here is the exact structure that wins projects - with examples you can steal.
Freelance Invoice Template Guide: What You Need (By Profession)
Professional freelance invoice templates for designers, writers, developers, and more. What to include and when to upgrade to software.
How to Write an Invoice (Step by Step, With Examples)
Learn how to write an invoice that gets paid: required parts, a worked example, clear payment terms, and a tip to get paid faster.
Compare WaffleInvoice head-to-head
Honest side-by-side comparisons against the tools most often mentioned alongside WaffleInvoice.
Comparison
WaffleInvoice vs PayPal Invoicing
Side-by-side feature breakdown, pricing, and honest pros and cons.
Comparison
WaffleInvoice vs FreshBooks
Side-by-side feature breakdown, pricing, and honest pros and cons.
Comparison
WaffleInvoice vs QuickBooks
Side-by-side feature breakdown, pricing, and honest pros and cons.
