中华人民共和国最高人民法院 民 事 判 决 书 （2020）最高法知民终181号 上诉人（原审被告）：上海承乘信息科技有限公司。住所地：上海市奉贤区四团镇平港路883-885号2幢2023室。 法定代表人：杨银超，该公司执行董事。 被上诉人（原审原告）：魔鱼科技（上海）有限公司。住所地：上海市浦东新区三林路84号1幢1C320b室。 法定代表人：凌睿，该公司经理。 上诉人上海承乘信息科技有限公司（以下简称上海承乘公司）因与被上诉人魔鱼科技（上海）有限公司（以下简称魔鱼公司）计算机软件开发合同纠纷一案，不服上海知识产权法院于2019年9月29日作出的（2019）沪73民初15号民事判决，向本院提起上诉。本院于2020年2月21日立案后，依法组成合议庭进行审理。本案现已审理终结。 上海承乘公司上诉请求：1.依法撤销原审判决；2.依法改判驳回魔鱼公司的诉讼请求。事实和理由：原审认定事实错误，适用法律错误，张智博并非上海承乘公司员工，上海承乘公司仅是让其参与、负责美工，并未授权其参与其他业务，魔鱼公司也知晓此事，故而原审认为张智博代表上海承乘公司确认与修改是错误的，魔鱼公司并未向上海承乘公司提出确认和修改，更未得到上海承乘公司的确认，魔鱼公司并未完成开发、部署测试版的合同义务。 魔鱼公司辩称：原审判决认定事实清楚，适用法律正确，请求驳回上海承乘公司的上诉请求。 魔鱼公司向原审法院提起诉讼，原审法院于2019年1月2日立案受理，魔鱼公司起诉请求：1.判令上海承乘公司按照《委托开发合同》支付给魔鱼公司各项费用，共计78,000元；2.判令上海承乘公司按照合同约定赔偿逾期违约金，违约金包括：测试版确认后对应的52,000元，自2017年7月21日至上海承乘公司实际清偿之日；上线后应付费用13,000元自保修期开始日计算，自2017年7月24日至上海承乘公司实际清偿之日；保修期结束对应的13,000元，自2017年10月25日至上海承乘公司实际清偿之日。上述违约金的计算方式为按照日万分之五利息计算；3.本案诉讼费用由上海承乘公司承担。事实和理由：2017年5月21日，魔鱼公司、上海承乘公司签订《委托开发合同》，约定魔鱼公司为上海承乘公司定制开发“报关系统网站”，开发周期为2017年5月21日至2017年6月30日，保修期为3个月，从开发完成之日起算。魔鱼公司按照合同开始项目开发，于2017年6月20日部署了测试版，通过微信和邮件同时发送给上海承乘公司的两名对接人石峰和张智博。上海承乘公司提出了若干修改意见后，魔鱼公司全部进行了修改，于2017年7月18日整合进测试版再次发送给上海承乘公司，上海承乘公司当日在微信以及邮件上确认测试验证了魔鱼公司修改内容。2017年7月20日，魔鱼公司发送邮件通知上海承乘公司，如还有修改意见应于7月21日之前提出，否则，项目将于2017年7月22日进入维护期。后续魔鱼公司通过电话以及微信多次联系上海承乘公司要求按照合同约定支付款项，上海承乘公司至今未付余款。 上海承乘公司原审辩称：不同意魔鱼公司的全部诉讼请求。涉案软件不管是测试版还是正式版，均未经过上海承乘公司的确认，魔鱼公司也未交付上海承乘公司。合同约定的付款时间还未到，故上海承乘公司没有违约。即便认定上海承乘公司违约，约定违约金金额亦过高。 原审法院认定事实：（一）涉案合同情况 2017年5月21日，魔鱼公司为乙方、上海承乘公司为甲方签订了《委托开发合同》约定：甲方委托乙方开发报关系统网站，开发周期为2017年5月21日至2017年6月30日，其中6月20日需要部署测试版交由甲方测试。具体开发的约定内容为附录网站框架图。乙方负责完成产品的设计开发、交付及相关其他服务工作，并保证该产品满足甲方的要求。乙方提供的开发及服务为网站产品的技术开发、提供本次开发的所有源代码、产品的部署上线以及免费保修期3个月（起算日：开发完成之日）。项目费用总计为130,000元整，乙方提供增值税抵扣发票，甲方应另行支付增值税开票费13,000元。项目费用包括上述经甲乙双方协商一致确认的产品开发与服务，以及服务所涉及的需要向第三方支付的费用。合同履行期间，若甲方提出需要乙方出差，则甲方需额外提供相应的差旅费……在本合同签订后3个工作日内，甲方向乙方支付预付款，预付款为总价的50%，计65,000元整。6月20日开发完成并部署测试版，甲方确认后的3个工作日内，甲方向乙方支付余款，支付款项为总价的40%，计52,000元整。6月30日部署上线完成，甲方确认后的3个工作日内，甲方向乙方支付余款，支付款项为总价的10%，计13,000元整。2017年9月30日免费保修期结束，甲方在3个工作日内，支付开票费13,000元整。……甲方应向乙方提供完成开发所必需的资料和支持，应当按照合同约定向乙方支付合同价款。若甲方延期付款，甲方需向乙方支付违约金，日违约金为当期应付款的0.05%。乙方有权按照本合同约定收取合同价款，有权要求甲方提供产品开发所必需的资料和支持…… 合同签订后，上海承乘公司向魔鱼公司支付了预付款65,000元。 （二）双方电子邮件往来情况 2017年5月26日10:42，魔鱼公司工作人员唐文韬发送电子邮件给上海承乘公司工作人员石峰：附件是周三我们跟陈总沟通之后，根据陈总的修改意见，最后完成的主要页面UI设计稿，后续的开发工作会据此展开，请确认此版设计稿，后续可做微调；大的变更将视为新增功能，需要双方另行协商。为避免影响项目开发周期，您这边如果对美术设计稿有修改意见的话，请于1天内提出。逾期即视为认可本次UI设计稿。该邮件附件为报关网站UI设计案.zip。 2017年6月20日23:14，魔鱼公司工作人员唐文韬发送电子邮件给上海承乘公司工作人员石峰、张智博：咱们这个报关网站的项目，目前我们已经部署了测试版。情况如下：用户版：http://online.fishstudio.net/cc?version=dev管理端：http://online.fishstudio.net/cc?role=admin&version=dev测试版我们开通了两个账号给你们试用：13500000000/111111、13500000001/111111目前是新的部署，测试数据我们会陆续跟进和添加。由于开发周期紧张，难免会有bug，我方也还在做各种测试，发现问题多多沟通，让我们一起把项目完成好，谢谢！ 2017年6月30日9:47，魔鱼公司工作人员唐文韬发送电子邮件给上海承乘公司工作人员石峰、张智博：目前咱们这个项目的状态如下，请回复确认：对于测试版甲方已测试过，提出了一些改进意见（大致10条），我方已及时作出反馈，修复了bug和改进了功能，且已经整合到测试版并经过了@智博这边的验证。现今石总对项目还有一些意见，可能会涉及功能调整或者增加页面，所以我们约定了明日（2017年7月1日）上午面谈。2017年6月30日9:51，上海承乘公司工作人员张智博回复该邮件：确认修改完成，关于新的问题明天见面详谈。 2017年7月3日10:54，魔鱼公司工作人员唐文韬发送电子邮件给上海承乘公司工作人员张智博：周六沟通，石总这边提出的更改要求如下，请确认一下我们这边列出来的内容，是否有错误或者遗漏：1.任务可以通过总单号搜索；2.任务列表变为表格形式；3.上传附件需要分类：出口：报关单、报关委托书、申报要素、发票、箱单、运单（选填）、其他选填；进口：到货通知书（选填），其他（选填）预报关：到货通知书，报关单，其他；一体化：到货通知书，报关单，其他；清关：跟出口一样；商检：其他；4.拆分端口：暂时不拆。用户端如果不是服务商，则隐藏“我接受到的任务”；5.服务商需要上传附件：预录单，放行通知书，其他；6.线上沟通：增加qq链接打开qq进行沟通；7.发单时可不指定报关行，后台来指定；8.通关状态：放行/需要补资料/失败（需要解释原因，退款）；9.用户可补传资料；10.服务商状态反馈：暂不做。同日11:16，魔鱼公司工作人员唐文韬发送电子邮件给上海承乘公司工作人员张智博：更新第八条，增加“查验中”状态。 2017年7月17日下午2:33，魔鱼公司工作人员唐文韬发送电子邮件给上海承乘公司工作人员张智博：Hi智博，以上修改我们上周已经完成并部署到测试版，原有测试链接不变，麻烦你们这边抽时间确认一下。2017年7月18日14:10，上海承乘公司工作人员张智博回复：哥，这边暂时就这几个问题，别的问题还得等网站运行起来才能知道。 2017年7月20日16:30，魔鱼公司工作人员唐文韬发送电子邮件给上海承乘公司工作人员石峰、张智博：石总，智博，你们好！之前的所有修改意见，我们已经于7月18日全部修正完毕，并整合到测试版，然后通过了智博这边的测试和验证。对测试版如果还有其他意见，请于7月21日之前提出。如果没有别的问题的话，咱们这个项目将正式进入下一阶段，可以上线试运营了，请贵方提供需要部署的服务器，我们将尽快完成上线的部署。同时7月22日也将作为我们项目维护期的开始，维护期内如发现项目有bug，请尽快通知我们，我们会尽快做出响应并负责修复。 （三）双方微信聊天记录 2017年5月26日，在由魔鱼公司工作人员唐文韬、上海承乘公司工作人员张智博、石峰三人的微信聊天群中，石峰将张智博介绍给唐文韬：我司IT小字辈张智博……具体事情同他说……美工的事联系他。2017年6月22日，魔鱼公司工作人员唐文韬将涉案网站的测试版账号、用户版和管理版的测试网址上传至上述微信聊天群中。 2017年5月26日，上海承乘公司工作人员张智博微信魔鱼公司工作人员唐文韬：微信图片看过了。没有问题。唐文韬：那后续有网页版本我们也直接发给你哦。你这边有没有邮箱啥的。张智博：有的，zzb@jianguan56.com。 2017年6月22日，唐文韬微信张智博：网站这边是跟你对接是吧？张智博：嗯对的。 2017年7月18日，唐文韬微信张智博：测试情况如何了？张智博：我这边测试完了，得等石总回来才能定。唐文韬：上次列的功能都OK了吧？如果你这边测试过了，邮件回复我一下哦。张智博：嗯，等这边石总回来就给你答复。唐文韬：我们这边肯定是要等石总的答复的，我意思是如果你这边把上次列的都测试过了的话，就回复我一个邮件，说明上次列的那些项均已修改完毕且你这边已经测试验证过。张智博：嗯，好的。唐文韬：项目嘛我们肯定要跟石总说得，你这边先只针对上次列的那些项。张智博：下午给你邮件。唐文韬：好的，辛苦你了。张智博：没事的，哥。当日下午14:11，张智博微信唐文韬：哥，给你回了邮件，你看一下。 2017年7月19日晚上，唐文韬微信石峰：石总您好，上次沟通需要做的改动我们已经完成，并且经过智博的测试和确认，请您再抽空看一下，如果没有问题的话，咱们这个项目就可以部署上线，进入下一个阶段了。在维护期如果有bug的话我们依然会负责。石峰：好的。2017年8月18日，唐文韬微信石峰：石总您好，以下是我们公司的账号。开户行：平安银行上海花木支行；账号：11014799094000。咱们的合同金额是13W，本期应为总价的40%，所以是5.2W，谢谢！ 原审审理中，上海承乘公司否认张智博系其员工，并认为张智博只负责美工事宜，不能代表上海承乘公司接洽涉案网站开发事宜，且主张上海承乘公司在收到测试版后，只有在明确测试通过且魔鱼公司交付源代码后才算涉案网站的交付。魔鱼公司认为涉案付款条件未约定以源代码交付为前提，并表示只要上海承乘公司给付合同款其愿意交付源代码。上海承乘公司表示时过境迁，对方没有履行部署和保修义务，其既不愿意付钱也不要求对方交付源代码。 原审庭审后，魔鱼公司以书面形式向原审法院表示如果上海承乘公司按照合同约定付清所有的费用（包括违约金），则其在所有款项到达后的五个工作日将涉案源代码发送至上海承乘公司邮箱并将增值税抵扣发票寄送至上海承乘公司或法院；对于上海承乘公司应付的后两笔款项，总计26,000元整，对应的违约金起算日变更为魔鱼公司起诉之日，并计算至上海承乘公司的实际清偿之日。 原审法院认为，根据当事人的诉辩意见，本案的主要争议焦点为魔鱼公司主张上海承乘公司支付合同余款和违约金是否应当得到支持。 涉案合同是双方当事人真实意思表示，合法有效，双方均应按照约定履行自己的合同义务。涉案合同约定魔鱼公司负责完成网站产品的技术开发、交付及提供相关其他服务工作的义务。上海承乘公司有提供完成开发所必需的资料和支持的义务以及按照合同约定向魔鱼公司支付合同价款的义务。合同明确约定在魔鱼公司开发完成并部署测试版，上海承乘公司确认后的3个工作日内，上海承乘公司向魔鱼公司支付52,000元。魔鱼公司部署上线完成，上海承乘公司确认后的3个工作日内，上海承乘公司向魔鱼公司支付13,000元。魔鱼公司提交的证据能够证明其在2017年6月20日将其开发之涉案网站测试版部署后交由上海承乘公司测试，上海承乘公司在2017年7月1日提出了修改意见，魔鱼公司在2017年7月3日将修改意见予以书面整理，并经上海承乘公司员工张智博确认与修改，在2017年7月17日前魔鱼公司将修改内容部署到测试版，并交由上海承乘公司测试，上海承乘公司员工张智博曾测试确认，上海承乘公司员工石峰亦知晓上述事宜，但上海承乘公司并未对经修改的测试版提出意见。因此，魔鱼公司已经履行了开发完成并部署测试版的合同义务，上海承乘公司应按照涉案合同的约定向魔鱼公司支付52,000元的合同款。关于上海承乘公司提出的魔鱼公司交付的测试版未经其确认，付款条件并未成就之意见，原审法院认为，如前所述，上海承乘公司对合同履行负有支持义务，即便上海承乘公司员工石峰未对测试版修改是否符合要求作出明确表态，但其亦未向魔鱼公司提出涉案软件存在问题，其不履行确认之支持义务不能成为其拒付合同款的正当理由，故对魔鱼公司主张上海承乘公司应给付其52,000元合同款的诉讼请求，原审法院予以支持。由于上海承乘公司并未履行其确认交付内容以及提供部署网站的服务器的支持义务，致使魔鱼公司无法实施网站部署上线的合同义务并获得合同款13,000元，因此，上海承乘公司应对其不履行支持义务承担违约的民事责任，故对魔鱼公司主张上海承乘公司应支付剩余款项的主张，原审法院予以支持。但由于魔鱼公司并未实施部署工作，故对该部分的工作量，原审法院根据相关市场行情,酌情予以扣除2,000元。关于魔鱼公司主张的开票费，涉案合同约定，魔鱼公司提供增值税抵扣发票，上海承乘公司应另行支付增值税开票费13,000元，由于魔鱼公司并未开具给上海承乘公司任何发票，故对该主张原审法院不予支持。关于上海承乘公司认为张智博不能代表上海承乘公司的主张，原审法院认为，首先，张智博系石峰介绍给唐文韬的，且在入群后介绍张智博系上海承乘公司IT人员，并明确具体事情同他说；其次，在2017年6月20日，魔鱼公司部署涉案网站测试版后，就测试版的测试、修改问题亦是与张智博联系；最后，在案证据能够证明，魔鱼公司不仅将涉案网站经修改后的测试部署情况告诉张智博，且告知了石峰，故上海承乘公司的上述理由不能成立。关于违约金，涉案合同约定上海承乘公司若延期付款应当向魔鱼公司支付违约金，日违约金为当期应付款的0.05%，由于上海承乘公司未尽其支持义务使得魔鱼公司在付出劳动后并未能得到相应的报酬，故对魔鱼公司主张按照约定支付违约金的诉请，原审法院予以支持。关于上海承乘公司主张违约金约定过高的抗辩意见，原审法院认为，该违约金是双方真实意思表示，且并未超过法律允许的范围，故对该意见原审法院不予采信。关于违约金的起始日期，上海承乘公司员工张智博在2017年7月18日对经修改的测试版网站进行了测试确认，魔鱼公司亦在2017年7月19日将相关情况告知了上海承乘公司员工石峰，并在同月20日发送邮件给张智博、石峰，要求其如有其他修改在21日前告知，如果没有则进入下阶段，故确认交付的时间应为2017年7月21日，合同约定的合同款支付之日应为确认后的3个工作日，因此，支付52,000元合同款的截止日期应为2017年7月26日，故违约金的支付日期应从2017年7月27日开始。涉案网站因上海承乘公司未履行支持义务而未正式上线，但魔鱼公司已经履行了除部署外的其他合同义务，而未履行部署义务的过错责任在于上海承乘公司，故对魔鱼公司主张上海承乘公司应支付剩余合同款的违约金，原审法院亦予以支持。魔鱼公司主张该笔合同款违约金起始时间自起诉之日，并无不当，原审法院予以支持。 关于上海承乘公司提出的魔鱼公司并未交付源代码的问题，原审法院认为，根据涉案合同的约定，魔鱼公司虽有交付源代码之义务，但该义务履行并非上海承乘公司付款的前提。魔鱼公司亦明确只要上海承乘公司付款，其会交付源代码，故在上海承乘公司支付了合同款后，魔鱼公司应将涉案源代码予以交付。 原审法院判决：（一）上海承乘公司于本判决生效之日起十日内给付魔鱼公司合同款63,000元；（二）上海承乘公司于本判决生效之日起十日内以日0.05%为标准，给付魔鱼公司上述钱款之违约金，其中52,000元的违约金自2017年7月27日起计算至给付之日止、11,000元的违约金自2019年1月3日计算至给付之日止；（三）驳回魔鱼公司的其余诉讼请求。上海承乘公司如果未按本判决指定的期间履行给付金钱义务，应当依照《中华人民共和国民事诉讼法》第二百五十三条之规定，加倍支付迟延履行期间的债务利息。案件受理费2,139元，由魔鱼公司负担193元，上海承乘公司负担1,946元。 本院二审中，诉讼双方未提交新的证据。 原审查明的事实基本属实，本院予以确认。 本院认为，根据上海承乘公司的上诉主张，本案二审争议的焦点问题是：张智博的行为能否代表上海承乘公司，上海承乘公司是否应承担相应的民事责任。 《中华人民共和国民法通则》第六十三条第一款、第二款规定：“公民、法人可以通过代理人实施民事法律行为。代理人在代理权限内，以被代理人的名义实施民事法律行为，被代理人对代理人的代理行为，承担民事责任。”《中华人民共和国合同法》第四十九条规定：“行为人没有代理权、超越代理权或者代理权终止后以被代理人名义订立合同，相对人有理由相信行为人有代理权的，该代理行为有效。” 本案中，根据微信聊天记录及往来电子邮件，张智博乃由上海承乘公司石峰介绍给魔鱼公司唐文韬，在双方后续的沟通中，唐文韬将涉案网站测试版账号、用户版和管理版的测试网址上传至该三人微信群中，在唐文韬询问后续网站事宜、软件测试情况等，张智博均与其进行正常业务对接。从一系列的微信及邮件往来可见，张智博是以上海承乘公司名义与唐文韬进行接洽，且负责了对接涉案网站及测试版软件的测试工作，并不仅限于美工部分。同时在双方往来邮件中，唐文韬多次将涉案测试版软件的情况同时告知石峰、张智博，石峰也从未提出张智博并非上海承乘公司的对接员工，故魔鱼公司有理由相信张智博具有代表上海承乘公司的代理权，该代理行为有效，上海承乘公司应对张智博的代理行为承担民事责任。上海承乘公司有关张智博并非其公司员工且仅负责涉案测试版软件的美工部分的上诉主张不能成立。此外，涉案测试版软件在经过上海承乘公司提出相关改进意见后，魔鱼公司已进行相应修改并部署到测试版，并经张智博测试和验证。2017年7月20日唐文韬给石峰、张智博的邮件中亦阐明针对测试版软件的所有修改意见已经修正完毕并整合到测试版，要求上海承乘公司若有其他修改意见应于7月21日前提出，否则该项目进入下一阶段，但石峰、张智博均未在后续提出其他意见，故而可认定涉案测试版软件已经上海承乘公司确认，上海承乘公司应根据涉案合同约定支付52000元。原审法院根据合同双方履行情况，认为应支持部署上线后支付11000元合同款、有关违约金及不支持保修期结束后的13000元的认定，并无不当，应予支持。 综上所述，上海承乘公司的上诉请求不能成立，应予驳回；原审判决认定事实清楚，适用法律正确，应予维持。依照《中华人民共和国民事诉讼法》第一百七十条第一款第一项规定，判决如下： 驳回上诉，维持原判。 二审案件受理费1375元，由上海承乘信息科技有限公司负担。 本判决为终审判决。 审判长 焦 彦 审判员 佘朝阳 审判员 袁晓贞 二〇二〇年五月二十一日 法官助理游美玲 书记员韩丰 裁判要点                            案  号                       （2020）最高法知民终181号                               案  由                       计算机软件开发合同纠纷                               合 议 庭                       审判长：焦 彦             审判员：佘朝阳、袁晓贞                                                     法官助理：游美玲                       书记员：韩丰                               裁判日期                       2020年5月21日                               关 键 词                       表见代理；代理行为效力；民事责任承担                               当 事 人                       上诉人（原审被告）：上海承乘信息科技有限公司；             被上诉人（原审原告）：魔鱼科技（上海）有限公司。                               裁判结果                       驳回上诉，维持原判。             原判主文：（一）上海承乘信息科技有限公司于本判决生效之日起十日内给付魔鱼科技（上海）有限公司合同款人民币63,000元；（二）上海承乘信息科技有限公司于本判决生效之日起十日内以日0.05%为标准，给付魔鱼科技（上海）有限公司上述钱款之违约金，其中人民币52,000元的违约金自2017年7月27日起计算至给付之日止、人民币11,000元的违约金自2019年1月3日计算至给付之日止；（三）驳回魔鱼科技（上海）有限公司的其余诉讼请求。                               涉案法条                       《中华人民共和国民法通则》第六十三条第一款、第二款；             《中华人民共和国合同法》第四十九条；             《中华人民共和国民事诉讼法》第一百七十条第一款第一项。                               法律问题                       表见代理行为及代理权是否有效、民事责任承担的认定问题                               裁判观点                       法人可以通过代理人实施民事法律行为。代理人在代理权限内，以被代理人的名义实施民事法律行为，被代理人对代理人的代理行为，承担民事责任。             行为人没有代理权、超越代理权或者代理权终止后以被代理人名义订立合同，相对人有理由相信行为人有代理权的，该代理行为有效。                               注：本摘要并非判决书之组成部分，不具有法律效力。