中华人民共和国最高人民法院 民 事 判 决 书 （2020）最高法知民终283号 上诉人（原审原告、原审反诉被告）：天津晟世琦达科技发展有限公司。住所地：天津市和平区和平路裕德里大楼21门-23门22门**。 法定代表人：王永全，该公司经理。 委托诉讼代理人：李文刚，天津知方律师事务所律师。 委托诉讼代理人：刘丽薇，天津唯尚律师事务所律师。 上诉人（原审被告、原审反诉原告）：天津凯拓未来科技有限公司。住。住所地：天津西青学府工业区才智道**海澜德大厦**楼**/div> 法定代表人：刘鹏飞，该公司总经理。 委托诉讼代理人：谷雨，天津金诺律师事务所律师。 上诉人天津晟世琦达科技发展有限公司（以下简称琦达公司）、上诉人天津凯拓未来科技有限公司（以下简称凯拓公司）因计算机软件开发合同纠纷一案，不服天津市第三中级人民法院于2019年12月19日作出的（2019）津03知民初460号民事判决,向本院提起上诉。本院于2020年4月2日立案后，依法组成合议庭进行了审理。本案现已审理终结。 琦达公司上诉请求：1.撤销原审判决，发回重审或改判凯拓公司立即退还上诉人人民币24万元（以下币种同），并立即向琦达公司支付违约金30万元，合计54万元整；2.一审、二审诉讼费用由凯拓公司承担。其事实和理由：1.认定事实不清，原审判决中违约天数认定错误，凯拓公司的违约天数应当为158天，而并非106天，凯拓公司的违约天数不能因为双方达成补充协议而对之前的违约天数不予计算，违约金的计算方式应当为3000元×158天，合计474000元，已经超过剩余360000元的尾款数额，故凯拓公司应当按照协议约定退还24万元并支付30万元违约金；2.凯拓公司的行为已经构成根本违约，琦达公司享有合同解除权。根据双方2018年7月23日签订的《婚嫁平台技术开发委托合同书》的约定，合同的开发期限从2018年7月23日起至2018年11月28日止，共计128个自然日，后双方于2018年12月10日组织验收时由于凯拓公司交付的开发成果存在严重缺陷，导致验收未能通过；2019年1月5日凯拓公司第二次交付项目开发成果，在功能上仍然存在严重不足，导致二次验收亦未能通过；2019年2月22日凯拓公司第三次交付开发成果时，仍未通过验收；2019年6月27日第四次最终验收时仍然不成功。合同约定的128自然日的工期，而由于凯拓公司的原因一再延期，直至2019年6月27日第四次验收仍然未成功，此时距离双方2018年7月23日第一次签订合同差不多过了一年的时间，远远超出了合同约定的128日的期限，完全不能实现琦达公司签订合同时的目的和预期。根据双方2019年6月27日签订的最终验收确认书确定，凯拓公司仍然存在178个BUG，导致最终验收不成功，并且本次验收为最终验收，即便存在问题，根据上述事实，鉴于此前的四次验收均未能通过，也不应当再次组织验收。由此可以看出，凯拓公司根本不具备开发上述软件的资质和能力，其行为已经构成了根本违约，琦达公司有权解除合同，凯拓公司应按照合同约定返还已付款项并承担违约责任。 凯拓公司辩称：2019年2月22日至2019年6月27日应当为125天。即便按照原审判决的方法进行计算，凯拓公司的违约天数也应当为125天-20天＝105天，而非106天。截止2019年6月27日，开发成果已可以上线运行，开发成果至今未能验收交付的责任在琦达公司而非凯拓公司。 凯拓公司上诉请求：1.撤销原审判决，改判支持凯拓公司全部反诉请求，或将本案发回重审；2.本案一审、二审诉讼费用由琦达公司承担。其事实和理由：1.原审认定事实不清，违约天数计算错误。凯拓公司认为，2019年2月22日至2019年3月15日和2019年6月17日至2019年6月27日两段期间为验收期间。根据合同约定，验收期间不计算在工期内，因此上述两段期间应当被排除在违约期间之外。因此，凯拓公司的违约期间应当为2019年3月15日至2019年6月17日，共94天。2019年2月22日至2019年6月27日应当为125天。即便按照原审判决的方法进行计算，凯拓公司的违约天数也应当为125天-20天＝105天，而非106天。凯拓公司的违约天数应当为94天，按照3,000元/天的标准计算则应当扣除94天×3,000元/天＝282,000元，剩余尾款应当为360,000-282,000＝78,000元，而非42,000元。2.原审判决适用法律错误，涉案合同第十三条第（四）项约定“双方在执行本合同过程中，任何一方违反本合同之约定，均为违约。违约方除向守约方赔偿外，还须承担另一方为取得此等赔偿而支出的所有费用，包括但不限于仲裁费、诉讼费、律师费、差旅费等。”琦达公司无正当理由拒绝接收开发成果和支付剩余尾款并向法院提起诉讼的行为已经构成了根本违约。凯拓公司有权依据合同约定向晟世公司主张律师费。凯拓公司关于剩余尾款的主张应当得到支持。凯拓公司在原审程序中主张并举证证明，截止2019年6月27日，开发成果已可以上线运行，开发成果至今未能验收交付的责任在琦达公司而非凯拓公司。原审法院对上述事实予以认可，但却“开发成果还未交付、未通过验收、未部署在证实服务器上”为由，对凯拓公司请求支付尾款的主张不予支持。在凯拓公司制作出能够上线运行的开发成果后，琦达公司应当接收开发成果并支付剩余尾款。琦达公司无正当理由拒绝接收开发成果和支付剩余尾款，不仅以行为表明其将不再继续履行合同且给凯拓公司造成了经济损失。根据《合同法》第九十四条、第九十七条和第一百一十三条规定，在琦达公司以行为明确表示不履行主要债务的情形下，凯拓公司有权解除合同并要求琦达公司赔偿损失，损失赔偿额相当于琦达公司因违约而给凯拓公司造成的损失即合同剩余尾款。 琦达公司辩称：凯拓公司根本不具备开发上述软件的资质和能力，其行为已经构成了根本违约，琦达公司有权解除合同，要求对方承担违约责任。 琦达公司向原审法院提起诉讼，原审法院于2019年7月4日立案受理。琦达公司起诉请求：1.判令凯拓公司立即退还琦达公司240000元；2.判令凯拓公司立即向琦达公司支付违约金300000元；3.本案诉讼费由凯拓公司负担。 凯拓公司原审阶段辩称：不同意琦达公司的诉讼请求。双方分别于2018年7月23日和2019年1月28日签订了涉案合同和涉案补充协议2个合同。在2个合同履行期间，凯拓公司均没有违约行为，而是琦达公司在2个合同均未到期之前，提出了解除合同，导致项目未顺利完成。 凯拓公司向原审法院反诉请求：1.判令琦达公司向凯拓公司支付剩余合同价款78000元；2.琦达公司承担凯拓公司本诉及反诉的律师费及相应税费共计10600元；3.本案诉讼费及反诉费均由琦达公司负担。 琦达公司原审辩称：不同意凯拓公司的全部反诉请求，请求予以驳回。事实和理由：1.凯拓公司违约在先。涉案合同约定交付期是2018年11月28日，从2018年10月29日到最后一次验收是2019年的6月27日，此期间一共是210个自然日，凯拓公司违约的时间实际是147天。按照合同约定，每天的违约金额是3000元。2.律师费和交通费、税费应由违约方承担，琦达公司保留向凯拓公司追索律师费的权利。 原审法院认定事实：2018年7月23日，琦达公司（甲方）和凯拓公司（乙方）签订涉案合同，约定：“依据《中华人民共和国合同法》及相关法律的规定，合同双方就【婚嫁平台技术开发委托合同书】项目（以下简称“委托合同”）的设计、开发、维护等事宜（委托/合作开发）（该委托项目属委托开发计划），经协商一致，签订本合同。本合同中所有提到的书面形式包括纸质书面、电子邮件形式；本合同中所有提到的通知、确认、验收等，除本合同条款明确约定外，包括但不限于口头、电话、IM、截图、视频、书面及电子邮件等形式；本合同中所有提到的接口标准包括：JSON形式；本合同中所有提到的UE是指用户体验，即产品原型图的交互设计；本合同中所有提到的PRD是指针对本项目的产品需求说明书；本合同中所有提到的UI是指用户界面，即我们看到的界面的设计及美观程度；本合同中所有提到的成果是指本合同履行过程中，乙方提交给甲方的关于委托项目的各阶段开发产物；本合同中所有提到的APP是指需要开发的可以安装在移动智能手机上的应用软件；本合同中所有提到的服务端是指需要开发的可以在浏览器内打开的软件系统，配合各个前端共同支撑整个系统的运作；本合同中所有提到的WEB端是指基于PC系统的浏览器打开的用于提供服务的前端或后台；本合同中所有提到的H5端是指在微信端能够为用户提供服务端的网页入口；本合同中所有提到的小程序端是指腾讯公司基于微信平台推出的小程序产品；本合同中所有提到交付是指乙方完成对应阶段的功能，甲方确认完成后，乙方将约定的资料、代码、账号等移交给甲方；本合同中所有提到的测试，是指软件在封闭开发完成后的测试版输出后，针对软件的页面、功能、稳定、兼容等方面进行检测是否符合合同约定。一、标的技术的内容、形式和要求：（一）甲方的权利和义务。1.甲方将与乙方积极沟通，向乙方提供详细的业务流程、文本、图片资料，以便乙方完成策划、设计和开发等工作。甲方对其提供的资料真实性、合法性承担法律责任。甲方应在签订合同后的【5】个工作日内将委托项目开工所需要的基本资料（如LOGO源文件、业务流程、设计要求等相关电子或纸质版资料）以书面形式给到乙方；……（二）乙方的权利与义务。……5.乙方有义务依据本合同第三条约定的需求、要求和标准向甲方提交阶段开发成果及最终开发成果进行验收，对不符合上述要求的，乙方有义务根据本合同的相关约定进行修改；二、应达到的技术指标和参数：委托项目开发中，对技术实现方案有特殊要求的，例如需要指定开发语言、开发工具、运行环境等，甲方需事先向乙方提出，如未事先提出，则乙方可以自行选择。委托项目开发的平台及系统运行环境要求如下：1.【Android】Android系统：4.0以上，未经修改的安卓手机系统；显示方式：竖屏显示；分辨率：480x800、540x960、720x1280；2.【iPhone】IOS系统：8.0以上；显示方式：竖屏显示；分辨率：640*960、640*1136、1334x750、1920x1080；3.【浏览器】360安全浏览器，Google、火狐、IE10及以上、搜狗等主流浏览器（备注：服务端兼容谷歌浏览器）；4.【小程序】小程序当前版本；5.【Server】操作系统：Centos7.0及以上；6.【数据库】MySQL5.6及以上、Redis3.x-4.x；7.【开发语言及工具】开发语言：JavaScript、PHP、HTML5、CSS3、JAVA；开发工具：webstorm、phpstorm、xcode、git、idea；开发框架：SpringBoot、SSM、Vue.js、thinkPHP5.x；三、研究开发计划：需求整理：乙方在收到甲方预付款后【20】天内，完成婚嫁平台的需求整理。输出、项目UE、项目UI、PRD文档、可执行接口任务、项目架构说明、项目规范标准、版本优先级文档；并在甲方书面确认后，逐步转入封闭开发阶段。封闭开发：封闭开发周期90天。（一）乙方在甲方确认UE和UI之日起的预计【15】天内进行程序项目前端页面编写，并提交页面效果到甲方。（二）乙方在完成静态页开发后【35】天内，完成B/S结构的服务端开发，基于PC端和APP端的商家版本开发，基于PC端和APP端的用户版开发。共计1+3+3,7个端的开发工作。（三）乙方在完成（二）中的开发需求后【20】天内，完成商家端WAP版本开发并接入公众号，完成用户端WAP版本开发并接入公众号，优化上述7个端的已知bug。（四）乙方在完成（三）中的开发需求后【20】天内，完成商家端小程序开发，完成用户端小程序开发，优化前面9个端的已知bug。项目测试：项目测试周期10天，甲乙方协同作业。乙方在完成封闭开发的全部需求后，集中测试全平台并修复已知bug。项目部署：乙方在完成测试并通过验收后，3天内将项目部署在符合项目要求的服务器环境中；项目交付：乙方在收到项目全部尾款后，5天内执行项目交付流程，交付清单如下：1.数据字典；2.全部源代码备份打包；3.接口文档；4.架构设计文档；5.测试用例；6.bug修复日志验收。项目质保：乙方在项目正式上线之日起，进入质保期，本项目质保周期为1年整。质保期间乙方有义务修复项目运营过程中发现的bug，但不包括功能的修改或增减。如需变更功能，则另行签订开发合同。配合、确认及验收约定：1.双方在履行合同时，甲方应在约定的期限内完成配合义务，其完成义务的期间应当在工期内进行扣除，乙方开发期间做相应延长；特别说明：封闭开发期间，如果甲方要求每阶段分别上线正式服务器环境，乙方配合工作导致的延期，应该在双方书面确认书中做相应的延长。2.双方应按照本合同明确约定的确认或验收期限（无明确确认或验收期限的，应在合理期限内）对对方提交的资料、阶段成果、最终成果等提交物的接收、内容、质量等进行确认或验收；在上述确认或验收期限内未能完成确认或验收，或者未予回复，或者未能以约定的形式回复的，视为提交物已在确认期限届满当日得到确认方或验收方的各方面均满足合同需求的确认或验收；3.如甲方在上述时间内未提出相关版本的修改意见或要求或验收，视为各版本在该约定期限届满时通过甲方测试；如甲方未能按约签署附件三《委托项目最终验收单》，正式版本的提交视为已完成委托项目的最终验收，委托项目进入质保期。四、委托项目的研究开发期限：（一）双方同意，委托项目的研究开发工期是指：自委托项目启动日起至本合同约定的验收期限届满之日；（二）本合同项下委托项目的研究开发工期共计【128】个自然日（不含甲方的确认期限），开发日期预计自【2018】年【07】月【23】日至【2018】年【11】月【28】日；（三）为避免歧义，双方明确：‘委托项目启动日’指乙方按照本合同第四条约定收到甲方支付的首笔款项，且乙方按照本合同第一条的约定收到甲方提供的全部资料及甲方完成委托项目启动的全部前提条件之日的下一个工作日；本条约定的开发日期起始日期为预计日期，如和委托项目启动日不符，应以双方约定的实际委托项目启动日为准。双方协商一致后确认：本合同预留【10】天无责误差期，即：在【128】天合同期外，如果乙方因为人员异动或其他原因导致的延期，在【10】天内不用承担任何责任，超出【10】天则按合同约定承担责任。五、研究开发经费、报酬及其支付或结算方式：（一）研究开发经费是指完成本项研究开发工作所需的成本；（二）报酬是指本委托项目开发成果的使用费和研究开发人员的科研补贴。本合同项下委托项目的研究开发经费及报酬所包含的费用为共计：￥600000，人民币（陆拾万圆整）（以下简称“开发总费用”）。开发报酬由甲方分四期支付乙方。具体支付方式和时间如下：（1）第一期付款：签订合同后【5】天内，甲方将开发经费总额的【10%】，即￥60000，人民币大写：陆万圆整。以银行转账方式支付给乙方，乙方可按甲方要求提前开具增值税普通发票。（2）第二期付款：甲方对乙方前期给出的UE、UI及PRD文档验收合格后【5】天内，甲方将开发经费总额的【30%】，即￥180000，人民币大写：壹拾捌万圆整。以银行转账方式支付给乙方，乙方可按甲方要求提前开具增值税普通发票。（3）第三期付款：根据本合同甲方提供的《委托项目需求说明表》中的内容开发完成，并成功通过甲方测试后【5】天内，甲方将开发经费总额的【40%】，即￥240000，人民币大写：贰拾肆万圆整。以银行转账方式支付给乙方，乙方可按甲方要求提前开具增值税普通发票。（4）第四期付款：根据本合同甲方提供的《委托项目需求说明表》中约定内容全部开发完成，并成功通过甲方测试，部署正式服务器（召开发布会）【5】天内，甲方将开发经费总额的【20%】，即￥120000，人民币大写：壹拾贰万圆整。以银行转账方式支付给乙方，乙方可按甲方要求提前开具增值税普通发票。……。十二、验收的标准和方式：（一）委托项目达到了本合同第二条所列技术指标按本合同的技术要求标准，采用测试用例和项目PRD文档（按附件二《委托项目测试用例》格式和附件六《项目PRD文档》中规定的细节）的方式验收，委托项目在合作期间，有关来往的文本文件经双方签字盖章确认后或确认的电子邮件均具有同等法律效力；（二）甲方在乙方提交验收交付物后的【5】个工作日之内没有提出任何需求范围内的bug问题或没有对开发成果进行验收，则视为甲乙双方均默认已经通过项目全部验收并签订附件三《委托项目最终验收单》，乙方合同义务全部履行完毕；（三）若委托项目在验收前，有自行解决合同约定软件所需的运行环境部署相关需求，甲方需根据乙方需要及时、准确提供合同约定软件所需的运行环境支持，如因甲方自行解决运行环境导致的委托项目延期和其他问题，乙方将不承担任何责任。十三、违约责任：违反本合同约定，违约方应当按照《中华人民共和国合同法》及相关法律有关条款的规定，承担违约责任。（一）合作期间中由于甲方原因导致工作延期，则重新由双方协商约定，并且甲方应向乙方补偿工期延长导致的费用，补偿标准为每延期一天，向乙方偿付本协议第四条所规定的合同总金额费用的【5‰】，因甲方原因导致的累计延期超过【5】个工作日的，乙方有权利单方面解除本合同；（二）由于甲方原因造成合同履行延迟的，乙方不承担任何责任，原合同期限自动顺延。但由于甲方原因导致相应批次款项逾期支付的，则应按超过合同周期每日承担合同总金额【5‰】的比例向乙方支付逾期违约金；（三）本合同履行完毕后两年内，双方不得聘请另一方员工，否则违约方应支付合同总金额的【50%】给守约方作为违约金。若还不能赔偿守约方损失的，守约方有权按照实际损失追偿；（四）双方在执行本合同过程中，任何一方违反本合同之约定，均为违约。违约方除向守约方赔偿外，还须承担另一方为取得此等赔偿而支出的所有费用，包括但不限于仲裁费、诉讼费、律师费、差旅费等；（五）任一方未能如期履约时，应每天按合同规定款项总额的【5‰】向对方支付违约金。但支付违约金并不免除违约方的其他合同义务；（六）如果任何一方没有实现本合同约定而受到本合同对方索赔时，应分清具体责任部分，需根据乙方需要及时、准确提供合同约定软件所需的运行环境支持，如因甲方自行解决运行环境导致的委托项目延期和其他问题，乙方将不承担任何责任。（七）如因乙方未按照运营级项目实现路线（包括软件开发语言、开发环境）要求实现本系统各项功能的，甲方有权不向乙方支付合同费用。乙方应退还甲方已付款项，并赔偿甲方合同总额50%的违约金。……。十四、技术支持与资料提供：……（三）乙方所开发的委托项目应完全满足《委托项目需求说明表》中约定，保证甲方正常使用；……。二十一、合同的解除和终止。（一）任意一方欲提前解除本合同，应提前通知对方，经双方协商签字同意后方可解除。有合同约定解除权的一方，在对方出现违约行为时可以行使解除权。解除权的行使应提前【5】个工作日以书面形式告知违约方，由此造成的损失由违约方赔偿。解除的法律效果：包括但不限于支付违约金、赔偿损失、追偿欠款、已经开发委托项目的经济补偿等；……。二十二、附件。（一）《委托项目需求说明表》；（二）《委托项目测试用例》（表格中未填写具体内容）；（三）《乙方公司营业执照》；（四）《委托项目最终验收单》（表格中未填写具体内容）；（五）《软件需求变更单》（表格中未填写具体内容）；（六）《项目PRD文档》（无具体内容）。” 2018年7月24日和10月11日，琦达公司通过银行转账的方式分别向凯拓公司支付60000和180000元，共计240000元。 2018年9月17日，双方分别签字盖章确认的用户端和商户端的《APP原型方案确认函》和《APP设计方案确认函》各2份。 在用户端《APP原型方案确认函》中载明以下内容：“一、乙方（凯拓公司）经过功能确定和需求整理，已于2018年8月7日向甲方（琦达公司）提交第一版婚托产品用户端APP原型。二、双方经确认、讨论、修改，乙方维持每天提交1版的进度，确定以2018年8月15日之设计效果为产品APP原型第一阶段最终效果，乙方可以进入第二阶段的UI设计工作。……。” 在商户端《APP原型方案确认函》中载明以下内容：“一、乙方（凯拓公司）经过功能确定和需求整理，已于2018年8月31日向甲方（琦达公司）提交第一版婚托产品商户端APP原型。二、双方经确认、讨论、修改，乙方维持每天提交1版的进度，确定以2018年8月31日之设计效果为产品APP原型第一阶段最终效果，乙方可以进入第二阶段的UI设计工作。……。” 在用户端《APP设计方案确认函》中载明以下内容：“一、乙方（凯拓公司）按照甲方（琦达公司）确定的婚托产品用户端APP原型，完成UI设计，已于2018年8月31日提交给甲方进行验收。二、双方经确认、讨论、修改，乙方维持每天提交1版的进度，确定以2018年9月17日之设计效果为UI设计阶段最终效果，乙方可以进入第三阶段的程序封闭编码工作。……。” 在商户端《APP设计方案确认函》中载明以下内容：“一、乙方（凯拓公司）按照甲方（琦达公司）确定的婚托产品用户端APP原型，完成UI设计，已于2018年9月17日提交给甲方进行验收。二、双方经确认、讨论、修改，乙方维持每天提交1版的进度，确定以2018年9月17日之设计效果为UI设计阶段最终效果，乙方可以进入第三阶段的程序封闭编码工作。……。”上述《APP设计方案确认函》和《APP原型方案确认函》的第三、四、五、六项的内容均为：“三、方案一经甲方签字确认即生效，方案确定后不再做大的功能改动。四、确认函生效后，如果甲方对原型设计方案有未尽事宜，应进行友好协商，以书面形式确立改动或补充条款，在不影响项目进度的情况下，并由乙方技术总监审批后方可进行修改。五、本确认书，邮件、照片、传真件有效。六、备注：1.请收到此传真、邮件后，接收单位及时回传，以免影响项目进度。三日之内未回传，即视为甲方同意乙方的设计方案。2.已发QQ、附件（设计稿）。” 《凯拓软件需求变更单》记载以下内容：“主联（交甲方）日期：2018-11-12；项目名称：婚托；合同状态：签约；项目状态：程序编写；甲方意见：【原需要】：1.买家端-服务订单，申请退款规则为：距离服务时间1月外退全款，距离服务时间半个月内退全款90%，距离服务时间1个星期内退全款80%，到服务时间后退全款的70%。2.商家端-服务订单，无保障金退回规则。3.商家端-服务订单，无取消订单功能。【变更需求】：1.买家端-服务订单，申请退款规则改为：在服务订单生效后，买家（服务使用方），如果出现买家单方面提前取消订单的情况，是取消订单时间距离双方服务约定发生日期的长短而不同：（1）买家因故提前1个月及以上单方面取消订单，无需扣除保证金。（2）买家因故提前1周-1个月单方面取消订单，订单取消方需扣除保证金的50%支付给对方。（3）买家因故提前1周以内单方面取消订单，订单取消方需扣除保证金的100%支付给对方。2.商家端-服务订单，添加保障金退回规则：在服务订单生效后，商家（服务提供方），如果出现商家单方面提前取消订单的情况，视取消订单时间距离双方服务约定发生日期的长短而不同：（1）卖家因故提前2个月及以上单方面取消订单，订单取消方不用退款。（2）卖家因故提前1-2个月及以上单方面取消订单，订单取消方需扣除保证金的50%支付给对方。（3）卖家因故提前1个月及以上单方面取消订单，订单取消方需扣除保证金的100%支付给对方。3.商家端-服务订单，添加取消订单功能：（1）改变了现有买家端和商家端的服务订单的逻辑。（2）‘在已缴纳的保证金中扣除一定比例的金额支付给对方，作为信用违约金’更改了退款逻辑，退款不仅退回缴纳金额，连带退回补偿金额。（3）买家端订单状态增加‘订单已取消’的状态，商家端订单状态增加‘订单已取消’的状态。（4）买家端增加系统消息-余额变动消息类型，增加订单消息类型；商家端增加系统消息-余额变动消息类型。反馈：1.同意进行需要添加和改动。副联（交研发）接收意见：1.按变更需要完成；2.时间插入原工期内。接收人：周莲。技术负责人：后端开发：周莲（主程）、郑鑫（订单逻辑）、王学强（消息相关）；关端开发：徐泽、刘蓉、魏萍、王海波。所需工时：7天。交付时间：预计2018-11-20。费用：本次免费。”琦达公司孟宪秋在甲方负责人一栏签字，签章栏处盖有琦达公司的印章。 2019年1月28日，琦达公司（甲方）与凯拓公司（乙方）签订涉案补充协议，约定：“本协议作为甲乙双方签订的《婚嫁平台技术开发委托合同书》（签订日期：2018年7月23日，签订地点：天津市西青区中北天软创业学院303，以下简称：原合同）的补充协议，在原合同的基础上进行签订。在合同进展过程中，甲方于2018年7月24日支付预付款项后，立项启动，乙方于2018年8月07日向甲方提交第一版软件原型（UE）、同时于2018年8月31日甲方确定验收通过原型（UE）验收。乙方于2018年8月31日向甲方提交软件设计图（UI）验收，于2018年9月17日确认验收通过。在UI验收通过的基础上，乙方于2018年10月10日完成了前端页面的编程工作后，甲方于2018年10月11日支付第二笔款项；项目转入封闭开发阶段，期间甲方提出合理需求变更1次，周期7天，费用0元。乙方根据自身情况提出本项目开发周期为128个自然日，截止日期为2018年11月28日。乙方于2018年12月10日向甲方提交第一次项目开发成果验收，乙方向甲方提供的验收成果包括买家端和商家端APP，其他合同中规定的买家端和商家端的PC版、小程序版、H5版均未向甲方提供，并且乙方所提交的验收成果在逻辑功能及用户体验上存在严重缺陷（如：购物车结算价格计算不准确、买家端APP定位无法实现、高德地图导航无法实现等诸多问题），导致本次验收不能通过。后经双方沟通协商后，甲方允许乙方继续开发完成本次验收中未提交的工作成果。乙方于2019年1月5日向甲方提交第二次项目开发成果验收，乙方向甲方提交的工作成果在功能上仍存在严重不足（如：系统交易部分出现生成的订单收货人联系信息为空白、商家上架商品无法修改库存、买家修改交易密码时出现密码明文显示等问题）。基于两次验收中，乙方所提交验收成果暴露出的问题，甲方认为乙方不具备履行合同的开发能力。甲方于2019年1月6日提出合同终止的提议，乙方于2019年1月7日停止项目。后经过双方的多次友好协商，双方本着友好合作，同时以相互信任和负责的态度为基础达成一致，就项目进行重新启动。甲、乙双方对项目重启内容约定如下：1.因乙方表示乙方具备完成本项目开发的技术能力，在接下来的研发工作中，如乙方可以实际完成本项目的开发工作并达到甲方验收要求，甲方不会主动解除婚嫁技术平台开发委托合同。2.根据原合同规定内容，乙方将在协议签订后15个工作日内重启项目，鉴于春节年假的特殊情况，乙方须于2019年2月22日前向甲方提交符合合同验收标准的功能列表。如乙方超过这个时间未提交项目相关验收功能表进行验收工作或未达到原合同中规定的标准，针对乙方违约行为将严格按照原合同违约金标准进行赔付。如乙方超出该时间未提交工作成果，将按照原合同延期赔付标准扣除乙方相应延期违约金，直到尾款全部扣完。如乙方提交的工作成果仍未达到合同验收标准，届时乙方需无条件向甲方交付所有已产生的研发成果，并结束原合同，根据原合同第七条，乙方须退还甲方所有已付预付款，并赔偿甲方项目总金额的50%。3.为保障甲方项目的用户体验和上线，乙方按照原合同220元/人/天的技术报价标准的50%（110元/人/天）为甲方提供优化服务（技术人员要求至少三年以上项目开发经验），服务费用按阶段性结算，直至将项目功能达到甲方认可的上线程度为止（具体费用和内容以需求变更单为准）。该版本上线后的功能增减或变更，再恢复到原合同约定的人天报价标准。具体功能及工期甲、乙双方另行规定。4.本协议未规定内容按照原合同规定执行。5.本协议作为原合同的补充协议，于原合同具有同等效力，甲乙双方签字盖章有效。” 2019年6月27日，琦达公司（甲方）的法定代表人王永全、产品经理孟宪秋与凯拓公司（乙方）的法定代表人刘鹏飞、婚嫁平台项目对接人张瑞博共同对“婚嫁技术开发平台”进行验收，双方在《项目阶段成果验收确认书》签字确认，在该确认书记载了以下内容：“一、软件开发验收项目名称：婚嫁技术开发平台。根据《婚嫁平台技术开发委托合同书》规定，乙方向甲方提交的最终验收成果应包括以下九个部分：手机APP端（Android、IOS）：买家版、商家版；微信小程序端：买家版、商家版；H5端：买家版、商家版；Web端：买家版、商家版；系统总后台。二、验收双方：甲、乙双方于2018年7月23日签署《婚嫁平台技术开发委托合同书》，乙方根据自身情况提出本项目开发周期为128个自然日，截止日期为2018年11月28日。乙方于2018年12月10日向甲方提交第一次项目开发成果验收，由于乙方所提交的验收成果在逻辑功能及用户体验上存在严重缺陷（如：购物车结算价格计算不准确、买家端APP定位无法实现、高德地图导航无法实现等诸多问题），导致本次验收不能通过。后经双方沟通协商后，甲方允许乙方继续开发完成本次验收中未提交的工作成果。乙方于2019年1月5日向甲方提交第二次项目开发成果验收，乙方向甲方提交的工作成果在功能上仍存在严重不足。后经过双方的多次友好协商，双方本着友好合作，同时以相互信任和负责的态度为基础达成一致，就项目进行重新启动，乙方应于2019年2月22日向甲方提交项目最终验收。乙方于2019年2月22日第三次向甲方提供软件验收功能清单文件，双方按照文件功能列表进行验收。经双方共同测试，验收成果仍然存在很多问题，导致验收不成功。问题见《婚嫁技术开发平台项目阶段成果验收确认书》。双方经过再次协商，甲方同意乙方继续将本次验收中存在的问题与bug继续修改，直至本项目能够达到《婚嫁平台技术开发委托合同书》、《婚嫁技术平台合同补充协议》以及《婚嫁技术开发平台项目阶段成果验收确认书》中所规定的全部验收标准。乙方于2019年6月27日向甲方提供《婚嫁技术开发平台》项目最终版软件验收功能清单文件，双方按照文件功能列表进行验收。经双方共同测试，验收成果仍然存在很多问题，如：各个端的搜索功能及筛选功能结果出现结果不正确；买家版APP中，抖音模式展示及全国接单展示中，出现服务内容显示不全（新用户注册登录后出现全国接单展示内容为空白）；买家版H5中，抖音模式服务展示，在安卓手机上出现视频播放后无法上下滑动，视频出现黑屏从而导致无法跳转至服务详情页，以及筛选排序后无法查看全部结果；买家版小程序，已付款的服务订单，在买家申请退款的情况下，出现退款金额计算不正确；商家版小程序，我的钱包中出现两张卡号相同的银行卡，并且将储蓄卡显示为信用卡；买家版H5中，输入支付密码后，无法完成提现；商家版H5中，退款流程不正确，退款流程不应与退货流程一致总后台版本推送没有实现；从而导致最终验收不成功。验收中出现的其他问题，见软件验收功能清单（见后附文件）。本次验收，共验收功能共1850个，其中存在bug与问题的共178个，本次验收期间乙方已修复完毕的bug，将保留到双方下一次验收时再进行核对，不在本次验收中再次验收。” 原审庭审中，凯拓公司陈述在2019年6月27日的验收过程中，对于验收中发现的bug即时进行了修复，但琦达公司拒绝在该次验收中对已修复的bug进行验收，并约定将保留到双方下一次验收时再进行核对。目前，涉案项目已经达合同约定的要求可以上线，但并未向琦达公司进行交付。 原审庭审过程中，凯拓公司使用手机对商家端APP进行演示，主张涉案软件程序可以在线上使用。 原审法院认为：琦达公司和凯拓公司签订的涉案合同、补充协议系双方真实意思表示，内容不违反法律的禁止性、强制性规定，应为合法有效。 综合双方当事人的诉辩主张，琦达公司认为凯拓公司违约158天，违约金按每天3000元的标准乘以158天，共计474000元，已超过未付尾款360000元，故凯拓公司应当根据涉案补充协议的约定，退还已付款240000元，并支付项目总金额的50%计300000元。凯拓公司则认为其违约94天，按照涉案补充协议的约定，违约金按每天3000元的标准乘以94天，共计282000元，尾款尚余78000元，故琦达公司还应支付尾款78000元。原审法院归纳双方争议的焦点为凯拓公司违约期间如何计算、涉案合同尾款360000元是否已经扣除完毕、双方的请求是否应予支持。 （一）关于违约期间即违约天数的计算问题。 双方在履行涉案合同过程中，琦达公司于2019年1月6日提出合同终止的提议，凯拓公司虽于2019年1月7日停止项目，但在2019年1月28日，双方签订涉案补充协议，双方约定重新启动涉案项目，凯拓公司将在协议签订后15个工作日内重启项目，凯拓公司须于2019年2月22日前向琦达公司提交符合合同验收标准的功能列表。如凯拓公司超过这个时间未提交项目相关验收功能表进行验收工作或未达到涉案合同中规定的标准，针对凯拓公司违约行为将严格按照涉案合同违约金标准进行赔付。如凯拓公司超出该时间未提交工作成果，将按照涉案合同延期赔付标准扣除凯拓公司相应延期违约金，直到尾款全部扣完。如凯拓公司提交的工作成果仍未达到合同验收标准，届时凯拓公司需无条件向琦达公司交付所有已产生的研发成果，并结束涉案合同，根据涉案合同第七条，凯拓公司须退还琦达公司所有已付预付款，并赔偿琦达公司项目总金额的50%。2019年2月22日的第三次验收不成功。以致双方在2019年6月27日，再次进行验收。双方均认可该次验收中仍存在178个bug与问题，在本次验收期间凯拓公司已修复完毕的bug，将保留到双方下一次验收时再进行核对，不在本次验收中再次验收。之后，琦达公司未再组织验收。 由于双方约定于2019年2月22日再次进行验收，但该日验收仍未成功，因此从该日起，凯拓公司已经构成违约。结合双方关于验收期顺延10日的约定，计算凯拓公司逾期交付成果的违约金应自2019年3月4日起算。 由于2019年6月27日的验收仍存178个bug与问题，但琦达公司对凯拓公司在该次验收时已修复完毕的bug未予验收，而是约定保留到在下一次验收再进行核对。但琦达公司未再组织双方进行下一次验收，由于双方无法继续进行验收的过错并不在凯拓公司，故违约期间的截止时间应在2019年6月27日。 综上，凯拓公司违约期间为2019年3月4日至2019年6月27日，共计116个自然天。另，根据涉案合同关于预留10天无责误差期的约定，该期间还应当减去10天无责误差期，故凯拓公司的违约天数为106天。 （二）关于涉案合同未付尾款360000是否扣除完毕的问题。本案合同总价款600000元，扣除琦达公司已支付的240000元，尚有合同尾款360000元。根据涉案合同及补充协议的约定，违约金按照3000元/天的标准计算，计3000元/天×106天＝318000元，故合同尾款尚余42000元未扣除完毕。 （三）关于双方的请求是否应予支持的问题。 2019年6月27日，凯拓公司开发的涉案软件已可以上线运行，但存在一些需要解决的bug与问题。由于琦达公司对于凯拓公司在2019年6月27日验收中已修复完毕的178个bug与问题并未组织再次验收，违反了双方的约定。未验收完毕交付软件并非凯拓公司的责任，琦达公司请求凯拓公司立即退还240000元并支付违约金300000元的请求没有事实依据，原审法院不予支持。 在涉案合同及涉案补充协议的履行中，凯拓公司存在迟延履行的违约行为，其向琦达公司请求律师费及税费的主张没有事实和法律依据，对凯拓公司的该项请求，原审法院不予支持。 根据前文所述，涉案合同尚有尾款42000元未付。根据涉案合同对研究开发经费、报酬及其支付的约定，合同尾款支付的前提是，凯拓公司要将涉案项目内容全部开发完成，并成功通过琦达公司的测试，并部署在琦达公司正式的服务器上。到目前为止，涉案项目开发成果还未交付，亦未通过验收，也未部署在琦达公司正式的服务器上，故凯拓公司请求支付尾款的主张没有事实依据，原审法院不予支持。 原审法院判决：一、驳回琦达公司的全部诉讼请求；二、驳回凯拓公司的全部反诉请求。一审案件受理费9200元，由琦达公司负担。一审反诉案件受理费875元，由凯拓公司负担。 经审理查明，原审查明的事实属实，本院予以确认。 二审中，双方当事人均未向本院提交新证据。 本院认为，根据双方当事人的二审上诉意见，本案二审阶段的争议焦点问题是：（一）凯拓公司违约天数的计算及涉案合同尾款360000元是否已经扣除完毕；（二）凯拓公司的迟延履行的违约责任和琦达公司的验收义务履行情况。 一、关于凯拓公司违约天数的计算及涉案合同尾款扣除数额 双方2018年7月23日签订涉案计算机软件开发合同，在履行涉案合同过程中，琦达公司于2019年1月6日提出合同终止的提议，凯拓公司虽于2019年1月7日停止项目，但在2019年1月28日，双方签订涉案合同补充协议，约定重新启动涉案项目，凯拓公司将在协议签订后15个工作日内重启项目，凯拓公司须于2019年2月22日前向琦达公司提交符合合同验收标准的功能列表，补充协议与原合同具有同等效力。2019年2月22日的第三次验收不成功。以致双方在2019年6月27日，再次进行验收。双方均认可该次验收中仍存在178个bug与问题，在本次验收期间凯拓公司已修复完毕的bug，将保留到双方下一次验收时再进行核对，不在本次验收中再次验收。之后琦达公司未再组织验收。由于双方约定于2019年2月22日再次进行验收，但该日验收仍未成功，因此从该日起，凯拓公司已经构成违约。结合双方关于验收期顺延10日的约定，计算凯拓公司逾期交付成果的违约金应自2019年3月4日起算。双方一致认为2019年6月27日的验收不成功，琦达公司对凯拓公司在该次验收时已修复完毕的bug约定保留到在下一次验收再进行核对。但琦达公司未再组织双方进行下一次验收。直到原审开庭时，双方未再次组织验收，故违约期间的截止时间应在2019年6月27日。从2019年3月4日起至2019年6月27日止，包括起止日，凯拓公司违约期间共计116个自然日。另，根据涉案合同关于预留10天无责误差期的约定，减去10天无责误差期后，故凯拓公司的违约天数为106天。根据涉案合同及补充协议的约定，违约金按照3000元/天的标准计算，计3000元/天×106天＝318000元，故合同尾款总额360000扣除318000元后，尚有42000元未扣除完毕。 二、凯拓公司的迟延履行的违约责任和琦达公司的验收义务履行情况 2019年6月27日，凯拓公司开发的涉案软件已可以上线运行，但存在一些需要解决的bug与问题。由于琦达公司对于凯拓公司在2019年6月27日验收中已修复完毕的178个bug与问题并未组织再次验收，涉案合同约定有效期限至2023年7月23日。涉案合同约定乙方在项目正式上线之日起进入质保期，质保期间乙方有义务修复项目运营过程中发现的bug。未验收完毕交付软件并非凯拓公司的责任，琦达公司表示没有继续履行涉案合同的意愿，琦达公司请求凯拓公司立即退还240000元并支付违约金300000元的请求没有事实依据，对此上诉主张本院依法不予支持。 在涉案合同及涉案补充协议的履行中，凯拓公司存在迟延履行的违约行为，支付剩余合同价款78000元没有事实依据，涉案合同应支付尾款扣除违约金后尚有42000元。根据涉案合同对研究开发经费、报酬及其支付或结算方式的约定，合同尾款支付的前提是，凯拓公司要将涉案项目内容全部开发完成，并成功通过琦达公司的测试且部署在琦达公司正式的服务器上。到目前为止，涉案项目开发成果还未交付，亦未通过验收，也未部署在琦达公司正式的服务器上，故凯拓公司请求支付尾款的主张没有事实依据，其向琦达公司请求律师费及税费的主张也没有事实和法律依据，对其上诉主张本院依法不予支持。 综上所述，琦达公司和凯拓公司的上诉请求均不能成立，应予驳回。原审判决认定事实基本清楚，适用法律无误，可予维持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项规定，判决如下： 驳回上诉，维持原判。 二审案件受理费10950元，由天津晟世琦达科技发展有限公司负担9200元，天津凯拓未来科技有限公司负担1750元。 本判决为终审判决。 审判长  徐卓斌 审判员  张新锋 审判员  邓 卓 二〇二〇年九月一日 法官助理周雷 书记员王倩倩 裁判要点                            案  号                       （2020）最高法知民终283号                               案  由                       计算机软件开发合同纠纷                               合 议 庭                       审判长：徐卓斌             审判员：张新锋、邓卓                                                     法官助理：周雷                       书记员：王倩倩                               裁判日期                       2020年9月1日                               关 键 词                       计算机软件；开发合同                               当 事 人                       上诉人（原审原告、原审反诉被告）：天津晟世琦达科技发展有限公司；             上诉人（原审被告、原审反诉原告）：天津凯拓未来科技有限公司                               裁判结果                       驳回上诉，维持原判。             原判决主文：一、驳回琦达公司的全部诉讼请求；二、驳回凯拓公司的全部反诉请求。案件受理费9200元，由琦达公司负担。反诉案件受理费875元，由凯拓公司负担。                               相关法条                       《中华人民共和国合同法》第六十条                               法律问题                       合同的履行                               裁判观点                       合同签订后，双方当事人应依照合同约定全面履行合同义务。                               注：本摘要并非判决书之组成部分，不具有法律效力。