No Payment Now — Pay Only After the Work Is Done · Delhi & All India · Online + Offline · +91 98913 43962
Legal Space Services (LSS) logoLegal Space Services
Login
Legal Space ServicesLegal Services & Documentation Company
Free Consultation
No payment now · Pay after work
Login
+91 98913 43962 WhatsApp Chat
HomeDocumentsDocument Guides › Software Development Agreement

Software development agreement — build it, test it, own it

A garment exporter in Okhla pays a development agency to build an order-tracking app. Nine months later the app half works, the agency says the remaining features were “never in scope”, and the code sits in the agency’s own account, along with the app’s store listing. A startup in Gurugram discovers during due diligence that its core product was written by a contractor who never assigned the copyright. Software projects fail for technical reasons less often than people think; they fail because nobody wrote down what was being built, how it would be tested, and who would own it. This page explains how to write that down, for clients and for developers.

From ₹4,999 2 – 5 days Websites, apps, custom software Nothing payable in advance
What is a software development agreement, and what should it contain?A software development agreement is the contract under which a developer, agency or freelancer builds software for a client — a website, mobile app, web application, integration or internal system. It should describe what is to be built in a requirements document or statement of work, with the platforms, integrations and assumptions, and say what is out of scope; choose a pricing model — fixed price, time and material, or agile sprints — with payments tied to milestones; set out a change request process; define acceptance testing, defect severity, fix times and deemed acceptance; assign the copyright in code written for the client, effective on payment, since the Copyright Act makes the author the first owner and an outside developer is not an employee; license any background IP and disclose open source components and their licences; keep code in a client-owned repository and apps, hosting and domains in client-owned accounts; cover confidentiality, security standards and personal data under the DPDP Act; give a warranty period for bug fixing and separate terms for maintenance; deal with delay, key personnel and subcontracting; and provide for handover of code, documentation and credentials on completion or termination.

What the agreement is for

Software is unusual among things people pay to have made. A builder hired to put up a wall produces something the client can see, measure and touch; a developer produces thousands of lines of instructions that the client usually cannot read, running on servers the client may never see, depending on libraries written by strangers. The client judges the work by whether the screens do what it expected. The developer judges it by whether it did what was asked. When those two expectations were never written down in the same words, the project ends in an argument.

A software development agreement exists to close that gap. It does four jobs. It fixes what is being built, in enough detail that both sides can later point to the same sentence. It fixes how the work will be judged — the tests, the defects that matter, and the moment at which the client says yes. It fixes who owns the result, which the law does not settle in the client’s favour by default. And it fixes what happens when things go wrong: delay, a change of mind, a developer who leaves, a client who stops paying.

This page covers projects in which software is built to order: a website or online store, an Android or iOS app, a web platform, an ERP customisation, an integration between systems, an internal dashboard. Where software already exists and the customer merely subscribes to it, the better model is a SaaS subscription agreement; where a customer installs a finished product, an end user licence agreement. Many real projects touch all three, and we come back to that overlap below.

If the finished product will be sold to many users as installed software, the terms on which those users receive it — licence model, keys, updates, restrictions — are explained in our end user licence agreement guide.

Agency, freelancer or in-house?

The type of developer changes which clauses carry weight.

Swipe to see the full table
DeveloperTypical strengthsWhat the contract must watch
Development agency or IT companyA team, project management, continuity if one person leavesWho actually does the work, subcontracting, key personnel, the agency’s standard terms
Individual freelancerLower cost, direct contact, flexibilityContinuity, availability, ownership of code, handover if the freelancer moves on
Offshore or foreign developerCost or specialist skillsGoverning law, enforcement, currency, time zones, data leaving India
Employee or in-house teamControl and knowledge that stays in the businessNot this agreement at all: the employment contract governs, and ownership usually follows the employer
Co-founder writing the codeCommitment and speedMoving the code into the company, which is a founders’ issue

For a single freelancer on a small, one-off job, our freelance agreement guide is the better starting point: it deals with the law on ownership, the Section 19 defaults, MSME payment protection and foreign clients in depth, and this page does not repeat those explanations. For code written by employees, see the intellectual property section of our employment agreement guide; for a co-founder’s code, see moving the work into the company.

Master agreement and statements of work

When a client and a developer expect to work together on more than one project, or on a project with several phases, the neatest structure is a master services agreement with separate statements of work. The master agreement contains the legal terms that do not change — ownership, confidentiality, warranties, liability, termination, disputes. Each statement of work describes one piece of work: its scope, deliverables, timetable, team, price and acceptance criteria.

For a single, self-contained project, one agreement with the scope in a schedule is enough. Either way, the documents need an order of precedence for conflicts. The usual rule is that a statement of work prevails on commercial and technical points specific to that project, and the master agreement prevails on legal points, unless the statement of work expressly says it is changing a named clause of the master agreement. Without such a rule, a line in a hastily written statement of work — “client will own all materials” — may be argued to override a carefully negotiated licence of background code.

Writing the requirements

Every other clause depends on this one. Acceptance tests are measured against the requirements; the fixed price is calculated from them; a change request is anything outside them; a warranty claim is a failure to meet them. Vague requirements make every later clause arguable.

A useful requirements document, sometimes called a software requirements specification, does not need to be long, but it should cover:

Where requirements are genuinely unknown at the start — a new product whose shape will be discovered by building it — it is better to say so honestly and choose a pricing model that allows for discovery, than to write a specification that pretends to certainty. A paid discovery phase, in which the developer and client produce the requirements together for a fixed fee before the main build is priced, is common and sensible.

Fixed price, time and material, or sprints

The pricing model decides who carries the risk that the work takes longer than expected.

Swipe to see the full table
ModelHow it worksWho carries the riskSuits
Fixed priceOne price for a defined scope, paid in milestonesDeveloper, for estimation; client, for anything left out of scopeClear, stable requirements; websites, well-defined apps
Time and materialAgreed hourly, daily or monthly rates for time actually spent, plus expensesClient, for cost; developer only for efficiencyEvolving requirements, ongoing development, maintenance
Agile sprintsA fixed team for fixed periods, typically two weeks, with priorities set each sprintShared: cost per sprint is fixed, but the total depends on how many sprints are neededProducts developed iteratively with an engaged client
Dedicated teamNamed developers working for the client full-time at a monthly rateClient, broadly as with staffLong-term product work without hiring
HybridFixed price discovery or first release, then time and materialDivided by phaseMost new products

Each model needs its own protections. A fixed price contract needs precise requirements and a firm change request process, because every disagreement becomes a question of whether something was included. A time and material contract needs rate cards, timesheets the client can inspect, a monthly budget or cap above which the developer must stop and ask, and a right for the client to reject time spent on work it never requested. An agile contract needs clarity about what the client receives at the end of each sprint, who owns the product backlog, and how either side can stop after any sprint without penalty.

Milestones and payments

Payment terms in software contracts do two jobs: they fund the developer’s work, and they give the client leverage to ensure the work is finished. A balanced schedule does both. A common fixed price structure looks like this:

Swipe to see the full table
MilestoneIllustrative shareEvidence of completion
Signing15–25%Signed agreement and approved requirements
Design approval10–15%Client sign-off on screens or prototype
Development complete, delivered for testing25–30%Build available on a test environment with release notes
Acceptance20–30%Acceptance certificate or deemed acceptance
Go-live and end of stabilisation period10–15%Software live and warranty-period retention released

Whatever the shares, tie each payment to something objective. “On completion” is not objective. “Within seven days of the acceptance certificate or deemed acceptance under clause 9” is.

The agreement should also set invoice timing, the period for payment, interest on late payment and the developer’s right to pause work after a stated period of non-payment and written notice. A developer registered as a micro or small enterprise has statutory rights to payment within a fixed time and to compound interest on delay, explained in our freelance guide’s MSMED Act section; practical invoicing techniques are in payment terms that actually work. A developer that has paused work for non-payment should not be liable for the resulting delay, and the agreement should say so.

Change requests

Requirements change in every real project. Users test an early version and ask for something different; the business changes its mind; a regulator or a payment gateway changes its rules. Change itself is not the problem. The problem is change that nobody records, so that at the end one side believes it paid for everything and the other believes it did twice the work.

A change request clause sets out a simple procedure:

  1. Either side may propose a change in writing, describing what is wanted.
  2. The developer responds within a stated number of working days with its effect on scope, price, timetable and any other part of the project, such as testing or security.
  3. The change proceeds only when both sides sign or approve the change request in writing, including by email from named representatives.
  4. Until then, the developer continues with the agreed scope, and is not obliged to begin the change.
  5. Approved changes form part of the requirements, and acceptance tests are updated accordingly.

Two practical points make the clause work. First, name the people on each side who can approve changes. A client’s junior employee asking for “one small thing” on a messaging group should not bind the client to pay for it, and a developer’s junior engineer should not quietly agree to it either. Second, allow small changes to be absorbed: many agreements let the developer accommodate minor adjustments up to a stated number of hours without a formal request, so the process does not become bureaucratic. Our freelance guide discusses revision rounds for creative work; the principle here is the same but more formal, because software changes ripple into testing and timelines.

What the client must provide

Many delays in software projects are caused not by developers but by clients who do not supply what the developer needs: content, product images, approvals, access to an old database, test accounts with a payment gateway, credentials for a courier’s interface, a decision about the colour of a button. The agreement should list the client’s obligations as carefully as the developer’s:

The consequence of the client’s delay should be stated: the timetable extends by the period of delay, the developer is not liable for the resulting lateness, and if the delay exceeds a stated period, the developer may charge for idle time or reschedule the team. Without this, a delay-damages clause can end up penalising the developer for the client’s own slowness.

Testing and acceptance

Acceptance is the moment the client agrees that the software meets the requirements. It usually triggers a large payment, starts the warranty period, and sometimes transfers ownership. So the process of reaching it must be clear.

Testing stages. The developer tests its own work first — unit tests, integration tests and its own quality assurance. It then delivers a build to a test or staging environment with release notes, and the client carries out user acceptance testing against the agreed requirements and test cases. Agreeing the acceptance test cases in advance, even as a simple list of scenarios, removes most arguments.

Defect severity. Not every defect should block acceptance. A common classification:

Swipe to see the full table
SeverityMeaningEffect on acceptanceIllustrative fix time
CriticalThe software or a core function does not work, data is lost or security is compromised; no workaroundBlocks acceptance1–2 working days
MajorAn important function fails, with a difficult workaroundBlocks acceptance3–5 working days
MinorA function works incorrectly in a way that does not stop normal useDoes not block; fixed within the warrantyNext release
CosmeticSpelling, alignment, coloursDoes not blockNext release

The acceptance cycle. The client tests for a stated period, such as ten working days, and reports defects in writing with enough detail to reproduce them. The developer fixes them within the agreed times and redelivers. The client retests, normally only the fixed items and anything they affect. The agreement should limit the number of cycles and say what happens if critical defects remain after, say, three rounds: usually a right for the client to terminate that phase and recover sums paid for it, or to accept with a price reduction.

Deemed acceptance. To stop acceptance being delayed indefinitely, the software is treated as accepted if the client does not report blocking defects within the testing period, or if it starts using the software in live operation with real users or customers. Clients should make sure the testing period is realistic, and that a short trial with a few staff is not counted as live use. Developers should make sure that “going live” is defined so that a client cannot run its business on the software for months while refusing to accept it.

Acceptance is not waiver. Acceptance means the software met the requirements as far as reasonable testing could show. It should not prevent the client from relying on the warranty for defects discovered later, and the agreement should say so.

Who owns the code

Many clients assume that if they pay for software, they own it. Indian copyright law does not work that way. A computer programme is a literary work under the Copyright Act, and its author is the first owner of the copyright. The exception for work made under a contract of service applies to employees, not to independent developers or agencies working under a contract for service. So unless there is a written assignment, the developer owns the copyright in the code it wrote, and the client has at most an implied licence to use what it received for the purpose for which it was commissioned. The detail of this rule, and the statutory defaults that apply to an assignment that is silent on duration or territory, are set out in our freelance guide on Section 17 and Section 19.

For a software project, the ownership clause should say:

Ownership of the code is separate from ownership of the product’s name and logo, which are protected as trade marks. If the developer or its designer created the brand, the assignment should cover the artwork, and the client should file its own trademark application rather than rely on the developer’s goodwill.

Code written with AI tools. Developers increasingly use AI coding assistants. The law on whether, and to whom, copyright attaches to machine-generated code is unsettled in India and abroad, and the terms of the AI tools themselves vary. A cautious agreement requires the developer to disclose significant use of such tools, to review and take responsibility for all code delivered as if written by hand, not to enter the client’s confidential code or data into tools that train on inputs, and to give the same warranties regardless of how code was produced. This is an area in which terms should be reviewed as the law develops.

Background IP and reusable components

A developer does not start every project from a blank screen. Agencies build up their own frameworks, templates, modules for login, payments or notifications, deployment scripts and internal tools; that is part of why they can deliver quickly. If every client acquired ownership of those components, the developer would lose the ability to use them for the next client, and would have to price every project as though writing everything afresh.

The usual solution is to divide the IP in two. Background IP — what the developer owned before the project or develops independently of it — stays with the developer. Foreground IP — what is created specifically for the client — is assigned to the client. Where background IP is built into the deliverables, the client receives a licence to it that is:

The agreement should list significant background components in a schedule, so there is no later argument about whether a module was pre-existing. It should also deal with general know-how: the skills and techniques the developer’s team learns while working on the project. It is normal for the developer to remain free to use general know-how, but not the client’s confidential information, business logic or distinctive features.

Open source licences

Nearly all modern software is built on open source components: programming frameworks, databases, user-interface libraries, encryption libraries. That is not a defect; it is how software is built. But each component comes with a licence, and the licence terms travel with the software.

Swipe to see the full table
Licence familyExamplesWhat it generally requiresRisk for proprietary software
PermissiveMIT, BSD, Apache 2.0Keep copyright and licence notices; Apache adds patent terms and notice of changesLow
Weak copyleftLGPL, MPLChanges to the component itself must be shared under the same licenceModerate; depends on how the component is linked or modified
Strong copyleftGPL v2, GPL v3Software distributed with the component may have to be released under the GPL, with source codeHigh if the software is distributed, for example as an installed app
Network copyleftAGPLSimilar obligations may arise when users interact with the software over a networkHigh for web platforms and SaaS

This table is a simplification; the effect of a licence depends on how a component is used and on the exact licence text, and specialist advice should be taken where a copyleft component is central. For contract purposes, the agreement should:

Repositories, accounts and credentials

The most common way clients lose control of their software is not through a legal technicality but through accounts. The code sits in the developer’s repository; the app is published from the developer’s store account; the domain is registered in the developer’s name; the cloud server is billed to the developer’s card. When the relationship ends badly, the client discovers that owning the copyright does not help much if it cannot get at the code or the servers.

The remedy is simple and should be written into the agreement: the client creates and owns the accounts, and gives the developer access.

Swipe to see the full table
AssetShould be owned byDeveloper’s role
Source code repositoryClient’s organisation accountInvited contributor; commits regularly, not only at the end
App store developer accountsClient, in its business nameAdded as a team member to upload builds
Domain nameClient, as registrantManages DNS if needed
Cloud hosting and databasesClient’s account and billingAdministrator access with individual logins
Third-party services (payments, SMS, email, maps, analytics)ClientConfigures using keys the client issues
Design filesClient’s shared workspaceEditor

Where the developer has already created accounts, the agreement should oblige it to transfer them — app stores and cloud providers have their own procedures for moving an app or a project from one account to another, and they can take time and meet conditions — and until then to hold them for the client. On any termination, the developer should hand over all credentials, remove its own access when asked, and confirm in writing that it has done so. Credentials should be shared through a password manager or secure channel, never in chat messages, and rotated when team members leave.

Publishing from the right account is also the first step in passing store review; the other documents the stores expect are listed in our app store compliance guide.

Designs, content and third-party assets

Designs, icons, fonts, photographs and written content each have their own owner and licence. The agreement should say that the developer will use only assets it is entitled to use for the client’s purpose, will list paid stock assets and fonts with their licence terms, and will buy commercial licences in the client’s name where needed, or tell the client that it must. Content supplied by the client remains the client’s responsibility: the client warrants that it has the right to use it and indemnifies the developer if it does not. If the developer writes content, such as product descriptions or legal pages, the assignment should cover it too — though legal pages such as privacy policies and terms of use should be prepared for the client’s actual business, not copied from another site; our website legal pack exists for that reason.

Security and quality standards

Security is easiest to build in and hardest to add later, and it is one of the areas where the developer knows much more than the client. The agreement should turn general expectations into specific obligations:

Personal data and confidentiality

Developers see a great deal. During a project they may receive customer lists, sales data, pricing, business plans and access to live systems holding personal data. Two sets of terms are needed.

Confidentiality. The developer must keep the client’s confidential information secret, use it only for the project, share it only with team members who need it and are bound by the same duty, and return or destroy it at the end. The client, in turn, must protect the developer’s confidential information, such as its pricing and its background code. If the project is still being discussed, a separate non-disclosure agreement can protect the early conversations.

Personal data. Under the Digital Personal Data Protection Act, 2023, the business that determines the purpose and means of processing is the data fiduciary, and it remains responsible for processing done on its behalf. A developer that handles personal data for the client — by testing with real records, migrating data, or hosting and maintaining the software — is a data processor, and the Act contemplates that the fiduciary engages processors under a valid contract. Our DPDP privacy policy guide explains what that contract should cover; for larger engagements, a separate data processing agreement is usual. In the development agreement itself, the practical points are:

Key personnel, subcontracting and non-solicit

A client often chooses an agency because of the people it met during the pitch: the senior architect, the lead designer, the project manager. Then the project is staffed by others. A key personnel clause names the people who will work on the project in stated roles, requires the developer to keep them on it except for reasons beyond its control, such as resignation or illness, and requires any replacement to have comparable skills and to be introduced at the developer’s cost, including the time needed to hand over.

Subcontracting should need the client’s consent, particularly for offshore subcontractors or for any subcontractor that will see personal data. The developer should remain responsible for its subcontractors’ work as if it were its own, and should make sure the subcontractors have assigned their rights, so that the chain of title for the code has no gaps.

Agencies often ask for a non-solicitation clause preventing the client from hiring the agency’s developers directly during the project and for a period afterwards. A clause of reasonable scope protects the agency’s investment in its team; but Indian law treats agreements in restraint of trade with suspicion, and a provision that effectively stops an individual from taking a job may not be enforceable. A common compromise is a placement fee payable if the client hires a named team member within a stated period, rather than an outright prohibition. Clients should resist non-solicit clauses that go beyond the people actually assigned to their project.

Delay and liquidated damages

Software is often late. Sometimes that is the developer’s fault, sometimes the client’s, and often both. The agreement should first make the timetable meaningful: dates for each milestone, a procedure for extending them when the client is late or changes are approved, and a duty on the developer to warn early if a date is at risk, with a recovery plan.

Some clients, especially where a launch date matters commercially, want liquidated damages for delay: a pre-agreed sum, such as a percentage of the milestone fee for each week of delay, up to a cap. Such a clause gives both sides certainty. Under Section 74 of the Indian Contract Act, however, a stated sum is treated as the upper limit of compensation rather than an automatic entitlement, and courts award reasonable compensation within it; our service level agreement guide discusses the same principle in relation to service credits. Clauses should be drafted as a genuine estimate of loss, capped, and stated to be the client’s exclusive remedy for delay unless the delay becomes long enough to justify termination.

Warranty and bug fixing

No software of any size is free of bugs, and a good agreement does not pretend otherwise. It gives a limited warranty and a clear remedy.

A typical developer’s warranty promises that:

The remedy for a breach of the software warranty is usually that the developer will fix reported defects free of charge within the agreed times, and if it cannot, refund the fee for the defective part. The warranty should exclude problems caused by changes made by the client or others, use on unsupported devices or platforms, third-party services outside the developer’s control, and misuse. It should also be clear about operating system and browser updates released after acceptance: adapting to them is maintenance, not warranty.

The prohibition on harmful code deserves emphasis. Developers sometimes consider inserting a “kill switch” to protect themselves against non-payment. This is a bad idea legally and commercially: interfering with a computer system without authority can attract liability under the Information Technology Act, and it destroys trust. The proper protections for a developer are milestone payments, assignment on payment and the right to pause work.

Hosting, maintenance and support

The end of development is the beginning of the software’s life. It will need hosting, security updates, adaptation to new operating system versions, bug fixes after the warranty ends, and new features. These are usually covered by a separate annual maintenance agreement or a maintenance schedule, rather than folded into the development fee.

A maintenance schedule should state what is included: corrective maintenance (bug fixing), adaptive maintenance (keeping the software working as platforms change), preventive maintenance (security patches and dependency updates), and a stated number of hours for small enhancements. It should state when and how support can be reached and how fast each class of problem is answered, hosting responsibilities if the developer manages the servers, backups and restoration testing, and the fee and how it changes each year. Where availability and response times are measured and credited, those terms belong in a service level agreement, and our guide explains how service credits work.

If the developer will not only build the software but also run it and provide it as a service to the client and its users, the relationship has become closer to a software subscription. Our SaaS guide’s section on implementation explains how build work fits alongside a subscription, and its intellectual property section explains why ownership then works differently: the customer normally owns its data and configurations, while the provider keeps the platform.

Liability and indemnities

Developers commonly cap their liability at the fees paid under the agreement, or under the relevant statement of work, and rule out claims for lost profits, lost business and other indirect loss. That is normal, and without it few developers could take on projects for businesses much larger than themselves. Clients should check what the cap leaves out, because some matters are usually treated separately:

The client, in turn, usually indemnifies the developer against claims arising from content and materials the client supplied and from the client’s use of the software in breach of law. Both indemnities should require prompt notice of the claim and allow the indemnifying party to control the defence.

Termination and handover

A project can end early for good reasons — the client’s business changes, funding runs out, or it decides to take development in-house — or bad ones. The agreement should provide for both:

What happens after termination matters more than the grounds. On any termination, the developer should deliver all work in progress in its current state — source code, designs, documentation, database schemas, build and deployment scripts — together with credentials and access, and provide reasonable handover assistance to the client or a new developer for a stated period, at agreed rates where the handover is not caused by its own breach. Ownership of work in progress should pass on payment for it. Confidentiality, the IP clauses, the warranty for accepted work, and dispute resolution should survive termination.

A handover checklist, attached to the agreement, makes this concrete: repository access confirmed, a successful build from the repository by the client’s nominee, environment variables and secrets transferred, domains and store accounts in the client’s name, third-party subscriptions transferred, documentation delivered, the developer’s access removed. If the other side refuses to cooperate, a legal notice setting out exactly what is owed under the agreement is usually the first step.

Source code escrow

Sometimes the client will not receive the source code at all. A developer may license an existing product with customisations, keeping the code; or a software vendor may supply a system on which the client’s business depends. The client’s risk is that the vendor stops supporting the software, goes out of business or is acquired, leaving the client with a system nobody can fix.

A source code escrow arrangement addresses this. The vendor deposits the source code and documentation with an independent escrow agent, updates the deposit with each major release, and the agent releases the code to the client if defined events occur — insolvency, cessation of business, or failure to provide maintenance after notice. The arrangement is set out in a three-party agreement. It is worth insisting on two things: that the deposit is verified from time to time, to show that it can actually be built into working software; and that the release events are objective, so that the client does not have to prove a dispute before it can get the code.

GST, TDS and foreign clients

Software development and related IT services are generally taxable supplies of services under GST when the supplier is registered, and the rate should be stated as extra to the fee unless the fee is expressly inclusive. A developer registered under GST should issue tax invoices in the proper form. When services are supplied to a client outside India, they may be zero-rated as an export of services if the statutory tests are satisfied.

Indian clients may be required to deduct tax at source from payments to developers, at rates that depend on how the payment is characterised, and the income tax law has been recodified with effect from April 2026, so section references in older contracts should be checked. The agreement should say that the client will deduct only as the law requires and issue certificates promptly, so the developer can claim credit. These are matters for your chartered accountant, and we do not give tax advice.

With a foreign client, the agreement should settle currency, exchange rate risk, bank charges, the governing law and the forum for disputes. Our freelance guide’s section on foreign clients covers the practical side of being paid from abroad.

Stamp duty and signing

Stamp duty on a development agreement depends on the state where it is signed; for a general agreement it is usually small. Stamping it properly means it can be admitted in evidence without first paying a penalty if a dispute ever arises. In Delhi, duty can be paid through e-stamp paper.

When a project goes wrong

We prepare the agreement, change documents and notices. Any dispute that goes to arbitration or court is for your advocate, whose fee is engaged and paid by you directly; we do not quote, collect or share it. You can find an advocate through our directory.

An example: an exporter’s order-tracking app

A garment exporter in Okhla wanted an app through which its overseas buyers could see the production stage of each order — cutting, stitching, finishing, quality check, dispatch — with photographs uploaded by floor supervisors. Its first attempt, with an agency engaged on a two-page quotation, had failed in the way described at the top of this page. For the second attempt, it structured the project differently.

It paid a small fixed fee for a four-week discovery phase, at the end of which it owned a requirements document, clickable screens approved by two of its buyers, and a list of integrations with its existing accounting software. The build was then priced as a fixed fee for the first release and time and material, within a monthly cap, for later features. The repository, the store accounts and the cloud project were created in the exporter’s name before development started, and the developer committed code weekly. The acceptance schedule listed twenty-four test scenarios written from the buyers’ point of view, with severity levels and a ten-working-day testing window.

When the exporter asked, halfway through, for the app to work in two additional languages, the change request process produced a price and a two-week extension, which it approved in writing. When a key developer left, the key personnel clause obliged the agency to provide a replacement and a week of overlap at its own cost. The first release went live eleven days late, all of which were attributable to the approved change and the exporter’s own delay in supplying buyer data, so no delay damages were payable and none were claimed. Two years later, when an investor asked for evidence that the company owned its app, the exporter produced the assignment, the list of background components and the open source schedule in an afternoon.

An example: a developer protecting its payment

A four-person development studio in Noida had built an online booking platform for a chain of clinics under a contract that paid most of the fee “on completion”. The client used the platform for three months, raised a stream of new requests, and paid nothing further, saying the project was not complete. The studio had no written requirements to show what completion meant.

For its next contracts, the studio adopted a master agreement with statements of work. Each statement of work attached approved screens and a list of acceptance scenarios. Payments were split into five milestones, each triggered by an objective event, and the acceptance clause provided for deemed acceptance after ten working days without a report of critical or major defects, or on the first use with real customers. Ownership of each release passed to the client on payment for it, with a perpetual licence to the studio’s booking and notifications modules, which were listed as background IP. Invoices carried interest for late payment, and the studio registered as a micro enterprise.

When a later client began using a release with its customers while disputing minor cosmetic issues, the studio pointed to the deemed acceptance clause and the severity table, fixed the cosmetic issues within the warranty, and was paid within the agreed period.

Where software contracts go wrong

Our fee and what you get

A software development agreement from us costs ₹4,999 and is ready in 2 – 5 days. We start from your project — what is being built, for whom, by whom, on what platforms, with what data — and draft for your side of the table, whether you are the client or the developer.

Swipe to see the full table
IncludedWhy it helps
Master development agreementOne set of legal terms for this and future projects
Statement of work template with milestones and acceptance criteriaEach project or phase priced and tested on its own terms
Change request formEvery change recorded with its cost and time
IP assignment, background IP licence and open source scheduleA clean chain of title that survives due diligence
Accounts, credentials and handover checklistControl of code and accounts, during and after the project
Security, confidentiality and personal data termsProtection for the client’s business and customers
Warranty and maintenance termsClear remedies after launch

Stamp duty, where needed, is extra at actual cost, and we tell you the total before we start. Tax treatment is for your chartered accountant. If a dispute ever reaches an arbitrator or a court, it is for your advocate, whose fee is engaged and paid by you directly; we do not quote, collect or share it.

FAQ

Software development agreement — questions people ask

What is a software development agreement?
A contract between a client and a developer or development company for building software — a website, mobile app, web application, internal tool or integration. It sets out what will be built, how and when, the price and payment milestones, how the work will be tested and accepted, who owns the code and other intellectual property, confidentiality, warranties and bug fixing, maintenance, and what happens if the project is delayed or ends early.
Who owns the source code of software I paid to have developed?
Not automatically you. Under the Copyright Act, the author of software is its first owner, and the rule that an employer owns work made by employees does not apply to an outside developer. To own the code, you need a written, signed assignment in the agreement, usually effective on payment. Without one, you may have only an implied licence to use what was delivered. Our freelance agreement guide explains the ownership rule.
Is a fixed-price contract better than time and material?
Neither is always better. Fixed price suits projects whose requirements are clear and stable: the client knows the cost, and the developer carries the risk of underestimating. Time and material suits projects where requirements will evolve: the client pays for hours actually worked and keeps flexibility, but carries the cost risk. Many projects combine them, with a fixed price for a defined first phase and time and material afterwards.
What is user acceptance testing, and why does it matter in the contract?
User acceptance testing is the stage at which the client tests the delivered software against the agreed requirements before accepting it. The contract should say how long the client has to test, how defects are reported and classified, how quickly the developer must fix them, and what counts as acceptance. Payment milestones are usually tied to acceptance, so a clear process avoids arguments about whether the work is complete.
What is deemed acceptance?
A clause providing that if the client does not report defects or accept the software within a stated period after delivery, or starts using it live, the software is treated as accepted. It protects developers from clients who delay acceptance indefinitely to withhold payment. Clients should make sure the period is long enough for genuine testing.
Can a developer reuse code from my project for other clients?
It depends on the agreement. Developers usually use their own pre-existing libraries, frameworks and tools, often called background IP, and want to keep the right to reuse them, while the code written specifically for the client is assigned to the client. The agreement should list what is background IP, grant the client a perpetual licence to it as part of the software, and say whether the developer may reuse general know-how.
What is the risk of open source software in my project?
Most modern software uses open source components, which is normal and useful. The risk lies in licence terms. Permissive licences, such as MIT or Apache, impose few conditions. Copyleft licences, such as the GPL, may require that software distributed with the component be released under the same licence, which can conflict with a client’s plan to keep code proprietary. The agreement should require the developer to disclose open source components and their licences.
Should the source code be handed over at the end of the project?
Usually, yes, together with documentation, build and deployment instructions, database schemas and credentials, so that the client or another developer can maintain the software. The best practice is for the code to live in a repository owned by the client throughout the project, with the developer given access, rather than being handed over at the end.
What warranty should a software developer give?
A reasonable warranty is that the software will perform materially in accordance with the agreed specifications for a stated period after acceptance, commonly one to three months, and that the developer will fix defects reported during that period free of charge. It usually excludes problems caused by the client’s changes, third-party systems or misuse. Longer support is covered by a maintenance agreement.
Can a client claim compensation if the project is delayed?
Only if the agreement provides for it or the client proves actual loss caused by the developer’s breach. Many agreements provide liquidated damages, such as a percentage of the fee for each week of delay up to a cap. Under Indian law, a court awards reasonable compensation up to the stated amount rather than treating it as automatic. Delays caused by the client’s late inputs should not count against the developer.
What is a change request process?
A procedure for handling changes to the agreed scope: the client requests a change in writing, the developer estimates its effect on time and cost, and the change proceeds only after both sides approve it in writing. It keeps the project from drifting and prevents disputes about whether extra work is paid. Our freelance guide discusses scope creep in general.
Is GST charged on software development services?
Generally, yes. Software development services supplied by a registered supplier in India attract GST at the applicable rate. Services exported to a client outside India can be zero-rated if the conditions for export of services are met. Payments may also be subject to tax deducted at source, depending on the nature of the payment. Confirm the treatment with your chartered accountant.
What happens if the developer disappears midway?
The agreement should protect the client in advance: code in a client-owned repository, payments linked to milestones rather than large advances, a right to terminate and receive all work in progress on termination, and an obligation to hand over credentials. Without these, the client may have paid for work it cannot use. If the developer still refuses, a legal notice is the first step.
Should an app developer publish the app from their own store account?
It is safer for the client to create and own the developer accounts on the app stores, cloud hosting, domain registrar and analytics services, and give the developer access. Apps published from the developer’s account can be difficult to transfer, and reviews and downloads may be lost. The agreement should require transfer of any accounts the developer created for the project.
Does the developer need to comply with the DPDP Act?
If the developer will access or process personal data for the client — for example, while testing with real data or while hosting and maintaining the software — it acts as a data processor, and the client, as data fiduciary, must have a valid contract with it. The agreement should cover data security, confidentiality, breach notification and deletion. Building privacy features into the software from the start is also good practice.
Does a software development agreement need stamp duty?
Stamping it under the law of the state where it is signed is advisable so that it can be relied on as evidence if a dispute arises; for most agreements the duty is modest. Electronic signatures are valid. Keep the signed agreement, the statement of work and every signed change request together.
What does your software development agreement service cost?
A software development agreement from us costs ₹4,999 and is ready in 2 – 5 days. It includes a master agreement, a statement of work template with milestones and acceptance criteria, a change request form, IP assignment and background IP terms, open source disclosure, warranty and maintenance terms, and a handover checklist. Stamp duty is extra at actual cost, and we tell you the total before we start. Any dispute that goes to arbitration or court is for your advocate, whose fee is engaged and paid by you directly.
Related

Technology contracts and intellectual property

SaaS subscription agreement End user licence agreement Freelance agreement Consultancy agreement Non-disclosure agreement Service level agreement Data processing agreement Copyright registration Trademark registration App store compliance documents Website legal pack Freelance agreement guide SaaS subscription guide Find an advocate All document guides

Write down what is being built before anyone writes a line of code.

Most failed software projects were lost at the contract stage: nobody recorded the requirements, the tests, or who would own the result. Tell us about your project and which side of it you are on, and we will prepare an agreement that lets both sides get on with building.

No payment now · Pay only after the work is done
Tis Hazari Court Complex, New Delhi, Delhi 110054
Keep reading

Related guides

SaaS Subscription Agreement — Selling Access, Keeping Trust Website Terms & Conditions DPDP Privacy Policy DPDP Act Compliance Review — Know What Your Business Does With Personal Data Before Anyone Asks Joint Venture Agreement — Business Ventures & Builder Collaborations Share Purchase Agreement — Buying a Company, Not Its Surprises
82 of 281 document services now have an in-depth guide199 still to be written · see them all →
We are writing these one at a time rather than generating them, which is why it is taking a while. 29% done.
Advocates & Clients

Need an advocate? Or are you one?

Two doors, both free. Clients search a factual directory of enrolled advocates. Advocates apply to be listed on it — no fee, no commission, nothing paid in either direction.

Looking for an advocate?

Search Bar Council enrolled advocates by what your matter is about, by court, or by city. Searching and sending a request are both free.

Are you an advocate?

Enrolled advocates anywhere in India can apply to be listed. Your entry is published only after we verify your enrolment number with your State Bar Council.

  • No listing fee, no subscription, no commission — no money moves in either direction.
  • A directory entry, not an advertisement: only the particulars the Bar Council permits.
  • You keep the client. We do not take instructions for you and take no share of your fee.

This directory carries no ratings, no reviews, no rankings and no fees — only the factual particulars the Bar Council of India permits, published at each advocate's own request. Browse the network · Terms for Advocates

Help