Skip to content

Free template · Updated

Software Development Agreement template

A software development agreement sets out what a developer will build for a client, the milestones and acceptance process, fees, ownership of the code, warranties, and post-launch support.

A software development agreement is a contract between a client and a developer or agency for building custom software. It defines the scope, milestones, acceptance testing, payment, who owns the code, and what support follows launch. You need one before any line of code is written for a paying client.

Use this template — sign onlineOpens as a ready-to-send document with signature fields placed.
Replace everything in [BRACKETS], export to PDF, then send it for signature.

1. Parties

This Software Development Agreement (the "Agreement") is made on [DATE] between [CLIENT NAME], of [CLIENT ADDRESS] (the "Client"), and [DEVELOPER NAME], of [DEVELOPER ADDRESS] (the "Developer"), together the "Parties".

2. Scope of Work

The Developer will design, develop, test, and deliver the software described in the Specification attached as Exhibit A (the "Software"), including [KEY FEATURES, PLATFORMS, e.g. iOS and Android apps with an admin dashboard]. Work outside the Specification is not included unless added by a written change order signed by both Parties, which will state any change to fees and timeline.

3. Milestones and Timeline

The Developer will deliver the Software in the following milestones: [MILESTONE 1, DESCRIPTION, TARGET DATE]; [MILESTONE 2, DESCRIPTION, TARGET DATE]; [MILESTONE 3, DESCRIPTION, TARGET DATE]. Target dates will be extended to the extent delays are caused by the Client, including late feedback, content, or access.

4. Client Responsibilities

The Client will provide timely feedback, content, credentials, test accounts, and access to systems reasonably needed for the work, and will name [CLIENT CONTACT] as its decision-maker for the project.

5. Acceptance Testing

After each milestone delivery, the Client has [NUMBER] business days to test the deliverable against the Specification and either accept it in writing or provide a written list of defects. The Developer will correct listed defects within a reasonable time and resubmit. A deliverable is deemed accepted if the Client does not respond within the testing period or uses it in production.

6. Fees and Payment

The Client will pay [TOTAL FIXED FEE / HOURLY RATE OF AMOUNT], as follows: [AMOUNT OR %] on signing, and [AMOUNT OR %] on acceptance of each milestone. Invoices are due within [NUMBER] days. Third-party costs such as hosting, app store fees, and paid APIs are [PAID DIRECTLY BY THE CLIENT / REIMBURSED AT COST]. Late payments may pause work until paid.

7. Intellectual Property

On full payment of the fees, the Developer assigns to the Client all rights in the custom code and deliverables created specifically for the Client under this Agreement. The Developer keeps ownership of its pre-existing tools, libraries, and know-how ("Developer Materials") and grants the Client a non-exclusive, perpetual, royalty-free license to use Developer Materials as part of the Software. Open-source components remain subject to their own licenses, which the Developer will list on request. The Developer may describe the project in its portfolio unless the Client objects in writing.

8. Confidentiality

Each Party will keep the other's non-public business and technical information confidential, use it only for this project, and return or delete it when the project ends, except as required by law.

9. Warranties

The Developer warrants that, for [NUMBER] days after final acceptance (the "Warranty Period"), the Software will perform materially in accordance with the Specification, and the Developer will fix reproducible defects at no extra charge. The Developer also warrants that, to its knowledge, the custom code does not infringe third-party rights. Except as stated here, the Software is provided "as is", and the Developer does not guarantee that it will be error-free.

10. Support and Maintenance

After the Warranty Period, the Developer will provide [NO ONGOING SUPPORT / SUPPORT AND MAINTENANCE AT AMOUNT PER MONTH OR HOUR], covering [BUG FIXES, SECURITY UPDATES, HOSTING MONITORING]. New features are quoted separately.

11. Limitation of Liability

To the extent permitted by law, neither Party is liable for indirect, incidental, or consequential damages, including lost profits or data, and each Party's total liability under this Agreement is limited to the fees paid or payable under it, except for breaches of confidentiality, infringement indemnities, or amounts that cannot lawfully be limited.

12. Term and Termination

Either Party may terminate this Agreement with [NUMBER] days' written notice, or immediately if the other Party materially breaches it and does not cure the breach within [NUMBER] days of notice. On termination, the Client will pay for work performed up to the termination date, and the Developer will deliver the work in progress, which the Client may use once paid for.

13. Independent Contractor and General Terms

The Developer is an independent contractor, not an employee of the Client. This Agreement is governed by the laws of [GOVERNING LAW JURISDICTION], is the entire agreement between the Parties about the project, and may be changed only in writing. The Parties agree that this Agreement may be signed electronically and in counterparts, each of which is an original and all of which together form one agreement.

14. Signatures

CLIENT: [CLIENT NAME] Signature: ____________________ Name and title: [SIGNATORY NAME, TITLE] Date: [DATE] DEVELOPER: [DEVELOPER NAME] Signature: ____________________ Name and title: [SIGNATORY NAME, TITLE] Date: [DATE]

Our take: Our take: software projects rarely fail on price; they fail on vague scope and missing acceptance criteria. Put the specification in an exhibit, tie each payment to a milestone the client can actually test, and give the client a fixed number of days to accept or list defects, otherwise silence never ends. Be explicit about IP: the client usually gets the custom code on full payment, while the developer keeps pre-existing tools and open-source components stay under their own licenses. Scope will change, so agree now on how; a change order works well. For smaller website jobs, our web design contract is lighter, and an NDA can come first if the client shares sensitive plans.

When should you use a software development agreement?

  • When hiring a freelance developer or agency to build an app, platform, or integration
  • When a developer takes on a fixed-price or milestone-based software project
  • When you need clear rules on who owns the source code and pre-existing tools
  • When maintenance or support after launch is part of the deal

How do you fill in this template?

  1. Write the specification as Exhibit A: features, platforms, integrations, and what is out of scope.
  2. Break the work into milestones you can test, with a payment tied to each.
  3. Set the acceptance window, warranty period, and any support terms.
  4. Check the IP clause against any pre-existing code or open-source components you plan to use.
  5. Upload the agreement and exhibit to eSignSimple and send it to both signatories in a signing order.

How do you get it signed online?

  1. Save it as Word or PDF. Paste the filled-in text into Word or Google Docs and keep it as a .docx file, or export it as a PDF. eSignSimple accepts both, plus DOC, ODT and RTF, up to 25 MB; Word files are converted to PDF on upload.
  2. Upload and place the fields. Sign up with Google, upload the file and drag signature, initials, date and text fields onto the page for each signer. Set a signing order if one party must sign first.
  3. Send it for signature. Each signer gets a private link and signs in the browser without creating an account. Automatic email reminders go out every three days (up to three) until everyone has signed.
  4. Keep the signed copy. When the last person signs, everyone can download the final PDF with a certificate of completion, an audit trail and a SHA-256 fingerprint you can verify later.

Signing on your own device only? The guide to signing a PDF covers the free built-in options, and the security page explains how signed files are stored and verified.

This template is general information, not legal advice. Laws differ by country and state; have a lawyer review contracts with high stakes.

Written by Buğra Sözeri, founder and editor, eSignSimple · Last reviewed

Buğra builds eSignSimple and writes and maintains its guides. He researches each legal page against the official texts linked on it and updates pages when the law or the product changes. He is not a lawyer, and nothing here is legal advice. About eSignSimple

Frequently asked questions

Who owns the code in a software development agreement?

Whoever the contract says. Under this template, the client owns the custom code once it has paid in full, and the developer keeps its pre-existing tools and licenses them to the client. Without a written assignment, a contractor may keep copyright in the code by default in the US.

Fixed price or hourly?

Fixed price suits a well-defined specification; hourly or time-and-materials suits evolving products. Many projects use a fixed price per milestone with an hourly rate for change orders.

What does acceptance testing mean?

It is the period in which the client checks a delivery against the specification and either accepts it or lists defects. A deemed-acceptance rule keeps projects from stalling.

Can I e-sign a software development agreement?

Yes. Commercial contracts like this can generally be signed electronically under the ESIGN Act and UETA in the US, and under similar laws elsewhere.

Get your next document signed today.

Start with 3 free documents a month. No card needed.