中华人民共和国最高人民法院 民 事 判 决 书 （2020）最高法知民终48号 上诉人（原审被告、原审反诉原告）：上海商桥供应链服务有限公司。住所地：上海市青浦区华新镇华腾路1288号1幢2层G区246室。 法定代表人：陈风雨，该公司董事长。 委托诉讼代理人：桑成露，上海先诚律师事务所律师。 被上诉人（原审原告、原审反诉被告）：上海创软信息科技有限公司。住所地：上海市闵行区元江路5500号第1幢B642室。 法定代表人：季禾，该公司执行董事。 委托诉讼代理人：孙兆祥，上海市锦天城律师事务所律师。 上诉人上海商桥供应链服务有限公司（以下简称商桥公司）因与被上诉人上海创软信息科技有限公司（以下简称创软公司）计算机软件开发合同纠纷一案，不服上海知识产权法院于2019年9月26日作出的（2018）沪73民初687号判决，向本院提起上诉。本院于2020年1月6日立案后，依法组成合议庭,于2020年5月28日对本案进行了询问。本案现已审理终结。 商桥公司上诉请求：改判驳回创软公司全部诉讼请求，支持商桥公司全部反诉请求。事实和理由：一、本案交付的一期项目中，“班车提现管理”功能系后期开发，“油卡账户充值管理”“油卡充值管理”“平台任务监控”“用户提现管理”等功能均未能完全实现。《项目验收单》系由创软公司提供的格式文本，对“验收通过”一栏均是提前机打勾选的“是”，且仅在最后一页有签字，对具体的验收内容是否存在问题以及后期整改意见，均无相关陈述。因此，《项目验收单》不能客观反映涉案软件的实际情况，无法体现验收的过程，不能作为本案定案的依据。据此，创软公司没有提交充分的证据证明其履行了一期项目交付义务，构成违约。原审法院将该一期项目功能开发的举证责任转移由商桥公司承担，加重商桥公司举证责任，适用法律不当。二、一审判决认定创软公司不构成迟延履行合同义务，系认定错误。《商桥公交货巴运营系统项目开发服务工作说明书》第11条“初步里程碑计划”中约定一期阶段的截止日期为2018年3月1日，且商桥公司与创软公司从未合意就一期项目阶段的截止日期作过变更，但创软公司却未能于截止日前向商桥公司交付一期项目开发成果。即使《项目验收单》的真实签署时间为2018年5月28日，也不能证明商桥公司同意对交付时间延期，并不能免除创软公司的违约责任。综上，请求二审法院判如所请。 创软公司辩称：一、涉案软件一期成果已经交付给商桥公司，商桥公司验收合格后签署了《项目验收单》。且在此后双方沟通中，商桥公司均未提及软件存在功能缺失、与现实不符等问题。合同约定的一期阶段验收费用付款条件已经成就，商桥公司未按约付款构成违约。二、合同签订后，创软公司一直与商桥公司针对涉案软件的需求、进度、完善方案进行沟通，并未拖延项目进度。初步里程碑计划系合同签订前的初步预估，且开发工作需要哲盟公司配合，商桥公司提出了诸多要求导致商桥公司工作量加大、难度升级，并承担了原本不属于合同约定的数据迁移工作。创软公司将一期成果提交给商桥公司验收时，商桥公司亦未提及项目进度拖延一事。综上，原审判决正确，请求二审法院予以维持。 创软公司向原审法院提起诉讼，原审法院于2018年8月2日立案受理，创软公司起诉请求：1.判令创软公司与商桥公司于2018年1月19日签订的《商桥公交货巴运营系统项目开发合同》自2018年7月2日解除；2.判令商桥公司向创软公司支付拖欠的合同款人民币375000元（以下币种均为人民币，其中一期费用为300000元；二期费用按照50%的进度计算，为75000元）；3.判令商桥公司向创软公司支付延期付款的违约金（以合同金额750000元为基数，按日万分之五计算即每日375元，从2018年5月29日计算至实际履行之日止）；4.判令本案诉讼费用由商桥公司承担。 商桥公司向原审法院反诉请求：1.判令创软公司返还商桥公司已支付的合同款项225000元的50%，即112500元；2.判令创软公司承担本案全部诉讼费用。 原审法院认定事实： 一、涉案合同的签订等情况 2018年1月18日，创软公司苏良本向商桥公司陈根学等发送电子邮件，内容为:“附件为商桥公交货巴运营平台的原型设计文档、业务逻辑文档、开发服务SOW文档、开发服务合同，请审核，请回复确认签署时间。目前创软商桥项目开发组已经成立，美工已经在设计APP界面，开发人员已经在做开发前的准备工作了。等明天哲盟（指深圳市哲盟软件开发有限公司，以下简称哲盟公司）将源代码交接过来后正式启动开发工作。由于年底时间比较紧迫，希望商桥和哲盟能积极配合，感谢！”该邮件附件共4个，其中包括“商桥公交货巴运营系统项目开发服务工作说明书-SOWV1.0.3.docx”。 2018年1月19日，商桥公司（甲方）与创软公司（乙方）签订涉案合同，合同与本案有关的主要内容为：一、定义本合同中使用的下列词语具有如下含义：1.1“本合同”指合同正文及其附件，以及双方在本合同签署生效后达成的补充协议。本合同附件为本合同不可分割的部分，与合同正文具有同等效力。……1.4“书面形式”是指合同书、往来函件等可以有形地表现所载内容的形式。二、方案目的实现甲方建立完善的快箱运营体系，其中包括构建智能化的快箱卡班网络、支持动态车辆调度、支持空箱自动调拨、提供客户服务、车辆承运管控等……。三、服务内容基于甲方对智能快箱业务运营的需求，进行系统解决方案的开发服务，乙方为甲方提供：3.1公交货巴运营平台端开发服务；3.2公交货巴客户版APP开发服务（包含iOS版本、Android版本）；3.3公交货巴司机版APP开发服务（包含iOS版本、Android版本）；系统开发服务的验收标准与交付物以本合同第六章约定为准。五、权利与义务……5.3本项目总体需求以双方签字确认的项目工作说明书中双方对项目内容的约定为主要框架，除非双方协商同意，否则不得脱离和超出该框架。并作为本合同附件，与本合同具有同等法律效力。5.4乙方在取得了甲方提供的必要的信息和资料后，明确项目工作说明书，双方确认无异议后双方需在项目工作说明书上签字确认。5.5双方在项目工作说明书上签字确认后，乙方将依据本合同所约定的功能、目标与项目工作说明书完成系统方案的开发。5.6项目工作说明书作为本合同附件，是对本合同的详细描述和补充，与本合同具有同等法律效力。5.7双方在项目工作说明书上签字确认后，如果存在严重影响业务流转的功能缺陷，一方必须以书面形式（《需求变更建议书》）向另一方提出变更请求，双方协商同意后，该需求变更才能生效。5.8如果需求变更涉及合同及项目工作说明书以外需求，应以补充协议的形式对项目计划及咨询费用进行调整。5.9双方约定以项目工作说明书中的项目分期及交付约定中的时间计划执行；如因实际情况需要对该文档进行修改变更，一方必须以书面形式（《需求变更建议书》）向另外一方提出变更请求，双方协商一致后，该需求变更才能生效。……六、验收标准与交付乙方已经根据本合同所约定的功能、目标，完成本合同以及项目工作说明书中所述的系统方案的设计，其中交付物包含以下清单：过程文档（用户需求列表、方案里程碑计划表、方案工时评估表）、研发文档（数据库设计文档、系统设计文档、系统源代码）、管理文档（项目变更记录、项目会议纪要、项目验收文件）。七、价格与付款方式7.1本合同（合同及其附件规定的服务范围内）定制开发总价款为750000元，除非另有书面约定，本合同总价款付款进度如下：1.合同签订，支付30%，即225000元；2.项目工作说明书中约定的一期项目验收，支付40%，即300000元；3.项目工作说明书约定的二期项目验收，支付20%，即150000元；4.项目验收后满三个月，支付10%，即75000元。以上阶段付款均在甲方收到乙方开具符合国家税务规定的增值税专用发票后，5个工作日内甲方向乙方完成支付。……十、违约责任10.1双方应严格按照本协议的规定执行，一方违反本协议规定，另一方有权终止合作，并按本协议相关规定追究违约方责任。10.2如乙方不能按时完成本合同义务即提供合格的系统，或者根本不能提供有效的系统、服务，每延迟一天，按照合同金额的万分之五承担违约金；逾期三十天以上的，甲方有权单方解除合同，乙方应撤回所有的服务，并退回甲方已支付的全部费用。10.3如甲方无故拖延验收，并且费用支付延期在三十个自然日内，甲方每延期支付一天应额外按照合同金额的万分之五承担违约金；延期超过三十个自然日，乙方有权终止此合同，甲方仍应按照本合同约定及项目当前完工状况支付已发生费用。 创软公司提交的项目工作说明书载明：1.文档版本为1.0.3，文档日期为2018年1月18日。2.用户需求包括项目分期阶段与范围、功能性需求等。（1）项目分期阶段与范围：平台中的功能班车管理（子功能含班车资料管理、班车发车登记、班车发送管理、班车提现管理、油卡库存管理、油卡申请管理、油卡账户充值管理、油卡充值管理、班车杂费管理）、快件箱管理（子功能含货箱类别、货箱库存管理、货箱申请、租箱价格设定、共享管理、货箱线路申请、货箱建立交接、货箱结余、货箱异常科目设置、快件箱登记异常处理管理）、车箱匹配（子功能含平台任务监控、我要调车）、结算中心项下的子功能用户提现管理，均属于一期阶段开发内容；结算中心项下的开票申请管理、客户管理，以及平台的接口中心均属于二期阶段开发内容；司机版APP[功能包括快件箱（子功能为任务大厅）、运输单（子功能为运输单）、个人中心（子功能含我的余额、收入/提现、我的消息、客服中心、账号设置、注册/登录、认证）]的Android版本属于一期阶段开发内容，iOS版本属于二期阶段开发内容；客户版APP属于二期阶段开发内容。（2）功能性需求载明了每一个子功能的具体需求描述。3.初步里程碑计划：一期阶段，起始日期为2018年1月22日，截止日期为2018年3月1日；二期阶段，起始日期为2018年3月2日，截止日期为2018年4月27日；外部结项完成，起始日期为2018年4月30日，截止日期为2018年5月8日；内部结项完成，起始日期为2018年5月8日，截止日期为2018年5月10日。 二、涉案合同的履行等情况 涉案合同签订后，商桥公司按照合同约定向创软公司支付合同首期款项225000元。 涉案合同履行过程中，创软公司李志明和商桥公司靳慧玲一直就项目开发情况及遇到的问题通过微信进行沟通。2018年3月3日，靳慧玲向李志明发送微信“你能不能和开发说一下让他这几天来这边办公呀，这样交流就更加直接，有问题直接就提出来解决了，现在界面是都画出来了，但是功能都不能用，我们根本就没法测试。”李志明回复“我和苏总商量下，然后目前哪个功能不能用，你们在哪里说的。”同年3月8日，靳慧玲在“商桥哲盟”微信群里发送消息“我再重申一下……快件箱这一块是由我负责，出了问题我承担不起，但是你们谁延误了进度，我就找谁……今天已经8号了，今天的测试再不能正常进行的话，责任全由你们自己来背＠龚学明Simon＠创软-苏良本大家需要怎么配合，在群里积极交流……”“http://122.144.133.28:9090/”“＠沫子李（即创软公司李志明）这个是哲盟今天新给的地址，你们在这个里面找一下”。 2018年3月11日，创软公司李志明向商桥公司靳慧玲发送电子邮件，并抄送商桥公司陈根学，内容为:“年后人员是否在商桥驻场开发与延迟上线并没有直接关系。我们在3月1日如期交付了代码，而代码合并的事是由哲盟公司主导我司配合，这个责任不能全部让我们来背。3月7日给商桥组织培训后，提出许多细节方面优化的需求，我们也花了不少时间在处理。不过我们也不逃避延期上线的事实，明天起我将和主要开发人员驻场商桥配合业务部门进行最后的上线测试，下周五前完成正式上线发布工作，谢谢！” 2018年4月2日，商桥公司向创软公司发送《告知函》，内容为:“兹与贵司在2018年1月18日签订《商桥公交货巴运营系统项目开发合同》，贵司未如约履行合同内容，基于贵司与商桥、哲盟的服务关系，我司要求贵司给出项目开发的开发方案以及上线时间计划表，可根据情况协调时间，但多次催要未果，贵司已延期交付开发成果，特告知贵司本期开发费用延期支付。”同年4月4日，创软公司回复商桥公司，内容为:“……在项目实施启动阶段，我司提供给贵司的项目工作说明书文档（SOW）中已经约定了初步里程碑计划表。虽然贵司不愿签署，但是我司还是按照该计划推进项目。双方原计划约定第一期阶段的开发工作在2018年3月1日截止。虽然项目启动期间因哲盟公司没有按时给我们源代码，导致整体延期一周时间。而我们也是赶在2018年3月1日完成平台端的开发工作。因为该项目核心框架及大部分功能由哲盟公司开发，测试环境、DEMO环境以及生产环境均由哲盟负责维护，原协商合作方式由我司将功能模块做完提交给哲盟公司，由哲盟公司负责合并模块并发布上线。而实际上我司项目组从2018年3月1日起耗费7个工作日时间，配合哲盟公司进行代码合并工作。代码合并完成后，由贵司业务部门进行第一期阶段项目验收工作。在项目验收工作期间，发现存在业务部门与贵司信息中心部门给出的结算等相关逻辑不一致的情况。我司项目组成员与业务部门耗费近两周时间完成逻辑变更的工作，并完成对第一期阶段项目的验收工作。第一期阶段项目验收完之后，贵司将数据迁移、数据迁移测试以及发布上线的工作归为我司工作。我司可以接受该部分工作，但是贵司应理解，且给予我司时间。在老系统数据迁移期间，因哲盟公司忙于他们的工作任务，并没有快速配合老系统数据迁移工作。整个过程也耗费近一周多时间。以上是项目实施阶段出现的问题，导致项目没有按原里程碑计划进行。但贵司不应全部归咎于我司，应从实际发生的问题进行理解。目前，第一期阶段内容已经在商桥生产环境进行灰色测试。按照今天我司组织商桥信息中心、商桥业务部门、哲盟公司进行公交货巴（快件箱、班车）上线工作安排会议决定，新系统将在明天完成灰色测试，后天（2018年4月6日）上午10点做新老系统的数据切割工作。数据切割工作完成后，老系统公交货巴将不再使用。” 2018年4月13日，商桥公司靳慧玲向创软公司李志明发送微信“把之前的发生错误的交接可以同步处理掉吗”，李志明回复“历史数据的恢复吗？”“这个我咨询下开发”“让业务人员整理一下，给出交接单和结余的异常数据吧，我们来修复”。同年4月14日，李志明向靳慧玲、易林等发送电子邮件，并抄送陈根学，内容为:“历史数据的恢复方案：1.目前我们安排技术负责人将测试环境中两个模块的数据恢复到原始状态（老系统迁移的状态）；2.运营部负责安排人进行快件箱交接单数据的重新创建和发送以及接收（2018年4月8日至今的数据全部重新跑一次）；3.运营部负责比对交接单和结余的数据是否正常；4.确认无误后我们安排人将测试库的数据全部迁移到正式环境。具体安排详见计划表，请协助，方案是否可行？如果可行请告知，或者是否存在更好的解决方案，我们将尽力配合处理。” 2018年4月19日，创软公司李志明向商桥公司靳慧玲、易林等发送电子邮件，并抄送商桥公司陈根学，内容为:“以下问题处理进度如下：1.车辆费用管理中公交货巴数据已进行启用，＠靳慧玲请安排相关人员核实费用和数据是否正常……2.快箱库存管理中新老系统货箱使用次数不一致，正在处理中，预计今天更新结束；3.货箱建立交接菜单名称修改为货箱交接管理，处理中，预计今天处理完成；4.车辆费用管理搜索条件处理中；5.快箱库存管理增加“第一次分配日期”字段，预计明天进行处理。其余问题已处理完毕，请查验。”该邮件的附件为“进度报告.xlsx”。同年4月20日，李志明通过微信向靳慧玲发送“4.20工作周报.doc”。同年4月23日，靳慧玲通过微信向李志明发送“快件箱上线问题反馈和跟进表4-21.xlsx”，并于次日发送消息“油卡在分配的时候需要存储一个持卡对象，麻烦你跟凯哥讲一下，谢谢”。李志明回复“新增一个字段‘持卡对象’？”靳慧玲回复“嗯嗯”。李志明询问“这个优先级是？”靳慧玲回复“为了APP上面增加车牌绑定油卡后充值，班车后面吧”，李志明回复“明白，其余任务整体延后”，靳慧玲回复“嗯”。同年5月2日，靳慧玲向李志明发送微信“麻烦你跟凯哥讲下这些常用功能的问题吧”“还有我们那平台开发到什么进度了”“先把老系统有的功能加到新系统里来，后面的优化需求放到后面做”。李志明回复“二期：1.安卓司机版测试版已交付；2.平台端需要一个月；3.安卓货主版预期估时一个月；4.iOS司机版15天，货主版一个月。一期：1.前期提出的优化和问题已全部处理完毕；2.今天提出来的缺失和需求后续进行补充和添加。”“今天没回去，没网络发邮件了，明天到了重新补发，这个你先参考看下”。同年5月3日，靳慧玲通过微信向李志明发送“快件箱上线问题反馈和跟进表5月.xlsx”，并发送消息“因为15号班车费要提现，所以尽量在10号左右处理完后，我们再进行测试，确保提现没有异常”。 2018年5月7日，创软公司李志明向商桥公司靳慧玲、易林等发送电子邮件，并抄送商桥公司陈根学，内容为:“一、平台端：1.确认了问题和优化调整的功能部分；2.确认了各项任务的优先级，其中以数字代表顺序；3.详细查看进度报表，具体以实际情况为准。二、司机APP：1.需求逻辑确认……2.需要商桥提供的接口……3.优化部分……” 2018年5月15日，创软公司李志明向商桥公司靳慧玲发送微信“文件是整理的油卡充值这块需要做的调整逻辑，内容看下是否存在缺失”，并发送“新需求.xlsx”。通过微信回复“好的”。同年5月16日，李志明通过微信询问靳慧玲“货箱分配支付方式：分期支付的逻辑确认了吗？”靳慧玲向李志明发送“新需求.xlsx”。同年5月17日，李志明回复“关于货箱结余-分期支付的逻辑你和王工确认下吧，老系统：分期支付：利息费……管理费……保证金……货箱租金（单价）……”靳慧玲回复“嗯”。李志明询问“分期支付逻辑确认的如何了？”靳慧玲回复“就这样”。 2018年5月16日，创软公司李志明向商桥公司靳慧玲、易林等发送电子邮件，并抄送商桥公司陈根学，内容为:“司机APP和平台相关页面的操作手册于附件上，请查收。如有疑问，请及时反馈。”该邮件的附件为“司机APP用户手册.docx”。 2018年5月18日，创软公司李志明向商桥公司靳慧玲发送微信“我问个情况，咱这面的验收单现在怎么样？”靳慧玲回复“明天开启验收程序”。同年5月19日，靳慧玲通过微信询问李志明“油卡的工时估出来了吗？”李志明回复“一会我把油卡费的估时放在excel表发给你”“初步估算时间于附表中”“……大概需要两周，最后一个估时不确定，看王工那面的接口是怎么样的？如果只是往表里面写数据，只需要一天，但如果需要开发接口的话，就是现在的估时5天。”靳慧玲询问“6月1日能做好吧？”李志明回复“需要开发的东西还是比较多的”。靳慧玲询问“能赶赶不？”李志明回复“如果是下周开始开发的话，两周差不多，正好到6月1日。但是这个时间有点长，需要向良哥说一下，申请一下。”靳慧玲回复“嗯嗯，好的”。同年5月22日，李志明向靳慧玲发送微信“1.创建两个账户类型：司机账户、货主账户，然后司机和货主创建用户的时候我们往这个账户管理表生成一条司机或者货主账户数据；2.针对货主账户进行手机端充值的接口；3.针对货主账户进行手机端提现的接口。这三个事情，你安排下，看看什么时候给到我们这面，我们这面好进行下一步开发。”靳慧玲回复“OK”。 2018年5月21日，创软公司开具应税服务名称为“研发服务”，发票抬头为商桥公司的上海增值税专用发票三张，发票号码为No00772236-00772238，每张价税合计金额为100,000元，共计300,000元，该三张发票的备注栏均注明“公交货巴第二笔款”。次日，商桥公司的靳慧玲签收该三张发票，并出具签收单。 2018年5月23日，创软公司李志明通过微信询问商桥公司靳慧玲“微信、支付宝、银行三种方式，充值这块有没有接口？”同年5月25日，靳慧玲回复“财务回话了，还是独立开发吧”“账户等下我提供给你”。同日，靳慧玲向李志明发送微信“你明天过来拿验收单吧”，李志明回复“签字了吗？还是”，靳慧玲回复“下周也可以拿，签字”，李志明回复“今天签字了吗？我要不现在去拿……”靳慧玲回复“下大雨，你下周再来拿吧”“你可以跟苏总回话”“油卡的事情你还要跟一下哦”“我个人建议是先做油卡的再做租箱的”，李志明回复“嗯嗯，好的”“我这面协调下”“给苏总说了……他还说需要文档是吧，我这面呢整理下，发给你吧”。同日，李志明向靳慧玲发送电子邮件，并抄送陈根学等，内容为:“账户已收到，谢谢支持。附件是整理的一期的相关文档，请查收。”该邮件的附件为“商桥相关文档.zip”。同年5月26日，靳慧玲向李志明发送微信“班车费那一块有个问题，如果是手动登记的班车费，在发送管理页面点击了确认后，车辆费用就应该自动结余，但是现在新系统中就多了一步需要再在费用管理里面点击结余才能结算”“交易时间是结余时间，业务时间是发生时间，你和凯哥讲下，这两点有问题”。同年5月31日，李志明回复靳慧玲“这两个问题已经处理好了”。 创软公司提交的《项目验收单》记载的项目名称为“公交货巴运营系统项目一期”，验收项目包括软件和文档，其中软件“模块”包括前述项目工作说明书中明确的属于一期阶段开发的内容，文档为项目工作说明书约定的项目交付物，“验收通过”栏均勾选了“是”。验收结果：经甲乙双方共同通过对本项目验收的审核与确认，甲方（即商桥公司）确认乙方（即创软公司）所实施内容、进度和交付物等均已按照合同所规定的内容进行实施，并予以验收。《项目验收单》落款处甲方代表由靳慧玲签名，乙方代表由李志明签名，验收时间为2018年5月28日。 2018年5月28日，创软公司苏良本向商桥公司靳慧玲发送微信“我看到一期验收单已经签好了，大概什么时候可以付款”，靳慧玲回复“已经报上去了”。 2018年6月1日，创软公司李志明向商桥公司靳慧玲发送微信“油卡费结余到固定的网管中心油卡账户，这个网管中心油卡账户是哪个？发给我下”。靳慧玲回复“先到网管中心”，并询问“你们做到哪一步了？还是刚开始动油卡这一块？”李志明回复“刚开始没多久”，靳慧玲回复“那要不先不调了吧”，李志明询问“整个需求都不做了吗？”靳慧玲回复“不做了，不动了”，李志明询问“这是咋了？”靳慧玲回复“到时候让我们这边的小伙子试着做好了，不能占用你们太多时间”“因为下周陈总就回上海了，到时候你可以过来谈二期的事情”“智能调度这一块”。 2018年6月4日，创软公司苏良本向商桥公司靳慧玲发送微信“一期的费用还没有到账，帮忙问一下你们财务大概什么时候可以到账”“上周一你说提交给财务了那笔哦30w”，靳慧玲回复“应该也快了”。 2018年7月2日，商桥公司向创软公司发送《解除合作通知函》，内容为:“……在项目推进期间，贵公司对项目推进不主动，执行不力，计划及实时进度未能及时汇报，开发进度严重延期，已开发功能中部分功能不可用（油卡管理、班车提现等），未按甲方要求上线实施，已违反双方约定及贵公司承诺，现我公司正式函告贵公司：1.我公司与贵公司关于上述软件的合作签订的《商桥公交货巴运营系统项目开发合同》，自贵公司接到此函之日解除。2.按合同约定，贵公司不能按时完成本合同义务即提供经我司验收合格的系统和有效的系统服务，退还我司已支付的50%开发费用……3.请贵司停止对我司服务器等资源的访问，并及时处理合作项目的相关终止事宜。……”同日，创软公司回复商桥公司，对商桥公司上述函件中提出的几点质疑进行回复，并函告商桥公司:贵司于2018年6月29日在未经沟通的情况下擅自停掉我司的开发环境（SVN、数据库、测试环境），经过我司的慎重考虑，现我司正式函告贵司：因贵司违反《商桥公交货巴运营系统项目开发合同》第10.3条款，应按照约定承担违约金13,500元（截止于2018年7月2日）、支付剩余待支付费用共计375,000元（一期300,000元、二期按50%计算为75,000元），并正式通知贵司终止合同。……同年7月16日，创软公司委托律师向商桥公司发送《律师函》，重申了上述回函中正式函告商桥公司的内容。 2018年7月2日和3日，创软公司苏良本去商桥公司，分别与商桥公司陈根学和法定代表人陈磊等进行了交谈，并对谈话内容进行了录音，其中与本案相关的谈话内容为： 2018年7月2日苏良本与陈根学的谈话内容：苏“另外还有关于一阶段的内容，小靳签字的，我不知道你们认不认？”陈“认的”，苏“一期认的是吧，可以，因为现在小靳不在了”，陈“只要是按合同办事，我们都认的，这个没问题”，苏“是，一期是按合同去办事，小靳签字，那因为小靳不在了，所以我现在问你认不认？”陈“小靳不在也认的”，苏“认就行了吧，那为什么一期我们都验收掉了，钱还不付给我们呢？”陈“你讲的是什么概念，在我的眼里一期的话，最起码把那些东西做80-90%了，才叫一期，你那个质保的话10%是上线完给你们。”苏“不是说你觉得什么是一期，或我觉得什么是一期，这个都是我们合同当中有约定的。”陈“有约定的，按正常走，你觉得商桥违约了，你起诉就好了，大不了全部钱给你嘛。” 2018年7月3日苏良本与陈磊的谈话内容：陈“欠你们所有的钱在15日之前的话都给你付掉，这个你不用担心”，苏“也就是上周的那个时候，陈总（此谈话内容中均指陈根学）和我说的时候，我问怎么还没有付款，我说发票5月份就给了，他说那个最近账上没钱，那我说没事”，陈“对”“钱肯定是要给的，没钱谁干活都没劲”，苏“但这次这个邮件一发，要解除合同，还让我们赔偿”，陈“我没看到邮件”，苏“因为昨天我也来过了……陈总意思是说，也是你这边拍板确定的事情，这个是总裁这边审核的”，陈“他这个话说的是不负责任的，所有的事情他来做，你明白伐”“等会我找他了解一下具体的情况”，苏“嗯，那行吧，那要不就这样，我找陈总再聊一下吧”，陈“可以”。 2018年7月3日苏良本与陈根学的谈话内容：苏“跟陈磊总聊过了，你说这个东西是他弄的，你说他审批的，他其实是说不是很了解这个事情”，陈“对啊”，苏“一期验收单，你们都签了”，陈“我验收了的话，我说句真话，你那点东西的话，跟我要钱，我都不乐意……”苏“一期付了，二期东西给你们”，陈“怎么可能，一期再付给你30多万的话，然后的话，你就结束了”，苏“然后把二期东西给你嘛，后面还有30%呢”，陈“你有什么东西给我吗？”苏“三个APP给你啊，你先把一期的付了，我再给你三个APP啊……”“5月份的时候，我们给你们发票，其实就是想你们把这个钱付掉，我们把APP给你，然后你再把后面的钱付给我们”，陈“那是在后面，付了23万以后的时候，他们易林和小靳想要把你那个第二笔30万付了，我想30万付给你就没了，我说一开始做就付给你们了，后面怎么搞，我就说停掉一笔……”苏“那是第一笔吧，合同签订是30%，我昨天看了一下那个，是分4次付”“那实际上是4笔，才付了一笔”，陈“……前面做的BI的话，做到一半就走了，数据没有啊，接口没有啊”，苏“我也是希望把这个事情做好嘛，但是不是一直没有数据嘛”，陈“当然也不能怪你，前面大家讲好的东西，也没有理由来帮我们做其他事情……”苏“但是后面代码合并花了多少时间啦？你想一下这个事情都是我们这边在弄，主要是我们这边在弄，本来是他们把我们代码合并的，现在变成我们来合并他们的代码了，然后后面的那个培训、老数据迁移，这些也变成我们的事情”，陈“这个算你10天，合并也好、迁移也好”。 三、其他事实 （一）本案审理中，双方当事人确认涉案所有一期项目开发成果均部署在哲盟公司的服务器上。就其中的平台，双方同意从哲盟公司服务器上当庭下载2018年6月26日创软公司提交的版本进行演示，并由商桥公司将后台还原至可以匹配该版本；就司机版APP（Android版本），双方同意当庭在前述微信聊天记录中下载2018年4月12日李志明通过微信向靳慧玲发送的“司机APP测试版”进行演示，但由于APP的后台已关闭，且无法重启，故司机版APP（Android版本）无法演示。 经对平台当庭演示，就商桥公司提出的其中未能实现的功能演示情况如下：1.快件箱功能项下的子功能“货箱结余”，商桥公司提出该功能中货箱逾期费结算存在问题，但演示时无法呈现该问题，商桥公司表示使用时不是所有情况下均会产生该问题。2.车辆功能项下的子功能“班车提现管理”，商桥公司提出创软公司开发的该功能业务逻辑缺失，与现实业务不符，故商桥公司就该功能自行进行了开发，创软公司则表示该功能其已按约开发完成并交付给商桥公司，商桥公司自认为存在问题，自行进行了开发。3.车辆功能项下的子功能“油卡账户充值管理”，商桥公司提出其中存在“对于新增的数据查询不出来”和“没有实现银行对接”两个问题，前一个问题，演示时新增两条数据，但查询时只查到一条数据（输入第一条数据无法查询，输入第二条数据查到第一条），新增第三条数据只查到前两条；后一个问题存在，创软公司对此表示，实现该功能需要商桥公司提供真实的银行账户进行开发，但商桥公司没有提供，之后涉案合同终止，故没有开发。4.车辆功能项下的子功能“油卡充值管理”，新增数据时，提示“充值接口错误，请联系管理员！”创软公司表示，当时开发时商桥公司给的接口是测试接口，其发现问题后联系商桥公司重启接口，但因为该接口涉及钱的问题，商桥公司要求先不要动该接口，等钱没问题了再最终解决这个问题。5.车辆匹配功能项下的子功能“平台任务监控”，商桥公司提出不明白业务逻辑，演示该功能，显示一查询界面，在测试环境中可以查询到测试数据，点击“地图监控”，因为没有第三方接口无法打开。6.车辆匹配功能项下的子功能“我要调车”，商桥公司提出业务逻辑缺失，演示该功能，在测试环境中无法调取数据，无法下发任务，在正式环境中可以实现该功能。7.结算中心项下的子功能“用户提现管理”，商桥公司提出业务逻辑缺失，演示该功能，该功能的名称已改为“司机提现管理”，由创软公司开发的正式环境所对应的界面存在，但因网页文件缺失无法进一步打开。 （二）庭审中，对于涉案合同第10.3条约定的理解与适用，创软公司表示，虽然该条款将甲方即商桥公司承担违约责任的情形约定为“如甲方无故拖延验收，并且费用支付延期在三十个自然日内”，但商桥公司的核心答辩意见还是不认可之前签署的《项目验收单》，认为创软公司开发的软件存在质量问题，导致商桥公司迟延支付相关费用，故创软公司仍可以适用该条款要求商桥公司承担违约责任；退一步讲，即使不能适用该条款，商桥公司的违约行为给创软公司造成了实际损失，也应当承担相应的违约责任。商桥公司则表示，其并没有无故拖延验收，亦认可其之前签署的《项目验收单》，但当时是在软件功能还需要完善的情况下签署的，故不能适用该条款追究其违约责任；即使其存在违约行为，违约金也应调低，不能以合同总金额作为计算基数，而应以其需支付给创软公司的开发费用金额为基数，每日万分之五的标准亦过高。 （三）创软公司原法定代表人为苏良本，2019年8月30日变更为季禾。 原审法院认为，本案的主要争议焦点为：一、双方当事人是否各自存在对方主张的违约行为；二、涉案合同解除的责任以及合同解除以后的处理。 关于第一项争议焦点，原审法院认为，第一，涉案合同并未对合同履行期限进行约定，“初步里程碑计划”系制定于涉案合同签订之前的初步计划。商桥公司亦于2018年5月28日签署了《项目验收单》。因此，商桥公司关于创软公司迟延履行合同义务构成违约的主张不能成立。第二，商桥公司于2018年5月28日签署了《项目验收单》，对创软公司开发的一期项目予以验收。一期项目中的平台进行当庭演示的情况，仅个别功能存在问题。因此，商桥公司关于创软公司交付的一期项目开发成果不符合合同约定构成违约的主张亦不能成立。第三，合同约定的一期项目款项的付款条件已经成就，商桥公司未按约支付该款项构成违约，创软公司的相关违约主张成立。第四，商桥公司在合同履行过程中，在未通知创软公司的情况下，擅自单方面关闭服务器，导致创软公司的开发工作受阻，故商桥公司的行为违反了其根据涉案合同约定应当履行的协助等义务，创软公司主张商桥公司该行为构成违约，原审法院予以采纳。 关于第二项争议焦点，原审法院认为，创软公司起诉要求确认涉案合同自2018年7月2日解除，商桥公司对此予以同意，原审法院予以准许，涉案合同自2018年7月2日解除。 关于创软公司要求商桥公司支付合同款项375000元的诉讼请求。一期项目款项300000元，付款条件已经成就，原审法院予以支持。对于二期项目款项75000元，原审法院不予支持。关于创软公司要求商桥公司支付延期付款违约金的诉讼请求，商桥公司的违约行为给创软公司造成了实际损失，也应当承担相应的违约责任。 关于商桥公司要求创软公司返还合同款项的反诉诉讼请求，商桥公司对于创软公司的违约主张并不成立，反而是商桥公司存在违约行为，故商桥公司按照该条款要求创软公司退回已收取的部分款项，原审法院不予支持。 原审法院判决：一、创软公司与商桥公司2018年1月19日签订的《商桥公交货巴运营系统项目开发合同》自2018年7月2日解除；二、商桥公司应于本判决生效之日起十日内支付创软公司合同款项人民币300000元；三、商桥公司应于本判决生效之日起十日内向创软公司支付以人民币300000元为基数，从2018年7月2日起至实际履行之日止按中国人民银行同期贷款利率计算的利息；四、驳回创软公司的其余本诉诉讼请求；五、驳回商桥公司的反诉诉讼请求。商桥公司如果未按本判决指定的期间履行给付金钱义务,应当依照《中华人民共和国民事诉讼法》第二百五十三条规定，加倍支付迟延履行期间的债务利息。本诉案件受理费6925元，由创软公司负担人民币1385元，商桥公司负担5540元；反诉案件受理费1275元，由商桥公司负担。 二审中，双方当事人均没有提交新证据。当事人对涉案合同于2018年7月2日解除均没有异议。 原审查明的事实基本属实，且有当事人提供的证据、笔录等在案佐证，本院予以确认。 本院认为，本案系计算机软件开发合同纠纷，二审中双方当事人对涉案合同已于2018年7月2日解除之事实均没有异议，本院依法予以确认。根据二审期间双方当事人的诉辩意见以及查明的事实，本案争议的焦点问题是创软公司在涉案项目的一期阶段是否存在迟延交付和交付标的不符合合同约定等违约行为。 《中华人民共和国合同法》（简称合同法）第八条规定：“依法成立的合同，对当事人具有法律约束力。”第六十条规定：“当事人应当按照约定全面履行自己的义务。”涉案合同系双方当事人真实意思表示，合同内容未违反法律、行政法规的禁止性规定，合法有效，双方当事人均应当按照约定全面履行自己的义务。该合同中约定了创软公司有依约进行软件开发并按照约定标准交付的合同义务，创软公司应当积极履行。根据已查明的事实，在2018年1月19日合同签订之后，合同双方于2018年5月28日签署了《项目验收单》，该验收项目名称是“公交货巴运营系统项目一期”，验收结果栏明确记载：经甲乙双方共同通过对本项目验收的审核与确认，甲方（商桥公司）确认乙方（创软公司）所实施内容、进度和交付物等均已按照合同所规定的内容进行实施，并予以验收。验收项目包含了“班车提现管理”“油卡账户充值管理”“油卡充值管理”“平台任务监控”“用户提现管理”等软件。创软公司苏良本与商桥公司靳慧玲2018年5月28日的微信聊天记录也能印证上述事实。因此，上述证据足以证明创软公司在涉案项目的一期阶段已经依照合同约定的验收标准履行了交付义务。商桥公司上诉提出，《项目验收单》系由创软公司提供的格式文本，不能客观反映案涉软件的实际情况，不能作为本案定案的依据。经审查，《项目验收单》以列表形式记载“公交货巴运营系统项目一期”交付项目软件和文档的具体内容，并非格式文本，且有双方当事人有权代表签字认可，足以证明交付事实。该上诉理由与本案已查明的法律事实相悖，本院依法予以驳回。商桥公司上诉提出，本案交付的一期项目中，“班车提现管理”“油卡账户充值管理”“油卡充值管理”“平台任务监控”“用户提现管理”等功能交付均不符合合同约定。经审查，《项目验收单》中验收目录已经包含了上述软件，该上诉理由亦与本案已查明的法律事实相悖，本院依法予以驳回。商桥公司上诉还提出，原审法院将该一期项目功能开发的举证责任转移由其承担，加重其举证责任。本院认为，《最高人民法院关于适用〈中华人民共和国民事诉讼法〉的解释》第九十条规定：“当事人对自己提出的诉讼请求所依据的事实或者反驳对方诉讼请求所依据的事实，应当提供证据加以证明，但法律另有规定的除外。在作出判决前，当事人未能提供证据或者证据不足以证明其事实主张的，由负有举证证明责任的当事人承担不利的后果。”商桥公司在诉讼中否认《项目验收单》的证明效力，拟证明创软公司存在交付标的不符合合同约定的违约行为，事实上主张了反驳对方诉讼请求的新的事实，应当提供证据加以证明，并非举证责任的转移，该上诉理由没有事实和法律依据，本院依法予以驳回。 本案中，涉案合同未就履行期限进行明确约定，项目工作说明书虽在“初步里程碑计划”中约定一期项目开发的截止日期为2018年3月1日，但该计划形成于涉案合同签订之前，仅系对项目进度的预估，并非对合同履行期限的正式约定。在合同履行过程中，双方在项目研发过程中就细节优化、功能调整进行多次沟通，商桥公司亦提出一些新的需求。且创软公司多项工作的推进需要第三方的配合。此外，创软公司承担了代码合并、逻辑变更、数据迁移等原不由其承担的工作，导致开发时间延长。因此，创软公司未按“初步里程碑计划”约定的期限交付一期项目并非其单方原因导致。现有证据亦无法表明创软公司存在怠于履行、不配合履行的情况。综上，创软公司并未迟延交付一期项目，商桥公司上诉提出创软公司迟延交付，与本案基本事实不符，本院依法予以驳回。 合同法第九十七条规定：“合同解除后，尚未履行的，终止履行；已经履行的，根据履行情况和合同性质，当事人可以要求恢复原状、采取其他补救措施、并有权要求赔偿损失。”如前所述，创软公司交付的一期项目软件符合合同约定，且未延期交付，合同解除后，商桥公司应按照合同约定，向创软公司支付40%合同价款，并承担相应的违约责任。原审法院依据本案基本案情酌定应支付相应利息损失，有事实和法律依据，本院依法予以维持。 综上，商桥公司的上诉请求均不能成立，本院依法均予以驳回。原审判决认定事实清楚，适用法律正确，依法应予维持。依据《中华人民共和国民事诉讼法》第一百六十九条第一款、第一百七十条第一款第一项规定，判决如下： 驳回上诉，维持原判。 二审案件受理费7487.5元，由上诉人上海商桥供应链服务有限公司承担。 本判决为终审判决。 审判长  刘晓军 审判员  唐小妹 审判员  李自柱 二〇二〇年六月二十三日 法官助理郑文思 书记员宋子怡 裁判要点                            案 号                       （2020）最高法知民终48号                               案 由                       计算机软件开发合同纠纷                               合议庭                       审判长：刘晓军             审判员：唐小妹、李自柱                                                     法官助理：郑文思                       书记员：宋子怡                               裁判日期                       2020年6月23日                               关键词                       计算机软件开发合同纠纷；迟延交付；验收；举证责任                               当事人                       上诉人（原审被告、原审反诉原告）：上海商桥供应链服务有限公司；             被上诉人（原审原告、原审反诉被告）：上海创软信息科技有限公司。                               裁判结果                       驳回上诉，维持原判。             原判决结果：             一、上海创软信息科技有限公司与上海商桥供应链服务有限公司2018年1月19日签订的《商桥公交货巴运营系统项目开发合同》自2018年7月2日解除；             二、上海商桥供应链服务有限公司应于本判决生效之日起十日内支付上海创软信息科技有限公司合同款项人民币300 000元；             三、上海商桥供应链服务有限公司应于本判决生效之日起十日内向上海创软信息科技有限公司支付以人民币300 000元为基数，从2018年7月2日起至实际履行之日止按中国人民银行同期贷款利率计算的利息；             四、驳回上海创软信息科技有限公司的其余本诉诉讼请求；             五、驳回上海商桥供应链服务有限公司的反诉诉讼请求。                               涉案法条                       《中华人民共和国合同法》第八条、第六十条、第九十七条；             《最高人民法院关于适用〈中华人民共和国民事诉讼法〉的解释》第九十条。                               法律问题                       1.软件开发合同中交付的认定标准；             2.反驳对方诉讼请求的举证责任。                               裁判观点                                   1.依法成立的合同，对当事人具有法律约束力，当事人应当按照约定全面履行自己的义务。涉案合同约定了创软公司有依约进行软件开发并按照约定标准交付的合同义务，创软公司应当积极履行。根据已查明的事实，在2018年1月19日合同签订之后，合同双方于2018年5月28日签署了《项目验收单》，该验收项目名称是“公交货巴运营系统项目一期”，验收结果栏明确记载：经甲乙双方共同通过对本项目验收的审核与确认，甲方（即商桥公司）确认乙方（即创软公司）所实施内容、进度和交付物等均已按照合同所规定的内容进行实施，并予以验收。验收项目包含了“班车提现管理”“油卡账户充值管理”“油卡充值管理”“平台任务监控”“用户提现管理”等争议软件项目。创软公司苏良本与商桥公司靳慧玲2018年5月28日的微信聊天记录也能印证上述事实。因此，上述证据足以证明创软公司在涉案项目的一期阶段已经依照合同约定的验收标准履行了交付义务。             2.当事人对自己提出的诉讼请求所依据的事实或者反驳对方诉讼请求所依据的事实，应当提供证据加以证明，但法律另有规定的除外。在作出判决前，当事人未能提供证据或者证据不足以证明其事实主张的，由负有举证证明责任的当事人承担不利的后果。商桥公司在诉讼中否认《项目验收单》的证明效力，其证明目的是创软公司存在交付标的不符合合同约定的违约行为，主张了反驳对方诉讼请求所依据的新的事实，应当提供证据加以证明，并非举证责任的转移                               注：本摘要并非裁判文书之组成部分，不具有法律效力。