当事人信息
上诉人(原审被告):淄博海智物联网科技有限公司。住所地:山东省淄博市张店区共青团西路270号鲁中国际创科中心二楼。
法定代表人:田鹏昌,该公司总经理。
委托诉讼代理人:俞高华,该公司员工。
委托诉讼代理人:韩旭吉,山东言博律师事务所 律师。
被上诉人(原审原告):山东学也互联网科技有限公司。住所地:中国(山东)自由贸易试验区济南片区经十路汉峪金谷A5-5交易中心6楼608室。
法定代表人:王爱凤,该公司执行董事兼总经理。
委托诉讼代理人:司建彬,山东柳泉律师事务所 律师。
审理经过 上诉人淄博海智物联网科技有限公司(以下简称海智公司)因与被上诉人山东学也互联网科技有限公司(以下简称学也公司)计算机软件开发合同纠纷一案,不服山东省济南市中级人民法院于2020年8月10日作出的(2019)鲁01民初4067号民事判决,向本院提起上诉。本院于2020年12月7日立案后,依法组成合议庭通过询问的方式进行了审理。本案现已审理终结。
上诉人诉称 海智公司上诉请求:撤销原审判决,对案件发回重审或依法改判驳回学也公司的诉讼请求。事实和理由:第一,原审判决剥夺了海智公司的先履行抗辩权。涉案合同明确约定在测试APP出来之前,先交测试费用,海智公司才有交付测试APP的义务,测试APP经测试修正完成之后,学也公司再支付第三期费用。原审法院在学也公司未支付二期费用且测试APP尚未测试完成的前提下,就认定测试APP不符合约定,明显是故意偏袒学也公司。海智公司暂停APP的测试工作是行使先履行抗辩权,不构成根本性违约。第二,在二期费用未支付前,讨论测试APP包括哪些内容需要哪些功能并无意义。合同约定的开发项目包括安卓端APP,苹果端程序,网页版和小程序。开发完安卓端APP后,相当于苹果端也已经开发完毕。再以APP的界面和功能为模板制作小程序和网页端,才能做到各个客户端的协调一致。前期APP内容是否对接并不影响对APP功能的验证。原审法院认定APP“不具备测试条件”明显认定事实错误。第三,原审判决认定10100元的服务器租赁费和苹果开发者账号申请费由海智公司返还并无依据。第四,原审法院对过错方的认定并未尊重事实和证据,多为主观臆断。学也公司的项目负责人在合同履行过程中,对需要解决的事项互相推诿,不仅导致了工作进度缓慢,并最终使双方的合同约定无法继续进行。学也公司无故不支付第二期费用和索要APP源代码和开发文档,已经构成违约,故海智公司无法继续履行合同。作为过错方,学也公司解除合同毫无根据和理由。
被上诉人辩称 学也公司辩称:海智公司明显构成违约,拒不履行合同义务,学也公司有权解除涉案合同。原审判决认定事实清楚,适用法律正确,请求驳回海智公司的上诉请求。
一审原告诉称 学也公司向原审法院提起诉讼,原审法院于2019年11月15日立案受理,学也公司起诉请求判令:1.确认学也公司与海智公司签订的《系统购销合同》已解除;2.判令海智公司返还已支付的费用90100元;3.判令海智公司向学也公司支付违约金4320元;4.本案的诉讼费用由海智公司承担。
一审法院查明 原审法院认定事实:
2019年5月15日,学也公司(乙方)与海智公司(甲方)签订《软件系统开发合同》(合同编号YD2019051101),约定:一、开发软件使用许可。乙方拥有“教育系统”的永久使用权;乙方对上述软件拥有版权。乙方在后续运营平台时涉及相关法律事宜均与甲方无关。二、订交货条款。1.软件搭建时乙方根据甲方出具的《“教育系统”制定开发需求单》(以下简称“制定单”)的要求将详细内容提供,并由乙方确认为准。2.甲方根据“制定单”进行开发,甲方在交付前应根据本合同、“制定单”等所列的检测标准对该交付内容进行测试,以确认其符合本合同的规定,再通过邮件等方式打包发送给乙方。3.交付内容包括系统后台和APP软件,包含(但不限于)文档、用户指南、操作手册、安装指南和测试报告等,所交付的文档与文件应可供人阅读。4.乙方在接收上述的交付内容后,应立即对软件进行测试和评估,以确认其符合“制定单”的功能,并签订验收单回传给甲方,确认验收完成。三、产品的售后服务条款。1.保修期。甲方将产品交付乙方验收完成后,甲方免费维护系统的正常运行。试运行期间软件出现的任何问题与故障,甲方承诺在24小时内免费修复(包含节、假日)。且“系统”在试运营期间出现的故障修复后,新的试运营期从修复交付之日起重新计算。测试期间,由于系统本身产生的bug,甲方承诺承担修复系统所产生的所有额外费用。甲方承诺,自合同生效之日起向乙方提供一年的系统维护服务及相应的技术支持。服务到期以后如乙方若仍然长期运营并和甲方合作,双方再进行协商…。五、费用及付款方式。1.内容:“教育系统”永久使用权。(整套系统包括“教育系统”后台管理系统、安卓及苹果手机软件、下载网址,学也的门户网站,微信小程序)。2.结算方式:合同总金额人民币26万元。合同签署成功后,乙方需预付甲方订金总开发金额的30%即8万元;测试APP出来之前付5.5万元;测试APP出来之后付5.5万元;乙方收到甲方开发的“教育系统”五天内结算5万元;乙方需在2020年5月14日支付余下款项即2万元…。六、权利与责任。1.甲方向乙方提供“系统”进行初始安装时,乙方应预先提供可远程访问的计算机并安装指定的操作系统。2.乙方对“系统”拥有永久使用权。乙方对开发的“教育系统”拥有所有的知识产权,以及对源代码/技术文档等资料的所有权。在未经乙方的授权下,甲方不得复制或授权他人运用。3.甲乙双方在合作过程中有关的非公开信息,甲乙双方负有保密的责任和义务,该义务不因合同的解除或终止而结束。4.乙方应有责任有义务积极配合甲方做好售后服务及其他服务工作。5.甲方有权利和义务为乙方“教育系统”制作、发展及运营进行保密。如果甲方泄露乙方相关运营,乙方有权要求甲方进行赔偿。七、协议终止及续约。1.本合同任何一方不履行合同的,约定的另一方有权单方终止合同,并有权要求违约方就守约方因此遭受的损失承担全部赔偿责任。本合同至约定的合同期满后自动终止。…八、违约责任。1.本合同任何一方违约,因违约方的违约行为给对方造成损失的,违约方均应承担违约责任,赔偿守约方因此遭受的全部损失。乙方未按约定支付货款的,每逾期一日,甲方有权要求乙方支付未付金额0.1%的违约金。甲方开发不能按期交付的,每逾期一日,乙方有权要求甲方承担未付金额的0.1%的违约金,并继续履行本合同所规定的义务。软件开发周期为两个月,自乙方确定APP界面图稿后开始计算。合同签订后七个工作日甲方出具APP界面图稿。九、免责条款。因不可抗力致使合同目的不能实现的;因非软件系统等外部因素而导致不能正常使用的;乙方迟延履行合同主要义务,经催告后在合理期限内仍未履行;乙方有其他违约或违法行为致使合同目的不能实现的;乙方宣告破产或宣告解散;由于国家宏观政策所带来的不可逆的风险。…十二、合同的解除。甲乙双方有违反本合同规定的行为,双方均有权向对方提出解除本合同的请求。若需解除本合同,需提前十五天以书面形式通知对方,并在通知发出之日(以快递单发出之日起算)起十五天内结清因履行本合同而产生的债权债务。
学也公司分别于2019年5月15日、5月16日分别向海智公司支付开发费用5万元、3万元,共计8万元。同年7月9日,学也公司向海智公司另支付服务器租赁费是8100元,苹果开发者账号委托费2000元,共计10100元。
另查明:1.学也公司授权第三人李某与海智公司签订的涉案合同,合同模板由海智公司提供,后在李某的居中沟通下,双方对合同具体条款进行多次协商修改。2019年5月17日,李某将海智公司制作的系统需求列表发送给学也公司,列表载明:系统有“注册”“登陆”“退出登陆”“首页”“课程大数据”“预约”“个人中心”等七个功能点,其中,“首页”中有“首页”“推荐机构”“推荐课程”“免费课程”四个子功能;“个人中心”中有“个人资料”“我的订单”“我的预约”“我的足迹”“我的收藏”“我的分享”“客服中心”七个子功能。另外,系统还设有“基础设置”“代理商管理”“机构管理”“订单管理”“支付管理”“推送管理”“客服管理”等一级栏目,其中,“基础设置”中有“区域管理”“会员设置”“分类管理”“会员管理”“支付设置”“分成设置”等二级栏目,每项功能均对应有详细的功能描述,并注明开发的开始和结束时间。
2019年5月29日,海智公司将涉案APP界面设计图发送给了李某,并告知学也公司尽快确定界面设计。7月23日,海智公司将安卓版APP测试包发送给学也公司,学也公司回复“咱们这个APP还有好多功能没实现,大概多长时间能做完啊?”海智公司回复“界面功能看看有哪些需要完善的”“界面上有些调整”。之后,学也公司分别于7月25日、7月31日、8月3日、8月6日向海智公司书面发送修改要求,海智公司分别于7月31日、8月2日、8月5日向学也公司发送修改后的APP测试包。双方当庭认可上述APP测试包的发送及修改过程,海智公司确认在8月6日学也公司提出修改意见后,海智公司未再向学也公司发送新的APP测试包。经当庭对学也公司诉讼代理人手机上安装的涉案APP软件进行实际操作,发现点击软件界面上部分功能模块无法跳转进入相应开发页面。
2.海智公司当庭确认在双方发生争议前仅开发了安卓版APP,并申请了苹果开发者账号,其余内容,包括学也公司的门户网站、微信小程序等未予开发。
3.2019年8月6日,学也公司、海智公司就APP软件的继续开发及第二笔开发费用支付问题进行了协商。学也公司发送内容为:“…这只是我们的界面确认,测试版是架构全部搭起来,我们点开里面有后台有程序,这叫测试版。麻烦抓紧推进测试版吧,什么时候能拿到测试版费用取决于你们的开发速度”“费用该支付的我们肯定会支付,但是这个测试APP没有达到预期效果,并且这个测试版不具备任何功能,只有一个页面,我也不清楚咱们的后台功能有没有在开发”“现在用后台能否操作APP”“钱我们肯定不会少,但是我们反馈的问题得解决啊”。海智公司回复内容为:“界面确认是最初UI界面的时候,这次测试版界面给你们的时候我们后台是写了相应功能的,接下来我们技术的工作就是针对前端做一些技术对接,还有一些资质的审核,技术开发的流程就是先给你这样的测试版,不可能都开发好了再写这样的修改…”“正常APP开发都是要支付50%到70%的,当时你们说前期资金紧张先付30%,测试APP出来后再接着支付一部分费用,考虑到斐哥(李某)的关系我们就接了…”“后台在给你们APP时就给你们了啊”“后台可以操作但不能控制前端,接下来的工作就是做一些接口的对接和资质的审核”“…你那边商量一下把二期费用清一下,我这边就接着让技术加班改掉,继续接下来的工作”“学也APP早已内测完毕,希望你们给我们打款,我们将继续接下来的工作直至给你们交付完毕。如果学也公司一直拖欠款项,未按合同约定打款,我们将停止一切后续工作,保留法律诉讼权利”。
8月27日,学也公司向海智公司发出解除合同通知书,要求解除双方签订的涉案合同,并要求海智公司退还已支付的款项。海智公司当庭确认在当月底收到了该通知书但未作回复。学也公司未提供证明海智公司的具体签收日期。
一审法院认为 原审法院认为,第二笔开发费用的支付条件并未成就,首先,海智公司向学也公司发送的测试包不应认定为双方合同约定的测试APP。一是涉案合同对第二笔开发费用的支付时间约定为“测试APP出来之前”,由于涉案合同未对“测试APP”的含义作出明确界定,而双方对此又有不同理解,鉴于涉案格式合同系由海智公司提供,双方当事人对相关内容及条款的理解有分歧,应作不利于海智公司方的解释,也就是说,应对合同约定的“测试APP”作狭义解释,将其限定为“已完成功能开发的APP”。二是结合双方就上述测试包的沟通内容,即:学也公司询问“咱们这个APP还有好多功能没实现,大概多长时间能做完啊?”海智公司回复称“界面功能看看有哪些需要完善的”“界面上有些调整”,可以看出海智公司发送给学也公司的APP并未开发完成,其发送测试包的目的主要是界面调整后征求学也公司对完善界面功能的意见,而非交付学也公司进行测试。三是退一步讲,即使学也公司在查看界面功能并提出完善意见的同时能够同步了解部分已开发功能的运行情况,但鉴于部分功能需求并未开发,根据现有证据无法确定海智公司交付的软件已完全具备测试条件。其次,海智公司的开发内容不符合双方约定。一是双方在涉案合同中约定了多项开发内容,包括安卓版和苹果版APP、微信小程序、门户网站等,在双方对开发的先后顺序未作约定的情况下,海智公司应同步进行开发。而根据现有证据,海智公司仅就安卓版APP进行了部分开发,苹果版APP、微信小程序、门户网站等开发内容并未进行实际开发。海智公司当庭辩称双方口头约定部分内容列入二期开发,但并未提供相应证据,原审法院不予支持。二是根据双方合同约定,测试APP应包括安卓版和苹果版APP,而海智公司并未进行任何苹果版APP开发,更谈不上交付和测试问题。综上,海智公司认为学也公司拒绝支付第二笔开发费用违约在先的主张,不能成立。
海智公司所完成的现有开发内容并未达到双方约定的第二笔开发费用的支付条件。双方发生争议后,学也公司于2019年8月6日向海智公司明确表示肯定会支付开发费用,并发送信息“…麻烦抓紧推进测试版吧,什么时候能拿到测试版费用取决于你们的开发速度”进行催告,在此情况下,海智公司坚持索要第二笔开发费用,并明确表示“如果学也公司未按合同约定打款,海智公司将停止一切后续工作”。海智公司以学也公司未支付第二笔开发费用为由拒绝继续进行教育系统开发工作,构成根本违约,学也公司据此主张解除合同于法有据。鉴于学也公司已于2019年8月27日向海智公司发出解除合同通知书,海智公司当庭确认于当月底收到后未作回复,故学也公司要求确认双方签订的涉案合同已解除,于法有据,但原审法院认为解除日期应按2019年8月31日认定。
鉴于涉案合同解除系因海智公司违约所致,海智公司应全额返还学也公司交纳的费用,并支付违约金。违约金的数额,以双方合同约定的未付金额169900元为基数,按每日0.1%计算。根据现有证据,双方确定界面图稿及开发完成的具体时间无法确定,海智公司违约起算点应自其明确表示不进行开发时,即2019年8月6日开始计算至2019年8月27日,共计3737.8元。
一审法院判决 原审法院判决:一、确认学也公司与海智公司于2019年5月15日签订的《软件系统开发合同》于2019年8月31日解除;二、海智公司于本判决生效之日起十日内返还学也公司开发费用共计90100元;三、海智公司于本判决生效之日起十日内支付学也公司违约金3737.8元;四、驳回学也公司的其他诉讼请求。
一审案件受理费2161元,由学也公司负担161元,海智公司负担2000元。
本院认为 二审审理中,海智公司为证明涉案合同版本的修改过程以及相关条款的理解,提交了证人李某的证言并申请李某出庭作证。学也公司认为李某与海智公司存在利益关系,不认可李某证言的真实性,并提交录音作为证据。海智公司认为无法辨别录音中相关人员的身份,不认可该录音的真实性。本院认为,海智公司提交的证人证言主要反映的证人个人的主观理解,不具有客观性,而且在双方已经签订合同的情况下,应当以合同约定为准。故证人证言与本案缺乏关联性。海智公司提交的录音亦与本案争议缺乏关联性,在双方均不认可上述证据真实性的情况下,本院对上述证人证言、录音均不予采信。
本院查明 本院经审理查明,原审法院查明的事实基本属实,本院予以确认。
关于涉案合同签订的过程,本院另查明,2019年5月10日的合同版本中5.2条结算方式约定:合同签署成功后,乙方需预付甲方订金总开发金额30%;系统开发到中期付40%;学也公司对上述条款提出修改意见,建议将“系统开发到中期付40%”修改为“试运营交付前付一半,试运营成功后付一半”。最终李某签字的合同版本为2019年5月15日,5.2条的相应表述为“测试APP出来之前付人民币55000元;测试APP出来之后付人民币55000元。”
另查明,根据学也公司与海智公司2019年8月6日的聊天记录记载,学也公司:王总,我们学也APP测试版已经做完,按照合同约定,咱这边该打第二笔开发款项了,为了不影响接下来的开发进程,请王总安排财务打款吧。学也公司:我是不懂技术,但是我还不至于傻到这种程度,这个不叫测试版,这只是我们的界面确认,测试版式架构全部搭起来我们点开里面有后台有程序,这叫测试版。麻烦俞总抓紧推进测试版吧,什么时候能拿到测试版费用取决于你们的开发速度。海智公司:界面确认是最初UI界面的时候,这次测试版界面给到你的时候我们后台是写了相应的功能的,接下来我们技术的工作就是针对前端做一些技术对接,还有一些资质的审核,技术开发的流程就是先给你这样的测试版,不可能都开发好了再让你写这样修改,那样更耽误时间,每做一步都要调前段和后端的,你可以问一下你的技术,你所说的是正式版,你这个项目只支付了30%的费用,不可能等到正式版出来再结算二期费用的,这样任何一个公司都不会接的,人员的基本工作都不够。现在技术都找我结算费用,要不是斐哥的关系我都不可能接这个的。
本院认为,鉴于本案合同履行以及解除行为发生在《中华人民共和国民法典》实施前,故本案仍应适用《中华人民共和国合同法》(以下简称合同法)的有关规定。本案的争议焦点在于学也公司向海智公司支付第二期款项55000元的条件是否成就。
一、关于涉案合同第5.2条“测试APP出来之前付人民币55000元”的理解
首先,从合同约定的体系看,测试APP应当是符合合同约定功能标准的APP。涉案合同2.2条约定:“甲方根据《制定单》进行开发,甲方在交付前应根据本合同、《制定单》文件等所列的检测标准对该交付内容进行测试,以确认其符合本合同的规定,再通过邮件等方式打包发送给乙方。”第2.3条约定:“交付内容包括系统后台和APP软件,包含(但不限于)文档、用户指南、操作手册、安装指南和测试报告等,所交付的文档与文件应可供人阅读。”第2.4条约定:“乙方在接收上述的交付内容后,应立即对软件进行测试和评估,以确认其符合《制定单》的功能,并签订《验收单》回传给甲方,确认验收完成。”从上述约定看,测试APP应当是符合涉案合同《制定单》所列检测标准的APP,而且海智公司在交付测试APP前应当自行对照《制定单》对测试APP进行测试,以证明测试APP已经完成具备测试验收的条件。
其次,从涉案合同5.2条的修改过程看,学也公司对测试APP应当存在功能的要求。海智公司最初发送的合同版本采用的表述为“系统开发到中期”,这是一个客观的时间条件,不存在对软件功能的要求;学也公司所提的修改建议为“试运营交付”前,比最终的“测试APP”更为严格。最终采用的“测试APP出来前”实质上是上述两个付款条件的折中,从中可以看出学也公司对于支付第二期款项的条件应当是海智公司已经基本完成符合合同要求的APP,具备测试验收的条件。
因此,涉案合同5.2条“测试APP出来前”应当理解为海智公司已经按照合同约定完成功能开发,具备提交学也公司测试验收的条件。
二、海智公司提交的测试包尚不具备“测试APP”的条件
合同法第六十条第一款规定:“当事人应当按照约定全面履行自己的义务。”第六十七条规定:“当事人互负债务,有先后履行顺序,先履行一方未履行的,后履行一方有权拒绝其履行要求。先履行一方履行债务不符合约定的,后履行一方有权拒绝其相应的履行要求。”先履行抗辩权的行使在本质上是对违约的抗辩,发生后履行一方可暂时中止履行自己债务的效力,对抗先履行一方的履行请求,且对自己的逾期履行不承担违约责任。在先履行一方不能履行、拒绝履行、迟延履行时,先履行一方请求后履行一方履行合同义务的,后履行一方应当对此作出回应,对是否行使先履行抗辩权作出明确表示。后履行一方行使先履行抗辩权的,其拒绝履行的部分应当与先履行一方的不当履行相适应,不得超出必要限度。
首先,根据双方当事人2019年8月6日的聊天记录以及原审法院的勘验,海智公司发送的测试包并非具备涉案合同基本功能要求的APP,海智公司也确认其提交的测试包并非正式版。
其次,针对海智公司发送的测试包,学也公司明确提出不属于涉案合同约定“测试APP”的异议,并提出了相应的修改意见。双方也进行了多次修改完善,期间海智公司并未明确提出先履行抗辩权的问题。直到第四次修改,海智公司才提出需要学也公司支付第二期费用。
再次,即使测试包符合涉案合同“测试APP”的条件,在学也公司未支付第二期费用的情况下,海智公司明确拒绝继续履行的意思表示与学也公司未支付第二期费用并不相适应。一方面,学也公司并非明确表示拒绝支付第二期费用,只是认为海智公司发送的测试包未达到学也公司的预期,不符合涉案合同的要求,希望海智公司能够尽快完善;另一方面,第二期费用金额为55000元,相较于整个合同的金额占21%,前期已经支付30%,剩余款项均在测试版交付后支付。而且第二期费用是否支付与海智公司能否继续履行并无直接必然的关系,而且海智公司还可以通过拒绝交付源代码、根据涉案合同约定追究学也公司违约责任等方式保障自身合法权益。故即使学也公司应当支付而未支付第二期费用,海智公司拒绝继续履行超出了先履行抗辩权的合理限度,与未支付的第二期费用不相适应。
三、海智公司应当承担合同解除的违约责任
合同法第九十四条规定:“有下列情形之一的,当事人可以解除合同:(一)因不可抗力致使不能实现合同目的;(二)在履行期限届满之前,当事人一方明确表示或者以自己的行为表明不履行主要债务;(三)当事人一方迟延履行主要债务,经催告后在合理期限内仍未履行;(四)当事人一方迟延履行债务或者有其他违约行为致使不能实现合同目的;(五)法律规定的其他情形。”在海智公司发送的测试包不符合合同约定的“测试APP”要求的情况下,学也公司催告海智公司继续履行涉案合同,海智公司明确表示不再履行涉案合同,亦未有证据证明海智公司存在继续履行涉案合同的行为,故学也公司有权解除涉案合同。原审法院的相关认定,并无不当。
根据合同法第九十七条的规定,合同解除后,尚未履行的,终止履行;已经履行的,根据履行情况和合同性质,当事人可以要求恢复原状、采取其他补救措施,并有权要求赔偿损失。原审法院判令海智公司返还学也公司已经支付的开发费用并按照合同约定承担违约金,并无不当。学也公司支付的服务器租赁费、苹果开发者账号委托费亦是因履行涉案合同而支出的费用,在海智公司构成违约且合同约定违约金并不足以弥补上述损失的情况下,海智公司亦应赔偿学也公司的上述损失。原审法院的认定并无不当,对于海智公司的相关诉称意见,本院不予采信。
综上,海智公司的上诉请求不能成立,应予驳回;原审判决认定事实清楚,适用法律正确,应予维持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项规定,判决如下:本案裁判结果驳回上诉,维持原判。
二审案件受理费2146元,由淄博海智物联网科技有限公司负担。
本判决为终审判决。审判人员 审判长 刘晓军
审判员 凌宗亮
审判员 汤 锷
裁判日期 二〇二一年一月十八日
审判辅助人员 法官助理张琳洁
书记员王怡
裁判要点
案 号
(2020)最高法知民终1922号
案 由
计算机软件开发合同纠纷
合 议 庭
审判长:刘晓军
审判员:凌宗亮、汤锷
法官助理:张琳洁
书记员:王怡