软件开发者对已交付的软件实施功能锁定的性质认定
——重庆高院判决某仓储公司诉某传媒公司软件开发合同纠纷案
2023-08-24 09:10:07 | 来源:人民法院报 | 作者:张振华
 

  裁判要旨

  软件开发合同履行过程中,委托方未按合同约定支付进度款,开发者经催告无效后通过技术手段对已交付的软件实施功能锁定的,系行使法律规定的后履行抗辩权,不构成违约。

  【案情】

  某仓储公司与某传媒公司签订了仓储系统软件服务合同,由某传媒公司为某仓储公司开发一款仓储软件,双方对该软件应当具备的基本功能进行了书面约定,并在后续开发过程中通过微信群聊对具体需求进行了调整。合同约定了开发款的总金额及支付进度,即某仓储公司在合同签订后支付10%,在软件系统交付后支付30%,交付两个月出具验收报告时支付50%,交付一年后支付10%。合同履行过程中,某仓储公司仅支付首付款10%及软件系统交付后的进度款30%,未出具验收报告,也未支付后续款项。某传媒公司认为软件已符合验收标准,故在通过微信群,以及通过交付的软件系统发送催告信息无效后,通过技术手段锁定了该仓储软件系统,导致某仓储公司无法继续使用该仓储软件系统。某仓储公司遂以某传媒公司交付的软件不符合合同约定,且锁定软件导致合同目的不能实现为由,向某传媒公司发送了解除合同通知,之后提起诉讼,要求确认合同已经解除,并返还已付款。

  【裁判】

  重庆市第一中级人民法院审理后认为,通过某传媒公司的当庭演示以及微信群聊天记录的相关内容,可以认定其开发的软件系统符合合同约定,并已完成交付。出具验收报告是某仓储公司的义务,而非只要不出具验收报告,付款条件就不成立。合同虽没有明确约定某传媒公司在何种情况下可以锁定系统,但是某传媒公司已经通过多种方式告知某仓储公司使用期限,并要求某仓储公司履行付款义务,而某仓储公司拒不履行付款义务,某传媒公司以锁定系统的方式暂停提供服务系行使法律规定的后履行抗辩权,不构成违约,某仓储公司不能据此解除合同。遂判决,驳回某仓储公司的诉讼请求。

  宣判后,某仓储公司不服,提起上诉。重庆市高级人民法院审理后认为,某仓储公司既未能提供足以证明案涉软件系统不符合合同约定的证据,亦未能明确指出案涉软件系统存在的问题,一审法院据此认定案涉软件系统符合合同约定,并无不当。由于某仓储公司在案涉软件系统交付后既不出具验收报告也不支付进度款项,某传媒公司明确告知使用期限并多次催告某仓储公司履行付款义务无果后锁定系统,系行使法律规定的后履行抗辩权,故对于某仓储公司要求解除合同的诉讼请求,依法不予支持。遂判决,驳回上诉,维持原判。

  【评析】

  本案争议焦点在于软件开发者对已交付的软件实施功能锁定是否构成违约。

  1.开发者实施软件功能锁定的性质认定。通过技术手段对已交付的软件进行功能锁定,将直接导致软件开发的目的不能实现,对此种行为性质的认定直接影响由此引发的相关责任的承担。一种是认定为违约。软件开发的流程与节点虽然看似固定,但是实际的开发过程中,既会出现开发者因技术限制等原因无法实施原方案的情形,也会出现委托方增加、变更具体需求的情形。如果并非由于委托方的原因导致的付款迟延,开发者采取功能锁定措施的,则构成违约,委托方可要求其承担包括返还已付款在内的违约责任。因其锁定行为给委托方造成损失的,委托方还可以主张赔偿损失。

  另一种是认定为后履行抗辩。民法典第五百二十六条规定,当事人互负债务,有先后履行顺序,应当先履行债务一方未履行的,后履行一方有权拒绝其履行请求。据此,软件交付后,即进入试用、验收环节,如果委托方此前有应付款项未按约支付,开发者经催告无效的,则可以拒绝履行其后续的开发、维护义务,并对交付的系统进行功能锁定,这属于法定的后履行抗辩权。本案中,某传媒公司即是因为某仓储公司拒不验收,亦不支付约定节点的应付款项,在催告无效后,对交付的软件进行了功能锁定,系行使法定的后履行抗辩权,不构成违约。

  2.对功能锁定行为的合理限制。委托方委托开发软件,通常是为了部署在特定的平台,实现特定的功能需求,开发者通过技术手段实施功能锁定,对委托方影响巨大,理应对这一行为进行合理限制。一是谨慎实施。锁定系统功能的正当性前提,是委托方未履行在先付款义务,而与此相对应的,是开发者完成了特定的开发义务。由于开发过程中经常发生需求变更等因素,开发者是否满足了约定的开发需求往往存在争议。在软件开发是否符合需求尚存明显争议的情况下,开发者贸然对软件实施功能锁定,如果法院最终认定委托方未付款有合理理由,反而会加大开发者自身的违约责任。二是诚信告知。民法典第五百零九条第二款规定,当事人应当遵循诚信原则,根据合同的性质、目的和交易习惯履行通知、协助、保密等义务。据此,开发的软件在特定的平台进行安装后,委托方的相关职能即依赖于该软件实施。如果开发者拟对软件进行功能锁定,应当在合理期限内提前告知委托方。如果不经通知即对软件进行功能锁定,容易给委托方造成损失,严重的,还可能引发事故。三是情节相当。情节相当是指委托方的违约情节应当与开发者实施的功能锁定行为情节相当。如果违约方欠付款项相对于合同总金额比例较小,则通过起诉等方式要求委托方履行后续付款义务更为恰当。需要特别注意的是,如果软件功能锁定行为可能引发危害公共安全、损害公共利益等严重后果,则应排除适用,另寻救济路径。

  本案案号:(2022)渝01民初3254号,(2023)渝民终107号

  案例编写人:重庆市第一中级人民法院

责任编辑:张婧