中华人民共和国最高人民法院 民 事 判 决 书 （2019）最高法知民终642号 上诉人（原审被告）：北京云族佳科技有限公司。住所地：北京市北京经济技术开发区荣华南路2号院6号楼1205。 法定代表人：王鹏，该公司董事长兼总经理。 委托诉讼代理人：管兴武，上海大邦律师事务所律师。 被上诉人（原审原告）：瑞安市复古风电子商务有限公司。住所地：浙江省瑞安市上望街道九一村望荣北路82号。 法定代表人：潘美春，该公司总经理。 上诉人北京云族佳科技有限公司（以下简称云族佳公司）因与被上诉人瑞安市复古风电子商务有限公司（以下简称复古风公司）计算机软件开发合同纠纷一案，不服浙江省宁波市中级人民法院于2019年8月26日作出的（2019）浙02知民初4号民事判决，向本院提起上诉。本院于2019年10月25日受理后，依法组成合议庭，于2019年11月28日对本案公开开庭进行了审理。上诉人云族佳公司的委托诉讼代理人管兴武与被上诉人复古风公司的法定代表人潘美春到庭参加了诉讼。本案现已审理终结。 云族佳公司上诉请求：1.改判原审判决第一项为《软件外包开发合同》以及2018年1月8日签订的《补充协议》继续履行；2.改判原审判决第二项为驳回复古风公司的诉讼请求。事实与理由：（一）原审判决认定事实错误。云族佳公司在签订《软件外包开发合同》后，依约交付了UE/UI并得到复古风公司的确认，后因复古风公司提出增加7项功能需求，双方于2018年1月8日签订第一份补充协议，约定增加开发费用2000元，并延长M版交付日至2018年4月10日。2018年3月30日，复古风公司确认了云族佳公司提交的测试版（即B版）软件并支付了该版软件费用；4月3日，云族佳公司提前交付了M版软件，后根据复古风公司的反馈对软件bug进行修复，但在此过程中，复古风公司再次提出新增28项功能需求，并要求更改部分UE/UI设计，未对云族佳公司提交的M版进行验收确认。依照《软件外包开发合同》3.3条款、3.5条款，应视为复古风公司已经验收确认。云族佳公司已依约履行完毕合同和第一份补充协议，有权保留复古风公司已支付的相应价款92000元并向其主张支付余款10000元，该合同不再具备被解除的可行性和必要性。2018年5月15日，因复古风公司新增软件功能要求，双方签订第二份补充协议，约定新增加28个功能，开发费用增加8000元，工期顺延至2018年6月12日。6月4日，云族佳公司提交了包含新功能的测试版软件，但复古风公司在验收过程中再次提出新增功能需求和软件优化要求，涉及手机客户端增加30项以及后台管理增加十三大项功能，双方就此协商，欲签订第三份补充协议但最终未能达成一致，导致合同无法继续履行，在此情况下，云族佳公司于6月16日将部分修改了的软件交付给复古风公司。至此，双方已无继续履行合同之意愿，第二份补充协议应予解除。（二）原审判决对合同解除后的责任认定不当。因复古风公司不断新增软件功能要求而多次修改软件，其进行公证所使用的软件已完全不同于云族佳公司4月3日交付的M版、6月4日交付的新的测试版，该公证书所述软件bug和这两次交付已无关联，不能以此认定云族佳公司存在不合格交付的违约行为。在合同解除效力仅及于第二份补充协议的情况下，云族佳公司恢复原状之责任的最大范围是返还在第二份补充协议下实际收取的开发费用3000元；即便合同解除的效力及于原合同和第一份补充协议，复古风公司对合同解除负有一定责任，其应对云族佳公司履行合同支出的巨大人力成本承担相应的赔偿责任，原审判决未予考虑有所不当。 复古风公司辩称，请求驳回上诉，维持原判。针对云族佳公司2018年4月3日提交的软件版本，复古风公司于4月4日回复了两份邮件予以否认，但云族佳公司认为该版本就是完整的版本，双方无法达成一致才去上海重新签订补充协议。云族佳公司将其中的错误归因为复古风公司新增的功能，但实际新增功能很少。之所以2018年10月协商签订补充协议，是因云族佳公司的工作人员在软件版本还没有交付正确的情况下就已离职，造成项目不能正常进行，云族佳公司想欺骗复古风公司再签订补充协议以故意造成复古风公司违约。 复古风公司向原审法院提起诉讼，原审法院于2019年3月8日立案受理，复古风公司起诉请求：1.判令解除双方于2017年11月15日签订的《软件外包开发合同》以及分别于2018年5月15日、2018年1月8日签订的《补充协议》；2.判令云族佳公司返还复古风公司所支付的合同款项95000元；3.判令云族佳公司赔偿因其违约给复古风公司造成的经济损失24322元；4.判令云族佳公司赔偿复古风公司合同总金额的10%，即11000元。事实和理由：2017年11月，双方通过协商达成了《软件外包开发合同》，约定复古风公司委托云族佳公司开发菜场商城手机软件，云族佳公司应于开发完成后向复古风公司交付可以正常使用的软件版本，即由买方下载后通过手机APP平台可以购买生鲜菜品，复古风公司达到正常运营水平。后云族佳公司在约定期限内交付的软件验收版本无法正常使用，双方又签订了后续的补充协议。2018年6月16日，云族佳公司再次提交了所谓的最终版本，仍然无法正常使用。因逾期交付软件超过30日，依据合同，复古风公司享有单方解除权，云族佳公司应当退还复古风公司已支付的所有费用并赔偿合同总价款的10%。 原审法院认定事实： 复古风公司成立于2015年8月5日，注册资本30万元，经营范围为网上经营水果、蔬菜、水产品、生肉、生活用品等。云族佳公司成立于2013年7月17日，注册资本1500万元，经营范围包括计算机软件开发等。 2017年11月15日，双方签订《软件外包开发合同》及两份附件（附件一：项目建设工作进度与安排、价款、交付和验收方式、附件二：项目需求）。该合同甲方为复古风公司，乙方为云族佳公司，合同及两份附件约定如下内容：“甲方委托乙方开发菜场商城APP；乙方有义务根据甲乙双方确认的需求，完成软件的开发工作；若乙方自身原因，没有按合同日期交付甲方项目开发所包含的相关资源，每延期一天，甲方将扣除乙方全款的3‰违约金，上限为全款的10%，若乙方逾期交付超过30日，甲方有权单方免责解除本协议，乙方退回甲方已付的所有费用并要求乙方赔偿合同总金额的10%；项目总开发费用（含税）100000元；付款方式：合同签订后3个工作日内，甲方先支付乙方项目全款的40%，即40000元，乙方完成项目至UE原型及UI界面设计阶段后，甲方在3个工作日内支付乙方项目全款的20%，即20000元，乙方完成项目至测试版本提交阶段后，甲方在3个工作日内支付乙方项目全款的30%，即30000元，乙方最终提交产品并经甲方验收后，甲方在10个工作日内支付乙方全款的10%，即10000元；全部工作完成后的7个工作日内，甲方对全部工作成果进行验收并书面确认，因甲方未按时提供项目建设所需材料、图片或提供内容不完全，或未按时验收等原因导致的工期延误，责任由甲方自行承担，与乙方无关，甲方在规定的验收时限内未书面确认也未提出异议的，视为甲方验收合格，乙方在项目验收通过后，提供240日的免费售后服务，包括（BUG修改、人员培训、软件重装），240天后的服务方式及服务费用，双方另行协商并签署相应维护协议；验收标准：完成附件二中双方所确认的功能需求，该功能需求包括后续的协商后经双方签字认可的项目变动；工作成果的提交：全部项目建设工作经甲方书面确认，并且甲方支付完毕全部款项后，乙方交付工作成果或者上传至甲方指定网络服务器上；工作成果提交后，如果甲方在使用过程中需要对工作成果进行修改，甲乙双方需额外签订补充协议；项目需求包括：订单确认（用户直接购买或在购物车中可以进行订单提交，提交时需要进行订单确认，确认订单时用户需要选择收货地址、确认商品列表、订单金额、送货时间，确认信息无误后可以提交）、我的订单（用户可以查看自己的订单信息，通过不同的订单状态分类展示，如备货、配送中、已完成订单等）、通知消息（用户可以收到平台发送的各类推送消息内容，包含运营推广消息、订单通知消息、原生通知限文字内容）、商品管理（后台用户可以管理平台商品信息，进行商品上下架及商品价格、名称、商品库存等信息修改）、库存预警（采购清单中包含需要采购的种类以及需要采购的数量，确认采购后则同步库存）、订单列表（展示订单号、订单金额、订单对应所有商品信息等）、订单确认（管理员可以查看用户提交的订单进行确认）、财务统计-充值统计（管理员可以查看统计一段时间内的用户充值记录）、财务统计-消费统计（管理员可以查看一段时间内用户消费明细）、活动设置（管理员可以设置新用户注册活动是否开启以及赠送的金额数值）、运费设置（管理员设置订单满**金额包邮费，不满**金额增加**运费；设置最低起送价，低于要求不允许下单）。” 2018年1月8日，双方签订第一份《补充协议》。该协议约定了销售统计、服务店自取商品、停业状态控制与提示、用户分类、折扣设置及控制等新增功能，同时约定新功能增加费用（含税）为2000元。 2018年5月15日，双方签订第二份《补充协议》，主要约定如下内容：新增商品管理、订单管理等28个功能项目；工期顺延至2018年6月12日；新增及变更功能费用（含税）8000元。 2017年11月至2018年5月，复古风公司的法定代表人潘美春共向云族佳公司账户以转账方式支付95000元。 2018年10月22日，复古风公司的法定代表人潘美春向浙江省瑞安市公证处申请对相关电脑界面进行公证证据保全，公证人员对相关内容进行了录屏和截屏保存，并于事后出具了（2018）浙瑞证内字第5084号公证书，该公证书主要记载如下内容：登录“蔬菜商城管理后台”，进入订单管理，其中一份订单编号为201809092565564256，订单金额为11791.4，点开该订单，金额发生变化，为11776.4（12+11764.4）；形成采购清单，点击生成采购清单，生成清单前后库存数量显示没有变化；通过后台对商品价格等数据进行修改，修改后的商品进入“已下架”栏；无法将商品设置为除去运费后的30元起送。 另查明，双方提交的邮件和微信记录显示，双方就涉案软件的功能问题自2017年12月至2018年9月一直通过邮件和微信进行沟通。2018年5月云族佳公司通过电脑邮件向复古风公司发送了测试版本软件，2018年6月云族佳公司通过微信向复古风公司发送了手机测试版软件。复古风公司在庭审中表示，由于已另外找人开发了相关软件，涉案计算机软件开发项目已经失去了继续履行的可能性。 原审法院认为，本案当事人双方签订的《软件外包开发合同》（包括两份附件）及两份《补充协议》的内容不违反法律强制性规定，双方应当依照合同约定履行相应合同义务。原审争议焦点为：（一）涉案计算机软件开发合同是否应予解除；（二）合同解除后责任如何承担。 （一）关于涉案合同是否解除。根据《中华人民共和国合同法》（以下简称合同法）及其司法解释的规定，合同当事人可以依据合同的约定行使约定的合同解除权，也可以在法律规定的法定情形成就时行使法定的合同解除权。本案中，双方签订的《软件外包开发合同》在违约责任部分对单方解除权的行使作出如下约定：“若乙方逾期交付超过30日，甲方有权单方免责解除本协议，乙方退回甲方已付的所有费用并要求乙方赔偿合同总金额的10%”。双方在第二份《补充协议》中将交付时间顺延至2018年6月12日，根据已查明事实及双方的确认，云族佳公司确曾在该顺延后的日期前向复古风公司交付了涉案软件的电脑及手机测试版本，即本案中复古风公司根据合同约定的因乙方延期交付而行使单方解除权并要求对方全额退款并承担10%违约金的事实基础并不充分，故对其基于该项合同约定要求解除合同的诉讼请求依法难以支持。但另一方面，本案中涉案计算机软件开发合同权利义务关系已经实际终止，根据复古风公司陈述该合同也无继续履行的必要，因此依据合同法的规定，对于该种权利义务终止的合同，涉案合同应予解除，原审法院依法对涉案合同已经解除的法律状态予以确认。 （二）关于合同解除后责任如何承担。根据合同法及其司法解释的规定：合同解除后，尚未履行的，终止履行；已经履行的，根据履行情况和合同性质，当事人可以要求恢复原状、采取其他补救措施、并有权要求赔偿损失；合同当事人可以约定违约责任承担方式，合同解除不影响违约条款的效力；违约责任的承担方式有继续履行、采取补救措施或者赔偿损失等。本案中，根据上文，涉案合同予以解除，复古风公司已经实际支付了95000元，云族佳公司应当退还复古风公司已经支付的上述款项。关于复古风公司主张的违约责任及损失承担，其一，结合上文，复古风公司在本案中依据云族佳公司延期交付主张总金额10%的违约金的诉讼请求缺乏事实依据，依法不予支持。其二，合同中关于其他情形的违约责任承担方式并无明确约定。云族佳公司虽在补充协议约定的日期前交付了测试版本的涉案软件，但该软件实际运行时，确实存在无法实现《软件外包开发合同》中附件二中约定的订单及库存管理、活动设置等功能的问题，而双方在《软件外包开发合同》附件一中对交付标准约定为“完成附件二中双方所确认的功能需求”，即云族佳公司在涉案合同的履行过程中存在未按合同约定实现约定软件功能的违约行为。关于该违约行为，由于云族佳公司为规模较大的专业型计算机软件开发企业，涉案软件存在的功能错误或问题不属于不可修复的错误，理应可以通过合同约定的售后服务（BUG修改）对上述错误或缺陷加以解决，结合双方签订的两份补充协议、往来邮件及沟通记录，之所以造成合同无法继续履行，与复古风公司并未严格依照《软件外包开发合同》约定，不断要求云族佳公司增加新功能有一定程度的关联，即涉案合同的解除复古风公司方也有一定的责任，且复古风公司在本案中主张的经济损失2万余元与本案缺乏直接关联。综上，原审法院结合案件具体情况，对复古风公司主张的云族佳公司违约责任及赔偿经济损失的诉讼请求不予支持。 原审法院判决：（一）确认复古风公司与云族佳公司于2017年11月15日签订的《软件外包开发合同》（包括两份附件）以及分别于2018年5月15日、2018年1月8日签订的《补充协议》于判决生效之日起解除；（二）云族佳公司于判决生效之日起十五日内向复古风公司退还软件开发款95000元；（三）驳回复古风公司的其他诉讼请求。案件受理费2906元，由复古风公司负担788元，由云族佳公司负担2118元。 本院二审期间，云族佳公司提交了完整版的微信群聊天记录，用以证明在软件开发过程中云族佳公司已完成并交付相关版本，复古风公司多次提出修改软件的要求，以及双方磋商并准备签订第三份补充协议；提交光盘一份，证明云族佳公司已经准备履行第三份补充协议。对微信群聊天记录，复古风公司质证认可其真实性，但对关联性不认可。本院认证意见为，该微信聊天记录可以反映本案合同履行过程中双方沟通的有关事实，故与本案有关联性。对云族佳公司提交的光盘，复古风公司不认可其真实性，因双方未签订第三份补充协议，故该证据与本案无关联性，本院不予采纳。 复古风公司提交了双方往来的部分邮件和微信聊天记录，用以证明复古风公司经云族佳公司逼迫而确认B版本软件经云族佳公司，M版本软件未经复古风公司确认。云族佳公司经质证，对真实性无异议，但认为不能证明所述目的。本院对邮件和微信记录的真实性予以确认。 原审查明事实基本属实，本院予以确认。 本院另查明： 双方签订的第一份《补充协议》第二条的内容为：“因甲方新增项目需求导致乙方无法按照原协议项下约定的时间完成全部项目开发内容，全部项目针对新增部分的完成时间，开发工时增加12个人日，工期需顺延长12个工作日。” 双方签订的第二份《补充协议》第二条的内容为：“因甲方新增项目需求导致乙方无法按照原协议项下约定的时间完成全部项目开发内容，全部项目针对新增部分的完成时间，工期需顺延至2018年6月12日。” 2018年4月16日，云族佳公司向复古风公司发送修改后的M版本软件并要求验收。2018年4月19日至5月12日期间，复古风公司的法定代表人潘美春与云族佳公司持续沟通软件的问题，云族佳公司向潘美春发送邮件要求对需修改项目及UE修改内容作出确认，对潘美春反馈的相关软件问题提出供选择的解决方案，告知潘美春提出的部分需求因不在原沟通修改的范围内需另行沟通解决。2018年5月14日，云族佳公司向潘美春发送修改后的新版APP并告知测试，附下载地址和手机网页版链接。 二审庭审中，云族佳公司主张其已在4月16日交付符合约定的版本，复古风公司在七日内未验收完毕，就应视为合格。根据合同第四条约定，最终成果的交付以对方支付全款为前提，因复古风公司未支付全部价款，云族佳公司没有义务交付最终成果，现最终产品还在云族佳公司服务器上。云族佳公司认可未开发完成第二份《补充协议》约定的内容，同意解除第二份《补充协议》，不主张剩余价款。 本院认为，本案上诉争议焦点问题为：（一）涉案合同是否应当解除；（二）合同解除后的责任承担。 （一）涉案合同是否应当解除 合同法第九十三条第二款规定：“当事人可以约定一方解除合同的条件。解除合同的条件成就时，解除权人可以解除合同。”本案中，《软件外包开发合同》中约定“若乙方逾期交付超过30日，甲方有权单方免责解除本协议，乙方退回甲方已付的所有费用并要求乙方赔偿合同总金额的10%”，现复古风公司主张该条约定的解除合同的条件已成就，云族佳公司主张《软件外包开发合同》及第一份《补充协议》已履行完毕，不存在解除合同条件成就的问题，第二份《补充协议》因已无继续履行必要故可以解除。 本院认为，根据双方当事人的上述主张，判断涉案合同是否应当解除首先应明确《软件外包开发合同》和两份补充协议之间的关系。从形式上看，两份《补充协议》系双方签订《软件外包开发合同》后对该合同的补充；从内容上看，《软件外包开发合同》与两份《补充协议》均针对复古风公司委托云族佳公司开发菜场商城APP的相关事宜；从合同条款来看，双方虽明确签订《补充协议》系因复古风公司新增需求，但亦明确因无法按原协议约定的时间交付而需要顺延工期，顺延的工期系交付全部项目的时间，而非分阶段交付部分开发内容；从合同履行情况看，双方并非在复古风公司接受前一阶段履行结果的基础上签订补充协议，而是在复古风公司不断提出修改建议的基础上达成新的合意。因此，《软件外包开发合同》和两份《补充协议》的权利义务不能割裂来看，云族佳公司关于《软件外包开发合同》和第一份《补充协议》已履行完毕，第二份《补充协议》可单独解除的上诉主张不能成立。在云族佳公司2018年4月16日交付修改后的M版本之后，双方就涉案软件的开发时间和开发内容作出了新的约定，故云族佳公司2018年4月16日交付的软件是否符合《软件外包开发合同》和第一份《补充协议》的要求均不影响其应按第二份《补充协议》约定的时间和内容履行交付软件的义务。 在《补充协议》未对《软件外包开发合同》中解除合同的条款进行变更的情况下，仍应按该条款判断合同解除的条件是否成就。云族佳公司认可其未开发完成第二份《补充协议》约定的内容，故《软件外包开发合同》和两份《补充协议》应认定为整体未履行完毕，《软件外包开发合同》中约定的合同解除条件已成就，复古风公司有权解除合同，云族佳公司的上诉理由不能成立，本院不予支持。原审法院认为云族佳公司未违反合同约定，以权利义务关系已经实际终止，合同已无履行必要为由解除涉案合同，认定事实和适用法律有误，本院予以纠正。 （二）合同解除后的责任承担 从本案合同履行过程来看，虽然第二份补充协议约定的内容尚未交付与复古风公司提出新的需求有一定关联性，但双方之间根据新增需求情况和已开发完成的情况，就软件整体交付时间和要求达成新的合意，故复古风公司在合同履行过程中提出新的需求不影响合同解除后的责任承担。双方当事人在合同中明确约定复古风公司有权解除合同时云族佳公司应退还全部款项，由于云族佳公司逾期30日未交付软件亦会导致合同目的不可实现，故该条款并无显失公平之处，双方当事人应受此条款中约定的责任所约束。云族佳公司应当返还复古风公司已支付的款项95000元。原审法院以合同已无履行必要为由解除涉案合同并据此认定云族佳公司应当退还复古风公司已经支付的款项，适用法律有误，本院予以纠正。但云族佳公司的上诉理由不能成立，本院不予支持。 综上，云族佳公司的上诉请求不能成立，本院予以驳回。原审判决认定事实基本清楚，裁判理由虽有不当，但不影响案件结论。依据《中华人民共和国民事诉讼法》第一百七十条第一款第一项规定，判决如下： 驳回上诉，维持原判。 二审案件受理费2175元，由北京云族佳科技有限公司负担。 本判决为终审判决。 审判长  任晓兰 审判员  于志涛 审判员  崔 宁 二〇二〇年一月二十二日 法官助理李庆瑾 书记员王茜 裁判要点                            案  号                       （2019）最高法知民终642号                               案  由                       计算机软件开发合同纠纷                               合 议 庭                       审判长：任晓兰             审判员：于志涛、崔宁                                                     法官助理：李庆瑾                       书记员：王茜                               裁判日期                       2020年1月22日                               关 键 词                       计算机软件；合同解除；返还                               当 事 人                       上诉人（原审被告）：北京云族佳科技有限公司；被上诉人（原审原告）：瑞安市复古风电子商务有限公司。                               裁判结果                       驳回上诉，维持原判。             原判主文：一、确认原告瑞安市复古风电子商务有限公司与被告北京云族佳科技有限公司于2017年11月15日签订的《软件外包开发合同》（包括两份附件）以及分别于2018年5月15日、2018年1月8日签订的《补充协议》于判决生效之日起解除；二、被告北京云族佳科技有限公司于判决生效之日起十五日内向原告瑞安市复古风电子商务有限公司退还软件开发款95000元；三、驳回原告瑞安市复古风电子商务有限公司的其他诉讼请求。                               相关法条                       《中华人民共和国合同法》第九十三条第二款                               法律问题                       合同约定解除的适用                                           裁判观点                                                           当事人可以约定一方解除合同的条件。解除合同的条件成就时，解除权人可以解除合同。合同中明确约定了合同解除后的责任时，在无显失公平的情况下，当事人应受该约定的约束。                               注：本摘要并非判决书之组成部分，不具有法律效力。