Freelance Contract Payment Terms: 9 Clauses for Devs
By Mark Fulton · 2026-08-25 · 11 min read

A freelance developer contract needs nine payment clauses: deposit, payment schedule, late fee, work stop, IP transfer on final payment, cancellation fee, pass-through expenses, rate review, and dispute window. Each one is two or three sentences. The part most guides skip is that a clause only does something if your invoice repeats it. A late-fee clause with no due date printed on the invoice, or an IP clause your delivery email quietly contradicts, is decoration. Below is paste-ready text for all nine, the developer-specific failure each one exists to stop, and the invoice field that turns it into leverage.
This is general information, not legal advice. Contract law varies by state and country, and a lawyer who knows your jurisdiction is worth an hour of your money on anything large.
Which payment clauses does a dev contract actually need?
Start with what one legislature decided the minimum was. New York's Freelance Isn't Free Act, added to the General Business Law as Article 44-A, requires a written contract once a hiring party engages a solo contractor for $800 or more, counting all contracts between the same two parties over the preceding 120 days. The statute then lists what that writing has to contain: the names and mailing addresses of both parties, an itemization of the services, the value of those services, the rate and method of compensation, the date the hiring party must pay or the mechanism for determining that date, and the date by which you have to submit your list of services rendered.
That last item is the one developers miss. The law contemplates that you owe the client a document before the client owes you money, and that document is the invoice. The contract and the invoice are two halves of one instrument.
New York also fills the gap when a contract stays silent. If your agreement does not say when payment is due, compensation is due no later than thirty days after you complete the services, and once you have started work the client cannot make timely payment conditional on you accepting less than the agreed amount. The federal government holds itself to a similar default: under the Prompt Payment Act rules, agencies pay on the thirtieth day after a proper invoice is received or the work is accepted, whichever is later, and interest accrues automatically without you asking for it.
Those rules bind specific parties in specific places. Treat them instead as a well-reviewed default. If a state legislature and the federal acquisition regulations both landed on thirty days and both insist the payment date be written down, that is a reasonable floor for your own paperwork regardless of where you sit.
Here is the full set, with what each clause is for and where it shows up on the invoice.
| # | Clause | The developer failure it stops | Invoice field that enforces it |
|---|---|---|---|
| 1 | Deposit | Three weeks of work before you learn the client cannot pay | A deposit invoice dated before the kickoff |
| 2 | Payment schedule | "We pay on our normal cycle," discovered in month two | Issue date, due date, and terms label |
| 3 | Late fee | An overdue balance that costs the client nothing | A separate interest line on the follow-up invoice |
| 4 | Work stop | Continuing to build while unpaid | A note on the overdue invoice naming the stop date |
| 5 | IP transfer on payment | Client ships your code, then disputes the last invoice | A transfer line stating rights pass on payment in full |
| 6 | Cancellation fee | Project killed mid-sprint, nothing owed for the sprint | A cancellation line referencing the clause |
| 7 | Pass-through expenses | You personally funding their hosting and API bills | A separate expenses section at cost |
| 8 | Rate review | Year three at year one's rate | The rate printed on every line item |
| 9 | Dispute window | An objection to invoice 3 raised during invoice 9 | The issue date, which starts the clock |
What does a good deposit clause say?
A deposit converts a question about whether the client can pay into evidence, before you have sunk weeks into the work. The clause needs to do three things: state the amount, state that work is scheduled rather than started until it clears, and say what happens to it at the end.
1. Deposit. Client shall pay a deposit of $[X], representing [40]% of the total project fee, before Developer commences work. Scheduling of the engagement is confirmed on receipt of the deposit, not on execution of this agreement. The deposit is applied against the final invoice and is non-refundable once Developer has commenced work.
"Applied against the final invoice" prevents the argument that the deposit was a separate fee. "Non-refundable once work has commenced" is what makes it a commitment rather than a loan. For how to pick the percentage by client history and project size, see how much deposit to charge for freelance dev work.
Then the schedule clause, which is where the statutory language earns its place:
2. Payment schedule. Invoices are due within [30] days of the invoice date. Where this agreement does not specify a payment date for a given amount, that amount is due no later than thirty days after completion of the services to which it relates. Client shall not condition timely payment on Developer accepting less than the amount stated in this agreement.
That third sentence is lifted almost directly from the New York statute, and it is worth including even outside New York. It closes the "we can pay you Friday if you knock off fifteen percent" conversation before it starts.
How do you write late fees and work-stop rights?
A late fee you invented is still a contract term, and it is fine. What matters is that it is stated, that it compounds visibly, and that you actually put it on the follow-up invoice rather than mentioning it in an email.
3. Late fee. Overdue balances accrue interest at [1.5]% per month, or the maximum rate permitted by applicable law if lower, calculated from the due date until paid in full. Interest is invoiced separately and is payable on the same terms.
The rate itself is covered in more depth in the getting paid on time playbook, including when statutory interest gives you a stronger sentence than a number you chose. The clause above is the contract half.
Interest alone is weak leverage on a client who has decided to pay late, because the cost of waiting is small next to the cost of you continuing to deliver for free. The work-stop clause is the real instrument:
4. Work stop. If any undisputed invoice remains unpaid [14] days after its due date, Developer may suspend all work, including deployments, code review, and support, on written notice to Client. Deadlines and delivery dates are extended by the length of any suspension. Developer will resume work on payment of all outstanding amounts.
Three details make this developer-specific. Naming deployments and support stops the argument that only new feature work pauses. Extending deadlines by the suspension length stops the client treating their own late payment as your schedule slip. Requiring written notice keeps you from looking like you went quiet.
The word "undisputed" is doing real work too. Without it, a client can freeze the whole clause by objecting to one line item, which is exactly why clause nine exists.
Why tie IP transfer to final payment?
This is the clause with the most leverage per word, and the one most freelance templates get backwards. If your contract assigns copyright on creation or on delivery, then the moment you push to their repository the client owns the work, and your unpaid invoice is now an ordinary debt with no hostage attached.
5. Intellectual property. All right, title, and interest in the deliverables remains with Developer until Developer has received payment in full for all amounts due under this agreement. On payment in full, Developer assigns to Client all right, title, and interest in the deliverables. Until that time, Client is granted no license to use, deploy, modify, or distribute the deliverables, other than for internal review.
The "internal review" carve-out is what keeps this reasonable. The client can look at the code, run it locally, and evaluate it. What they cannot do is ship it to production and then open a negotiation about the final invoice. Say the same thing in your delivery email, because a contract clause contradicted by "here you go, all yours" in writing is a fight you may not win.
The cancellation clause covers the other ending:
6. Cancellation. Client may terminate this agreement on written notice. On termination, Client shall pay for all work performed through the termination date, plus a cancellation fee of [35]% of the fees remaining unpaid under this agreement. Amounts already invoiced remain payable in full.
Percentages and the reasoning behind them are in the kill fee guide for freelance developers.
Then the clause that quietly costs developers the most real money:
7. Expenses and third-party costs. Client is responsible for all third-party costs required by the project, including hosting, domains, managed services, API usage, and software licenses. Where Developer incurs such costs on Client's behalf, they are invoiced at cost and are due on the same terms as fees. Developer is not obliged to incur any third-party cost before Client has funded it.
Developers routinely put a client's staging environment, image CDN, and model API usage on a personal card and then absorb it because raising it feels petty. Naming the categories in advance turns it into an administrative line rather than an awkward request. Those lines belong in their own invoice section, which is covered in what belongs on a software development invoice.
What belongs in a rate-review clause?
Most freelancers raise rates by nerving themselves up to send an email. A rate-review clause makes it a scheduled event that both parties already agreed to, which removes almost all of the friction.
8. Rate review. Developer's rates are fixed for [12] months from the effective date of this agreement. Thereafter Developer may revise rates on [60] days written notice, no more than once in any twelve-month period. Revised rates apply to work performed after the notice period and do not affect fees for work already scheduled or in progress.
The fixed period is what makes the clause acceptable to a client: it is a guarantee before it is a warning. The "already scheduled or in progress" carve-out stops a rate change from destabilizing a project mid-flight.
Finally, the clause that protects every other clause:
9. Dispute window. Client shall notify Developer in writing of any dispute regarding an invoice within [10] days of the invoice date, specifying the disputed line items and the reason. Undisputed portions of the invoice remain due on the original terms. Invoices not disputed within the notice period are deemed accepted.
Without this, an invoice from March is still arguable in September, and every unpaid balance can be reopened. With it, an objection has a deadline and a required format, and the phrase "undisputed portions remain due" stops one contested line item from freezing an entire invoice.
For changes to scope during a project, which is a different problem from disputing an invoice after one, see scope creep and change orders.
Making the clauses real
A contract sets the terms. The invoice is what enforces them, and the two have to say the same thing. If your contract says net 30 and your invoice says "payment appreciated," the clause is not operative in any practical sense. Every clause above has a counterpart on the document: a due date, a terms label, an interest line, a transfer statement, an expenses section, a rate on every line, and an issue date that starts the dispute clock.
Once the terms are written, generating the document that carries them should take about a minute. Billable is a free invoice generator built for developers, with no account and no server: your data stays in the browser. If you want to start from something already laid out for dev work, there is a free invoice template for developers.
FAQ
Can I write my own contract without a lawyer? For small engagements, many developers do, and clause text like the above is a normal starting point. New York's statute assumes a solo contractor and a hiring party can produce a compliant written agreement between them, and it even directs workers to a model contract. Get a lawyer involved when the numbers get large, when the client's own paper replaces yours, when IP ownership is genuinely contested, or when you are working across borders. An hour of review on a template you will reuse for years is cheap.
What late fee percentage is typical? Around 1.5% per month is the figure most freelance contracts use, which works out to 18% annualized. Cap it at the maximum your jurisdiction permits, which is what the "or the maximum rate permitted by applicable law if lower" phrasing handles. Note that some jurisdictions give you a statutory rate that is stronger than anything you would write yourself, and for federal contracting the Prompt Payment rules make interest accrue automatically without you requesting it.
What is a work-stop clause? It is the right to suspend work when an undisputed invoice goes unpaid past a stated grace period, without that suspension counting as your breach or your missed deadline. It matters more than a late fee because it removes the client's incentive to keep receiving value while payment sits in a queue. Make it cover deployments and support, not just new development, and extend all delivery dates by the length of the suspension.
Do email agreements count as contracts? An exchange of emails can form a binding agreement in many jurisdictions if the essential terms are there and both sides act on it, and a clear email thread is far better than nothing. It is a poor substitute for a signed document, because the terms end up scattered across a conversation and the payment date is often never stated at all. New York's requirement is specifically that the agreement be reduced to writing with named terms in it, which a thread rarely satisfies cleanly. If a project is already running on email, send a short summary document restating the nine terms above and ask for a written confirmation.