Software development agreement

A developer builds software for a client under a fixed scope and milestones. Fill in the project and the payment schedule, send one link, and the client signs from theirs.

A contract between a software developer and a client for building custom software: what will be built, in what phases, how the client tests and accepts each phase, how and when the developer is paid, who owns the code, what open source may be used, the developer’s warranties and post-launch support. The client owns the deliverables once it has paid for them.

Sign in to use this template · Set the few terms only you can, reword anything, and send it to be filled in and signed. The people you send to never need an account.

What it covers

When to use it

What it does not do

Signing, witnesses and delivery

The agreement

Software Development Agreement

This Software Development Agreement (the "Agreement") is made as of [Effective date] (the "Effective Date") between [Developer (you or your studio)], with an address at [Developer address] ("Developer"), and [Client (legal entity name)], with an address at [Client address] ("Client"). Client wishes to engage Developer to design, develop and deliver the software described below, and Developer agrees to do so on the terms of this Agreement. Developer and Client are each a "Party" and together the "Parties".

1. Project and Deliverables

Developer shall design, develop, test and deliver the following software (the "Software"): [Project description and specification reference]. The functional specification or other document referred to above (the "Specification") is incorporated in this Agreement and is the standard against which the Software is tested. The project is divided into the following milestones, each with its deliverables and target date (the "Milestones"): [Milestones, deliverables and target dates]. "Deliverables" means the Software, its source code, build scripts, documentation and every other item Developer delivers under a Milestone. Target dates assume that Client meets its responsibilities under Section 2 and are extended by any delay attributable to Client or to an approved change request.

2. Development Process; Client Responsibilities; Changes

Developer shall perform the work using qualified personnel, in a professional manner consistent with good industry practice, and shall keep Client informed of progress through at least fortnightly written status reports and access to a staging environment. Developer may engage subcontractors, remains responsible for their work, and shall bind them to confidentiality and intellectual property terms no less protective of Client than this Agreement. Client’s product owner is [Client’s product owner (name and title)], who has authority to give feedback, approve Deliverables and sign change requests for Client. Client shall provide promptly, and in any event within five (5) business days of request, the content, data, credentials, third-party accounts, access, decisions and approvals reasonably needed for the project, and shall ensure it has the right to provide them.

Either Party may propose a change to the Specification, the Milestones or the Deliverables by written request. Developer shall respond within five (5) business days with a written estimate of the effect on fees and schedule, priced at the hourly rate in Section 4 unless otherwise agreed. No change is effective, and Developer is not obligated to perform changed work, until both Parties sign the change request. Minor clarifications that do not affect fees or schedule may be confirmed by email between the project contacts.

3. Acceptance Testing

On delivery of each Milestone, Developer shall notify Client in writing that the Deliverables are ready for acceptance testing. Client shall have [Acceptance review period per milestone (business days)] business days after that notice (the "Review Period") to test the Deliverables against the acceptance criteria in the Specification and this Agreement. Before the Review Period ends, Client shall either accept the Milestone in writing or deliver a written notice describing in reasonable detail each material way in which the Deliverables fail to meet the acceptance criteria (a "Deficiency Notice").

On receipt of a proper Deficiency Notice, Developer shall correct the deficiencies within a reasonable time, not to exceed fifteen (15) business days unless the Parties agree otherwise, and redeliver, and a new Review Period of the same length begins for the corrected items. If Client does not deliver a written acceptance or a Deficiency Notice before the Review Period ends, or if Client deploys the Deliverables in production, the Milestone is deemed accepted. Cosmetic issues and items not in the Specification are not grounds for a Deficiency Notice but may be logged for correction under the warranty or by change request. Acceptance of a Milestone does not waive the warranties in Section 7. Final acceptance occurs on acceptance of the last Milestone.

4. Fees and Payment

Fee basis: [Fee basis]. If the fee basis is fixed price, the total fee for the project is [Total fixed price, or the not-to-exceed amount], payable as follows: [Milestone payment schedule]. If the fee basis is hourly, Developer shall bill for time actually spent at [Hourly rate for change requests and hourly work] per hour in quarter-hour increments, invoiced monthly with time records, and total fees shall not exceed [Total fixed price, or the not-to-exceed amount] without a signed change request; Developer shall notify Client when fees reach eighty percent (80%) of that amount. In either case, Client shall pay a deposit of [Deposit on signing] within three (3) business days after both Parties sign this Agreement, which is applied to the fees as stated in the payment schedule or, if hourly, to the final invoice.

Milestone payments are due on acceptance of the Milestone, including deemed acceptance. Each invoice is due within [Invoices due (days)] days after receipt. Amounts not paid when due bear interest at one percent (1%) per month, or the highest rate permitted by law if lower, and Developer may suspend work on ten (10) days’ written notice while an undisputed invoice remains unpaid, with the schedule extended accordingly. Fees exclude taxes, which Client shall pay other than taxes on Developer’s income, and exclude third-party costs such as hosting, domain, app store, API and licence fees, which Client shall pay directly or reimburse at cost with prior approval. Change requests are billed at the hourly rate stated above unless the change request states a fixed price.

5. Client Materials and Third-Party Components

Client grants Developer a non-exclusive licence to use the content, data, trademarks, software and other materials Client provides ("Client Materials") solely to perform this Agreement, and warrants that it has the right to provide them and that they do not infringe any third party’s rights. Developer shall use third-party components, services and open source software in the Software only as follows: components under permissive licences (including MIT, BSD, Apache 2.0 and ISC) may be used without approval; components under copyleft licences (including GPL, AGPL and LGPL) are: [Copyleft open source (GPL, AGPL, LGPL)]; and proprietary components requiring a paid licence require Client’s prior written approval and are licensed in Client’s name. At final acceptance Developer shall deliver a written list of every third-party and open source component in the Software with its licence, and warrants that the list is complete to the best of its knowledge.

6. Ownership and Licence

Upon Client’s payment of the fees attributable to a Milestone, Developer assigns to Client all right, title and interest, including all copyrights, patent rights, trade secret rights and other intellectual property rights, in the Deliverables of that Milestone, excluding Developer Tools and third-party components. To the extent any Deliverable is a "work made for hire" under the Copyright Act, it is owned by Client as such. Developer shall sign any document Client reasonably requests to confirm or record Client’s ownership, and waives any moral rights in the Deliverables to the extent permitted by law. Until payment, Developer retains ownership of the Deliverables and grants Client a licence to use them for testing and, if deployed, in Client’s business, which converts to ownership on payment.

"Developer Tools" means libraries, frameworks, code, tools, templates, techniques and know-how that Developer developed before or independently of this Agreement, and generic improvements to them made during the project that do not embody Client’s Confidential Information. Developer retains ownership of Developer Tools and grants Client a perpetual, irrevocable, worldwide, royalty-free, non-exclusive licence to use, modify, reproduce, distribute and create derivative works of any Developer Tools incorporated in the Deliverables, as part of the Software and any successor to it. Developer may use the general skills, knowledge and experience gained on the project for others, but shall not use or disclose the Deliverables or Client’s Confidential Information. Developer may identify Client as a client and describe the project in general terms in its portfolio unless Client objects in writing.

7. Warranties

Developer warrants that: (a) for [Warranty period after final acceptance (days)] days after final acceptance (the "Warranty Period"), the Software will perform materially in accordance with the Specification; (b) the Deliverables are Developer’s original work except for Client Materials and the third-party and open source components listed under Section 5; (c) to Developer’s knowledge, the Deliverables do not infringe any third party’s intellectual property rights; (d) Developer will use industry-standard practices to ensure the Deliverables contain no virus, malicious code or undisclosed disabling mechanism; and (e) Developer has the right to enter into this Agreement. Client’s exclusive remedy for breach of warranty (a) is that Developer shall correct, at no charge, any reproducible failure to conform to the Specification reported in writing during the Warranty Period, within a reasonable time; if Developer cannot correct it after reasonable efforts, Developer shall refund the portion of the fees attributable to the non-conforming feature. The warranty does not cover failures caused by Client’s modifications, third-party services, changes to operating environments not approved by Developer, or use contrary to the documentation. EXCEPT AS STATED IN THIS SECTION, DEVELOPER DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT, AND DOES NOT WARRANT THAT THE SOFTWARE WILL BE ERROR-FREE OR OPERATE WITHOUT INTERRUPTION.

8. Support and Maintenance

For [Included support after final acceptance (months)] months after final acceptance (the "Support Period"), Developer shall, at no additional charge, correct defects in the Software reported by Client, respond to reasonable technical questions from Client’s designated staff by email during business hours within two (2) business days, and provide the documentation and knowledge transfer reasonably needed for Client or its designee to operate and maintain the Software. Support does not include new features, changes required by modifications to third-party services or platforms, work caused by Client’s modifications, hosting or operations, or data recovery, all of which Developer will perform on request at the hourly rate in Section 4. After the Support Period, maintenance and support are available under a separate written agreement.

9. Confidentiality

Each Party shall hold in confidence the other Party’s non-public information disclosed in connection with this Agreement, including the Specification, source code, business information, credentials and data ("Confidential Information"), shall use it only to perform or receive the benefit of this Agreement, shall disclose it only to personnel and advisers who need to know it and are bound by written confidentiality obligations, and shall protect it with at least reasonable care. Confidential Information does not include information that is or becomes public through no fault of the recipient, was known to the recipient before disclosure, was received from a third party without restriction, or was independently developed. A Party may disclose Confidential Information to the extent required by law after giving prompt notice. These obligations continue for three (3) years after this Agreement ends and, for trade secrets and source code, for as long as they remain confidential. Developer shall follow reasonable security practices in handling Client’s data and credentials and shall notify Client promptly of any security incident affecting them. Notice under 18 U.S.C. §1833(b): an individual shall not be held liable under any trade secret law for disclosing a trade secret in confidence to a government official or an attorney solely to report or investigate a suspected violation of law, or in a document filed under seal in a legal proceeding.

10. Limitation of Liability; Indemnity

EXCEPT FOR A PARTY’S INDEMNIFICATION OBLIGATIONS, BREACH OF SECTION 9, INFRINGEMENT OR MISAPPROPRIATION OF THE OTHER PARTY’S INTELLECTUAL PROPERTY, GROSS NEGLIGENCE OR WILLFUL MISCONDUCT, OR CLIENT’S OBLIGATION TO PAY FEES: NEITHER PARTY IS LIABLE TO THE OTHER FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR PUNITIVE DAMAGES, OR FOR LOST PROFITS, REVENUE, DATA OR BUSINESS OPPORTUNITY, HOWEVER CAUSED, EVEN IF ADVISED OF THE POSSIBILITY; AND EACH PARTY’S TOTAL LIABILITY ARISING OUT OF THIS AGREEMENT IS LIMITED TO THE FEES PAID OR PAYABLE UNDER IT. Developer shall defend Client against any third-party claim that the Deliverables, as delivered and used in accordance with this Agreement, infringe a United States copyright or trade secret, and shall pay the resulting damages and costs finally awarded or agreed in settlement, except to the extent the claim arises from Client Materials, third-party components, modifications not made by Developer, or combination with items not supplied by Developer; Developer may procure the right to continue use, modify the Deliverables to be non-infringing, or refund the fees for the affected Deliverables. Client shall defend Developer against any third-party claim arising from Client Materials or Client’s use of the Software in breach of law. The indemnified Party shall give prompt notice, allow the indemnifying Party to control the defense, and cooperate at the indemnifying Party’s expense.

11. Term and Termination

This Agreement begins on the Effective Date and continues until the end of the Support Period, unless terminated earlier. Either Party may terminate this Agreement for convenience on fifteen (15) days’ written notice, and either may terminate immediately on written notice if the other materially breaches this Agreement and fails to cure the breach within fifteen (15) days after written notice, or becomes insolvent. On termination for any reason, Client shall pay for all Milestones accepted and, for the Milestone in progress, for work performed at the hourly rate in Section 4 up to the fee allocated to that Milestone; the deposit is applied to those amounts and any excess is refunded or any shortfall invoiced. Developer shall deliver all Deliverables completed or in progress, including source code, and Client owns them to the extent paid for under Section 6. Each Party shall return or destroy the other’s Confidential Information. Sections 5 through 7 (as to accepted Deliverables), 9, 10 and 12 survive termination.

12. General

This Agreement is governed by the laws of the State of [Governing law (state)], without regard to its conflict of laws rules, and any action arising out of it shall be brought in the state or federal courts located in that state, except that either Party may seek injunctive relief in any court to protect its Confidential Information or intellectual property; the prevailing Party is entitled to reasonable attorney fees and costs. The Parties are independent contractors, and Developer is responsible for its own taxes, insurance and personnel. Neither Party is liable for delay caused by events beyond its reasonable control, other than payment. This Agreement, with the Specification and any signed change requests, is the entire agreement between the Parties about its subject and supersedes all prior proposals and understandings. It may be amended only in a writing signed by both Parties. Neither Party may assign this Agreement without the other’s written consent, except to a successor to substantially all of its business. If any provision is held unenforceable, the remainder continues in effect. Notices shall be in writing and delivered to the addresses above or the email addresses in the execution record. This Agreement may be signed electronically and in counterparts, each of which is an original and all of which together are one instrument, and the electronic execution record, timestamps and document fingerprints kept by the signing platform are conclusive evidence of its execution. Each person signing represents that they are authorized to bind the Party for whom they sign.

Signatures

Developer · Client

Software Development Agreement FAQ

Who owns the code?

The client, once it has paid for the milestone that produced it. Until then the developer owns it and the client has a licence to use it. The developer keeps its pre-existing libraries, frameworks and tools and gives the client a perpetual licence to use them inside the deliverables. This is the arrangement most clients expect for custom work; developers who want to keep a reusable core should say so in the project description and adjust Section 6.

How does acceptance testing work?

Each milestone has acceptance criteria drawn from the specification. When the developer delivers a milestone, the client has the review period you set to test it and either accept it or send a written list of failures to meet the criteria. The developer fixes them and redelivers; the cycle repeats until acceptance. If the client does not respond within the review period, or puts the software into production use, the milestone is deemed accepted and the milestone payment becomes due.

Can the developer use open source?

Under this agreement, permissively licensed open source such as MIT, BSD and Apache 2.0 components may be used freely, and the developer delivers a list of every component and its licence at handover. Copyleft licences such as the GPL and AGPL, which can require the client to release its own source code, may be used only with the client’s prior written approval. That distinction is what an acquirer or investor will look for in due diligence later.

What warranty does the developer give?

That the software will perform materially in accordance with the specification for the warranty period after acceptance, that it is the developer’s original work apart from disclosed third-party and open source components, and that it will not knowingly infringe anyone’s rights. The remedy is that the developer fixes defects reported during the warranty period at no charge. The developer does not warrant that the software is bug-free, and the agreement disclaims implied warranties.

Can I leave the milestone dates or the client’s details blank?

Yes. Any blank you leave becomes a fill-in field the client completes when they open the link, and you see what they entered before you countersign. Developers usually fill in the scope, milestones and fees and leave only the client’s legal name, address and technical contact for the client.

What happens if the project is cancelled halfway?

Either party can terminate on notice. The client pays for milestones accepted and for work performed on the current milestone at the hourly rate, up to the value of that milestone, and the developer delivers all work in progress with the source code, which the client then owns to the extent paid for. The deposit is applied to those amounts and any balance is refunded or invoiced.

What does support include after launch?

For the support period you set after final acceptance, the developer fixes defects and answers reasonable questions from the client’s team during business hours at no extra charge. New features, changes to accommodate third-party API changes, and work caused by the client’s modifications are billed at the hourly rate. Ongoing maintenance after the support period is available on a separate agreement or a monthly retainer.

Related templates

This template is general information, not legal advice. Laws differ by state; review anything important with a lawyer.

Start sending smarter