中华人民共和国最高人民法院 民 事 判 决 书 （2021）最高法知民终341号 上诉人（原审被告）：山东帝云信息科技有限公司。住所地：山东省济南市天桥区历山北路19号山东黄台电子商务产业园1501室。 法定代表人：李富强，该公司总经理。 被上诉人（原审原告）：济南腾创电子科技有限公司。住所地：山东省济南市历下区经十路12588号名士豪庭5号市级公建1015。 法定代表人：刘垠坤，该公司执行董事兼总经理。 委托诉讼代理人：周朝云，山东乾慧律师事务所律师。 上诉人山东帝云信息科技有限公司（以下简称帝云公司）因与被上诉人济南腾创电子科技有限公司（以下简称腾创公司）计算机软件开发合同纠纷一案，不服山东省济南市中级人民法院于2020年12月29日作出的（2020）鲁01民初3093号民事判决，向本院提起上诉。本院于2021年3月10日立案后，依法组成合议庭，并于2021年4月23日询问当事人。上诉人帝云公司的法定代表人李富强、被上诉人腾创公司的法定代表人刘垠坤及其委托诉讼代理人周朝云到庭参加询问。本案现已审理终结。 帝云公司上诉请求：撤销原审判决，并改判驳回腾创公司的原审诉讼请求。其主要事实和理由：1.帝云公司已完成软件大部分功能模块的开发，实现了优惠券查询及返利、推广等核心功能。除受第三方影响的功能之外，软件总体结构框架及主要功能已实现，并交付给腾创公司进行测试；2.关于软件“进行优惠券查询及返利”功能，优惠券查询功能已经实现，但是否能查询到优惠券，依赖于平台是否针对个别商品设置了优惠券，至于腾创公司陈述的优惠券查询不准确，系页面显示位置错误，已通过技术调整解决。商品查询及返利功能的准确实现，依赖于具备淘口令查询权限的API，系属于第三方权限，应由腾创公司向第三方获取，腾创公司未能获取API且拒绝使用第三方的API，导致软件核心功能无法准确实现，应对此承担全部责任。 腾创公司针对帝云公司的上诉答辩称：原审判决事实认定清楚，适用法律正确，请求驳回帝云公司的上诉，维持原判。 腾创公司向原审法院提起诉讼，原审法院于2020年8月21日立案受理，腾创公司起诉请求：1.判令解除腾创公司与帝云公司签订的《产品服务合同》；2.判令帝云公司退还腾创公司技术服务费3万元及利息损失（自2019年2月20日起以3万元为基数按全国银行间同业拆借中心公布贷款报价利率计算至本案法律文书生效之日）；3.诉讼费用全部由帝云公司承担。 帝云公司原审辩称：1.帝云公司已完成软件大部分功能的开发、交付测试。帝云公司根据合同约定履行了合同项下的软件开发义务，累计完成并交付测试的软件占合同约定工作内容的比例约为80%，合同约定的软件核心功能模块基本完成，并将除了受第三方影响的功能之外的全部开发完成的测试版本链接到腾创公司指定的公众号，交给腾创公司进行测试。而腾创公司拒绝对帝云公司工作成果进行及时验收，导致合同履行期限被延长，腾创公司构成违约。根据合同约定，腾创公司应向帝云公司支付合同约定第二笔款项并承担违约金。2.部分功能未实现的原因在腾创公司，帝云公司不存在违约行为。软件无法实现的功能部分，须依赖于第三方软件、第三方接口和权限方面的支持如API和PID，这些变化技术上导致相关功能模块的开发无法实现，帝云公司已根据现有条件尽量向腾创公司提出替代解决方案或意见，但被腾创公司拒绝。根据合同约定，若出现第三方方面的障碍，应由腾创公司负责协调沟通与第三方的合作或使用，确保软件开发工作的基础得到满足。因腾创公司无法满足这些基础条件，导致帝云公司无法对相关功能进行开发。3.腾创公司拒绝按照合同约定按时向帝云公司交付的软件进行测试验收，导致合同停滞，系腾创公司违约，其无权要求返还预付款并主张违约金。综上请求驳回腾创公司的诉讼请求。 原审法院认定事实： 2019年2月19日，腾创公司（委托方、甲方）与帝云公司（受委托方、乙方）签订《山东帝云信息科技有限公司产品服务合同》（合同编号：DY20190215），合同的主要条款如下：“一、产品与服务内容。淘宝客联盟微信端15000元；淘宝客联盟PC管理后台45000元；项目总价60000元。二、双方权利与义务。2.甲方有义务向乙方提供系统所需电子版文字、清晰图片、影像等素材，并保证权限的有效性和材料的合法性。4.乙方有义务为甲方网站域名进行备案，甲方需提交备案所需资料。5.乙方有义务为甲方推荐第三方支付平台、短信平台和其他便于甲方开展业务的第三方机构和服务。甲方与第三方的合作条款由甲方与第三方另行签订。若甲方与第三方在合作过程中出现争议，均由甲方与第三方协商解决。6.乙方有义务为购买帝云产品的客户提供终身的免费安检服务和BUG修复服务。如需其他服务，需要甲方向乙方提供需求文档，由乙方评估技术难度、工期和价格，双方沟通一致后由乙方负责实施。三、付款方式。1.本合同合计总价款人民币6万元。2.本合同价款由甲方分3次进行交付。甲方应在合同签订后两日内，向乙方支付首付款人民币3万元。系统交付验收合格后，甲方应在两个工作日内向乙方支付人民币18000元，乙方将系统解析上线。甲方上线确认无问题后，应在五日内向乙方支付全部尾款人民币12000元。待全部合同款付清后，乙方将系统的源代码、域名、服务器权限、后台权限全部交给甲方。四、交付标准。1.乙方完成项目开发并进行详细内测后，交付甲方验收。乙方应积极配合甲方的验收对系统做出的完善，直至系统可以上线并正常运行。系统正常运作作为验收通过的标准。2.系统在验收完成，甲方结清全部合同款项后，乙方有义务将服务产品的服务器配置信息、接口文档等相关技术参数、指标等内容全部交付给甲方。3.甲方结清全部尾款后，乙方有义务将产品源码、数据库及接口说明文件全部交付甲方，由甲方检查代码完整性。五、违约责任与免责。2.签订合同后，甲方需要积极配合乙方完成项目，甲方拒绝验收，或单方面其他原因表示终止合作，乙方有权终止服务，甲方应承担由此给乙方带来的经济损失。3.乙方单方面终止合作，甲方不承担任何责任，乙方应承担由此给甲方带来的经济损失。4.乙方交付系统5个工作日内甲方进行内测和验收，甲方拒绝验收或延迟验收均视为验收通过。验收通过后，甲方应按照约定向乙方支付合同款项，甲方逾期支付，应按每逾期一日，支付合同总价款的1%的标准向乙方支付违约金。甲方付清约定的合同款项后，乙方将所有权限交付给甲方。5.乙方按照本合同约定的时间完成甲方的产品与服务。若因乙方原因导致项目逾期交付，应按每逾期一日，支付合同总价款的1%的标准向甲方支付违约金。若因甲方原因导致项目逾期交付，乙方不负任何责任。六、项目工期约定。经双方协商约定，本项目按照附件《多返利平台技术方案》功能列表开发，约定工期为50天，乙方自2019年2月17日至2019年4月7日为止，收到甲方首付款50天内向甲方交付验收合格的服务产品。七、合同生效与终止。2.本合同自双方签订之日起生效，至所选产品服务期限满时自然终止。” 合同后附《多返利平台技术方案》，对项目功能作出了具体的要求：“1.多返利平台简介。本平台是一款生活辅助类工具，针对于天猫、淘宝、京东的商品，本平台分为三部分：a.进行优惠券查询及返利b.推广c.后台可视化管理。2.进行优惠券查询及返利。客户首先复制天猫、淘宝或者京东宝贝链接或者淘口令，然后粘贴在多返利微信公众号输入栏，多返利微信公众号返回一个宝贝链接。客户复制这个宝贝链接然后打开淘宝或者京东进行宝贝购买就可以返利了。可提现时间为下个月22号。若期间客户取消订单或者退款，则返利失败。3.推广……4.后台可视化管理与功能实现。完全按照7返利公众号平台来做。” 2019年2月18日，腾创公司向被告帝云公司支付软件预付款3万元。 软件开发期间，经双方协商，暂停了京东平台返利及分享赚功能的开发。 2019年4月4日，腾创公司对帝云公司所开发的测试期间的系统中优惠券查询及返利功能进行了测试，并向帝云公司提出了修改意见。在测试时，腾创公司发现系统无法精确查找商品及价格，查询的返利数额不准确，没有返利。对于系统的其他功能未进行测试。 本案原审审理期间，原审法院组织双方对帝云公司所开发的系统进行了相关测试及演示。在手机淘宝APP中，随机选择商品，复制其链接至帝云公司所开发的公众号，公众号反馈返利信息及一条淘宝链接；复制公众号所反馈的链接，打开手机淘宝APP，手机淘宝APP自动跳转至商品页面。经多次测试，手机淘宝APP自动跳转页面均与最初随机选择的商品不一致。此外，在公众号商城中随机选择商品，点击复制链接，打开手机淘宝APP后，手机淘宝APP不能跳转至该商品页面。对手机淘宝APP不跳转的情况，帝云公司解释称该系统已数月未进行维护，所复制的链接已失效，故无法跳转至相应商品页面。 上述事实，有腾创公司提交的《山东帝云信息科技有限公司产品服务合同》《多返利平台技术方案》、付款凭证，帝云公司提供的QQ聊天记录截图及双方当事人陈述在卷佐证。 原审法院认为，腾创公司与帝云公司签订的《山东帝云信息科技有限公司产品服务合同》系双方真实意思表示，内容不违反法律强制性规定，合法有效，双方均应按照合同约定履行各自义务。根据合同约定，帝云公司接受腾创公司委托，为其开发“淘宝客联盟微信端”及“淘宝客联盟PC管理后台”软件开发。涉案合同为交付劳动成果的计算机软件开发合同，合同的订立和履行应当遵守合同法中有关技术合同的法律规定。本案中，腾创公司和帝云公司签订涉案合同中明确约定以系统正常运行作为验收通过标准，即合同旨在开发出可供上线正常运行的系统。根据在案证据，并经原审法院组织演示的情况，可见帝云公司所开发的软件系统存在明显缺陷，即《多返利平台技术方案》中所约定的优惠券查询及返利功能无法正常实现，项目整体上没有最终完成，无法实现合同的目的。腾创公司要求判令解除涉案合同，鉴于该合同的继续履行对双方已均无意义，且帝云公司同意解除合同，原审法院予以支持。 根据《中华人民共和国合同法》第九十七条规定，合同解除后，尚未履行的，终止履行；已经履行的，根据履行情况和合同性质，当事人可以要求恢复原状、采取其他补救措施，并有权要求赔偿损失。对于腾创公司要求返还合同软件并支付利息损失的主张，原审法院评析如下： 帝云公司所开发的系统分为两部分，一是淘宝客联盟微信端，二是淘宝客联盟PC管理后台，两部分共同组成一整体系统方可上线正常运行。其中，微信端功能通过关注公众号即可测试，管理后台则是通过网址及登录密码进行登录。根据双方合同约定，服务产品的服务器配置信息、接口文档等相关技术参数、指标、产品源码、数据库及接口说明文件等内容应在原告结清全部尾款后，由帝云公司交付给腾创公司。故在验收阶段，帝云公司只需将公众号、管理后台链接及密码告知腾创公司，使腾创公司可以进行测试即可，不需发生实质文档、安装包、程序、实物等的交付。帝云公司在QQ聊天中通知腾创公司可以用微信测试并将后台链接及登录密码告知腾创公司时，即可认定涉案合同项目进入验收阶段。对腾创公司称帝云公司一直未进行交付的意见，原审法院不予采纳。 帝云公司将系统交由腾创公司测试后，腾创公司对微信端优惠券查询及返利功能进行了测试，发现优惠券查询不准确且跳转页面有误。帝云公司解释称，优惠券查询不准确是系统漏洞，当时已修改并告知腾创公司；跳转页面有误是由于帝云公司未获取相应的API，无法实现淘口令搜索，帝云公司将系统改为以标题搜索，并将以标题搜索所得结果的首项作为跳转页面。关于帝云公司已修复系统漏洞的抗辩，在其提交的聊天记录中并未有明确告知腾创公司该漏洞已修复的记录，且原审法院组织双方演示涉案系统时该漏洞依然存在，故对该抗辩主张不予支持。根据帝云公司陈述，在系统开发期间，使用腾创公司资质申请了试用期API，且在其将系统交由腾创公司测试时，试用期并未到期。根据帝云公司提交的聊天记录，试用期权限相对较高，试用期结束后，第三方会根据试用期内实际有效渠道关系ID数量决定渠道关系ID数量及是否保留试用期拥有的相应权限。故在腾创公司测试系统时，腾创公司拥有一定的权限。且根据双方在原审法院演示的结果，复制公众号反馈链接至手机淘宝后，所得到页面的商品与最初选择的商品仅类别一致，品牌型号等均不同，标题也并不一致。故即使如帝云公司所陈述，该试用期API不足以支持淘口令搜索、仅能以标题搜索的情况属实，也未能得到标题一致或高度近似的商品链接的反馈。腾创公司与帝云公司签订《山东帝云信息科技有限公司产品服务合同》，旨在更方便开展淘宝客业务，一方面需吸引顾客通过腾创公司所提供的链接进行购买相应的商品从而获得佣金，另一方面则是通过推广发展下级淘宝客，即《多返利平台技术方案》中所约定的“进行优惠券查询及返利”及“推广”两项功能。并不一致。系统开发过程中经双方协商，暂停了分享赚功能，即《多返利平台技术方案》中所约定的“推广”功能。故“进行优惠券查询及返利”是涉案合同系统前端的唯一约定功能，也是整个系统的基础功能。本案中，用户在使用帝云公司所开发的系统时，无法通过该公众号反馈的链接购买到自己选中的商品，故整个系统即使上线运行也无法实现合同约定的功能。帝云公司未能在合同约定时间内开发出符合合同要求的系统，构成违约。 另一方面，在帝云公司将系统交由腾创公司验收后，腾创公司以不会操作且系统微信端存在缺陷为由，未对管理后台进行测试。根据帝云公司提交的聊天记录，其多次催促腾创公司对管理后台进行测试，并提出可替代的测试方法，但腾创公司依然未进行验收，属于无正当理由怠于验收的行为。 对于涉案合同项目未完成的原因，虽腾创公司存在怠于验收的行为，但就整个系统而言，微信端存在的缺陷足以导致整个系统不能达到合同约定效果。因此，由于帝云公司自身原因导致系统开发失败，应当将腾创公司所支付的软件预付款3万元退还。但腾创公司亦存在怠于验收行为，自身存在一定过错，对其主张的利息损失，原审法院不再予以支持。 原审法院判决：一、解除腾创公司与帝云公司于2019年2月19日签订的《山东帝云信息科技有限公司产品服务合同》；二、帝云公司于判决生效之日起十日内返还腾创公司合同款3万元；三、驳回腾创公司的其他诉讼请求。如果未按判决指定的期间履行给付金钱义务，应当依照《中华人民共和国民事诉讼法》第二百五十三条规定，加倍支付迟延履行期间的债务利息。一审案件受理费550元，由帝云公司负担。 二审期间，帝云公司向本院提交如下新证据：证据1.离职证明。拟证明腾创公司与路琳联系是在其离职之后；证据2.微信聊天记录。拟证明腾创公司知道第三方政策发生变化，因而取消推广功能。 腾创公司对帝云公司提交证据的质证意见为：对证据1的真实性有异议，同时也不能达到证明目的；对证据2的真实性无异议，但认为不能达到证明目的。 本院对帝云公司所提交证据的认证意见为：对其所提交证据的真实性、合法性予以认定，关联性和证明力将结合全案事实予以综合认定。 腾创公司未向本院提交新证据。 本院经审理查明，原审法院查明的事实基本属实，本院予以确认。 本院认为，结合各方当事人的诉辩意见，本案二审的争议焦点为：帝云公司是否存在违约行为。 《中华人民共和国合同法》第六十条规定，当事人应当按照约定全面履行自己的义务。本案中，帝云公司与腾创公司之间签订的《山东帝云信息科技有限公司产品服务合同》，系双方真实意思表示，且不违反法律法规的强制性规定，双方均应切实履行各自的权利义务。腾创公司在签订合同后已按约定支付了合同规定的款项，已履行合同义务。帝云公司则应按照合同规定完成涉案软件的开发，并按照合同规定的验收标准完成软件的相应交付工作。 帝云公司主张其已完成软件的大部分开发和相应交付工作，软件未实现原功能在于腾创公司资质不足，无法申请到足够的API，其不应当承担违约责任。对此，本院认为，首先，双方之间签订的合同中对于API由谁提供并未进行明确约定，仅在合同中规定乙方有义务为甲方推荐第三方支付平台、短信平台和其他便于甲方开展业务的第三方机构和服务；其次，帝云公司作为专业的软件开发企业，相对而言有更为专业的技术能力和更高的注意义务。腾创公司在对相关软件进行测试发现缺陷以致软件功能无法实现时，试用期API尚未结束，原审法院庭审现场测试时同样无法实现相应功能，帝云公司对此未能给出合理解释。因此，基于现有在案证据和已查明的事实，帝云公司尚未履行软件开发和交付义务，且合同约定的软件功能并无法实现，原审法院认定帝云公司存在违约行为，并无不当。帝云公司关于软件已交付、其不存在违约行为的主张，缺乏依据，本院难以支持。 综上，帝云公司的上诉理由不能成立，应予驳回；原审判决认定事实基本清楚，适用法律无误，可予维持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项之规定，判决如下： 驳回上诉，维持原判。 二审案件受理费550元，由山东帝云信息科技有限公司负担。 本判决为终审判决。 审判长  徐卓斌 审判员  董 胜 审判员  黄中华 二〇二一年六月十五日 法官助理周雷 书记员郭云飞 裁判要点                            案  号                       （2021）最高法知民终341号                               案  由                       计算机软件开发合同纠纷                               合 议 庭                       审判长：徐卓斌             审判员：董胜、黄中华                                                      法官助理：周雷                       书记员：郭云飞                               裁判日期                       2021年6月15日                               关 键 词                       计算机软件；开发合同；违约行为                               当 事 人                       上诉人（原审被告）：山东帝云信息科技有限公司；             被上诉人（原审原告）：济南腾创电子科技有限公司。                               裁判结果                       驳回上诉、维持原判。             原审判决主文：一、解除腾创公司与帝云公司于2019年2月19日签订的《山东帝云信息科技有限公司产品服务合同》；二、帝云公司于判决生效之日起十日内返还腾创公司合同款3万元；三、驳回腾创公司的其他诉讼请求。如果未按判决指定的期间履行给付金钱义务，应当依照《中华人民共和国民事诉讼法》第二百五十三条规定，加倍支付迟延履行期间的债务利息。一审案件受理费550元，由帝云公司负担。                               相关法条                       《中华人民共和国合同法》第六十条；                               法律问题                       合同的履行                               裁判观点                       合同签订后，合同各方均应全面履行自己的义务。作为专业的软件开发企业，开发方相对而言有更为专业的技术能力和更高的注意义务。其未履行软件开发和交付义务，合同约定的软件功能无法实现的，应认定开发方存在违约行为。                               注：本摘要并非判决书之组成部分，不具有法律效力。