甲方与乙方签订《移动应用功能开发服务合同》,委托乙方密室空间(Android和IOS)功能开发事宜,乙方负责在60日内完成功能开发制作、应用调试检测(功能正常使用,乙方对后期项目出现bug有整改修复义务)等。
合同总价为6.3万,支付方式为:
合同签署之日起3日内支付合同金额的25%;乙方将该产品UI设计完毕,由甲方进行验收并书面确认3日内,支付合同金额55%;乙方将软件安卓和IOS测试版全部开发完成,乙方负责将两项产品后台数据绑定,系统软件生产环境部署上线,测试正常30天后之日起3日内,支付合同金额剩余款项。此外,合同还约定:

签约后,甲方共计支付合同款4.5万元。
争议
双方产生争议主要是因为app上架时,需要根据应用市场的审核要求进行修改(被要求改名等),需要乙方重新设计、部署源代码,因此导致交付周期延长。
甲方认为逾期原因在于乙方,而且乙方擅自转包,已构成违约,请求法院判决解除合同,判决乙方返还已付款4.5万元并支付赔偿金。
乙方不同意解除合同,认为自己已经完成开发任务,经原告测试合格并发布在应用市场。一方面,平台要求进行修改的名称和功能,其设计都源于甲方的设计要求,修改导致逾期,责任不在自己。另一方面,甲方也存在逾期付款的情况,因此开发周期和交付周期都相应顺延,不构成违约。
关于逾期付款:甲方应支付的第一笔款项是15750元,甲方只付了15000元;甲方解释的理由是自己有支付整数的习惯,这个属于履行瑕疵,而且乙方也没有提出异议,不应构成顺延开发和交付周期的事由。
乙方反诉甲方,请求法院判决甲方继续履行合同,支付第一笔进度款尾款750元及违约金,支付第二笔进度款尾款4650元及违约金,支付合同尾款12600元。
甲方不这么认为,甲方认为上架不等于交付成果合格,理由是:
第一,合同已经明确载明相应的功能清单,乙方在合同签订时并没有提出异议,也没有提醒原告所存在的问题。
第二,乙方开发能力有问题且擅自转包。
甲方提出乙方把Android功能开发部分外包,自行开发的苹果功能部分也是漏洞百出,在应用平台上线不能等同于完成涉案软件的开发工作。
第三,竣工验收时,乙方并没有进行成果展示。
质证
证据方面,甲方提供的证据无法证明乙方转包,相关主张不再细看。主要看在案证据能否证明乙方未按约交付。
甲方为了证明乙方没有按约完成委托项目,提交以下证据:
第三项,甲方和乙方法定代表人的通话录音。
经过质证,该组证据因法院当庭拨打法定代表人手机号无法拨通,真实性无法核实,法院不予认定。
第四项,短信聊天记录。
经庭审现场核对结合合同约定,可以证实甲乙双方通过上述QQ号码进行沟通,乙方截止x年x月x日尚在对涉案软件进行修改、功能测试的事实,可以证明乙方交付的涉案软件存在功能bug。
乙方为证明自己未违约,提交以下证据:
第五项:光盘一份,以证明乙方按照合同约定完成开发义务。
经过质证,法院认为该组证据无法证明乙方主张,乙方需要进一步举证「交付合格软件」的事实。
第六项:91市场发布截图、安卓市场截图、安卓发布成功日期截图、百度应用截图、百度应用上线成功通知截图、苹果市场发布截图,以证明乙方开发的软件测试合格,被告完成合同履行的开发任务。
经过质证,法院对证据真实性予以确认,对证明目的要做进一步审查。
判决
法院认为,乙方负有按约交付合格软件的主要合同义务,对第六项证据分析认定如下:
第一,app在应用市场上架,并不能当然等同于涉案软件已经合乎合同功能要求。
根据合同约定“系统软件生产环境部署上线,测试正常30天后之日起3日内,甲方支付合同金额剩余款项”,合同将测试正常作为甲方支付剩余款项的条件之一,市场应用平台上架不能当然等同于涉案软件已经合乎合同的功能要求。
第二,乙方无法证明其交付成果存在的功能上的bug,是否符合软件开发的合理范畴。
合同约定“功能正常使用,乙方对后期项目出现的bug有整改修复的义务”,即本同约定软件是允许合理范围内的bug存在,但前提是保证软件的功能正常使用,现甲方提供的QQ聊天记录中证明涉案软件实际存在功能上的bug,乙方也无法证明该bug问题是符合软件开发的bug合理范畴。
第三,从证据距离的角度而言,乙方系从事计算机软硬件开发等业务的公司,技术性和专业性比较强,其更容易提供涉案合同是否符合合同约定的证据,乙方直至庭审期间一直未提供软件符合合同约定或者甲方存在默认软件已经通过验收的相应证据。
综上,法院认为甲方以乙方未交付符合合同约定的软件致使合同目的无法实现为由解除合同,并无不妥,应当予以支持。
合同解除后,尚未履行的,终止履行;已经履行的,根据履行情况和合同性质,当事人可以要求恢复原状、采取其他补救措施,并有权要求赔偿损失。
法院基于软件开发市场的特殊性,乙方在标的软件开发过程中亦花费了大量的人力与物力,且考虑到甲方合同的履行情况,酌定乙方返还甲方软件开发费用4万元,驳回甲方其他诉讼请求,驳回乙方反诉诉讼请求。
回到标题的问题,APP在应用市场上架可以设定为付款条件,但不适合“视为完成交付”。
参考:(2016)浙0604民初2721号