合同解除
1. 合同撤销和合同解除的区别
1.1 合同撤销
合同撤销适用于合同签署流程尚未完成的情况。如果在合同签署过程中,至少有一方尚未签署,且需要终止签署流程,此时应进行合同撤销。
由于合同尚未完全形成法律效力,撤销操作相对简单,发起方可以通过调用相关接口或在控制台中进行操作来实现。
撤销完后后,合同变成已撤销状态
1.2 合同解除
合同解除适用于合同签署流程已经完全完成的情况。如果所有签署人都已经完成了签署,但由于某些原因需要终止该合同的效力,此时应进行合同解除。
合同的解除只能通过接口来发起解除协议,不支持控制台上操作。
鉴于合同已经形成完整的法律效力,解除合同需要参与方发起一个解除协议。只有在合同的所有签署方都签署了这个解除协议后,解除动作才能正式完成。
解除完成后,原合同和解除协议都变成已解除状态。
2.撤销协议的发起方
发起资格:只有原合同参与的企业才有资格发起解除协议。个人参与方无权直接发起解除协议。
权限要求:如果非原合同企业的参与人希望发起解除协议,必须事先获得授予解除合同的特定权限。
3. 他方企业参与方的设置方式
即便原合同中可能包含了他方的自动签署功能,但在解除合同的过程中,不支持他方自动签署的。解除协议需要对方企业的人工参与以确保所有事项得到妥善处理。
本教程将通过一个具体的例子来介绍合同解除的流程和注意事项。我们将使用一个虚构的案例,涉及三方:嘎嘎叫测试企业、自然人刘波和典子谦示例企业的猪猪侠。
嘎嘎叫测试企业与两个参与方签订了一份合同
合同ID: yDCkxUUckp4xi4prUmcWB0vO4GwZvS4Y
发起方: 嘎嘎叫测试企业
参与方:
参与方类型 | 参与方信息 | 原合同参与人ApproverNumber编号 | 说明 |
---|---|---|---|
自然人 | 刘波 | 0 | 自然人是无法替换成其他人来签署解除协议 |
企业 | 典子谦示例企业(猪猪侠:ggbound) | 1 | 可以换成典子谦示例企业的其他员工来签署解除协议 |
假设合同已由所有参与方签署完毕,现在由于某些原因,需要解除这份合同。
2.1 不更换他方企业的参与解除的人员,且原合同他方企业不是自动签署
我们不更换解除协议的参与人员,系统将自动从原合同中提取参与方信息,以此来形成解除协议。请求参数如下:
{
"Agent": {
"AppId": "yDwhxUUckp3gl8j5UuFX33LSNozpRsbi",
"ProxyOrganizationOpenId": "org_guaguajiao",//嘎嘎叫测试企业的org_open_id
"ProxyOperator": {
"OpenId": "guagua"//员工 嘎嘎叫 的open_id
}
},
"NeedRelievedFlowId": "yDCkxUUckp4xi4prUmcWB0vO4GwZvS4Y",
"ReliveInfo": {
"Reason": "合同目的已经达到,此合同作废"
}
}
3.1 不更换他方企业的参与解除的人员,且原合同他方企业是自动签署
我们不更换解除协议的参与人员,但是原合同是他方静默签署,我们需要补充原合同的参与人信息,并设置ApproverType为手动签署解除协议。 请求参数如下:
{
"Agent": {
"AppId": "yDwhxUUckp3gl8j5UuFX33LSNozpRsbi",
"ProxyOrganizationOpenId": "org_guaguajiao",//嘎嘎叫测试企业的org_open_id
"ProxyOperator": {
"OpenId": "guagua"//员工 嘎嘎叫 的open_id
}
},
"NeedRelievedFlowId": "yDCkxUUckp4xi4prUmcWB0vO4GwZvS4Y",
"ReliveInfo": {
"Reason": "合同目的已经达到,此合同作废"
},
"ReleasedApprovers": [{
"ApproverNumber": 1,
"ApproverType": "ORGANIZATION",//因为解除协议不支持他方自动签署,这里固定为ORGANIZATION, 不能设置成ENTERPRISESERVER!
"OrganizationName": "典子谦示例企业",
"OpenId": "ggbound" // 猪猪侠在典子谦示例企业下的员工open_id
}
]
}
3.2 更换他方企业的参与解除的人员
假设典子谦示例企业下原合同负责人猪猪侠已离职或不再负责相关业务,生成解除协议时候需要更新参与解除合同的人员。 新的参与方将更换为员工张三,需要手动签署解除协议。 以下是更新参与方并生成解除协议所需的请求参数示例:
{
"Agent": {
"AppId": "yDwhxUUckp3gl8j5UuFX33LSNozpRsbi",
"ProxyOrganizationOpenId": "org_guaguajiao",//嘎嘎叫测试企业的org_open_id
"ProxyOperator": {
"OpenId": "guagua"//员工 嘎嘎叫 的open_id
}
},
"NeedRelievedFlowId": "yDCkxUUckp4xi4prUmcWB0vO4GwZvS4Y",
"ReliveInfo": {
"Reason": "合同目的已经达到,此合同作废"
},
"ReleasedApprovers": [{
"ApproverNumber": 1,
"ApproverType": "ORGANIZATION",//因为解除协议不支持他方自动签署,这里固定为ORGANIZATION, 不能设置成ENTERPRISESERVER!
"OrganizationName": "典子谦示例企业",
"OpenId": "zhangsan" // 张三在典子谦示例企业下的员工open_id
}
]
}
4. 本方企业参与方的设置方式
本教程将通过一个具体的例子来介绍合同解除的流程和注意事项。我们将使用一个虚构的案例,涉及两方:典子谦示例企业的猪猪侠、自然人刘波。
嘎嘎叫测试企业与猪猪侠签订了一份合同
合同ID: yDCkxUUckp4xczh1UmcWB0wDidwB1afK
发起方: 典子谦示例企业
参与方:
参与方类型 | 参与方信息 | 原合同参与人ApproverNumber编号 | 说明 |
---|---|---|---|
自然人 | 刘波 | 0 | 自然人是无法替换成其他人来签署解除协议 |
企业 | 典子谦示例企业(猪猪侠:ggbound) | 1 | 可以换成典子谦示例企业的其他员工来签署解除协议 |
假设合同已由所有参与方签署完毕,现在由于某些原因,需要解除这份合同。
4.1 不更换本方企业的参与解除的人员,并且不用本企业自动签署
我们不更换解除协议的参与人员,系统将自动从原合同中提取参与方信息,以此来形成解除协议。请求参数如下:
{
"Agent": {
"AppId": "yDwhxUUckp3gl8j5UuFX33LSNozpRsbi",
"ProxyOrganizationOpenId": "org_dianziqian",//典子谦示例企业的org_open_id
"ProxyOperator": {
"OpenId": "n9527"
}
},
"NeedRelievedFlowId": "yDCkxUUckp4xczh1UmcWB0wDidwB1afK",
"ReliveInfo": {
"Reason": "合同目的已经达到,此合同作废"
}
}
4.2 更换本方企业的参与解除的人员,并且不用本企业自动签署
由于典子谦示例企业下原合同负责人猪猪侠已离职或不再负责相关业务,我们将在生成解除协议时更新参与人员。 新的参与方将更换为员工张三,解除协议将需要张三手动签署。
以下是请求参数示例:
{
"Agent": {
"AppId": "yDwhxUUckp3gl8j5UuFX33LSNozpRsbi",
"ProxyOrganizationOpenId": "org_dianziqian",
"ProxyOperator": {
"OpenId": "n9527"
}
},
"NeedRelievedFlowId": "yDCkxUUckp4xczh1UmcWB0wDidwB1afK",
"ReliveInfo": {
"Reason": "合同目的已经达到,此合同作废"
},
"ReleasedApprovers": [{
"ApproverNumber": 1,
"ApproverType": "ORGANIZATION",
"OrganizationName": "典子谦示例企业",
"OpenId": "zhangsan" // 张三在典子谦示例企业下的员工open_id
}
]
}
4.3 不更换本方企业的参与解除的人员,并且本企业自动签署
在生成解除协议时,我们将保持原合同的参与人员不变。为了便于自动签署解除协议,您需要手动补充原参与人员的姓名和手机号。
请求参数如下:
{
"Agent": {
"AppId": "yDwhxUUckp3gl8j5UuFX33LSNozpRsbi",
"ProxyOrganizationOpenId": "org_dianziqian",
"ProxyOperator": {
"OpenId": "n9527"
}
},
"NeedRelievedFlowId": "yDCkxUUckp4xczh1UmcWB0wDidwB1afK",
"ReliveInfo": {
"Reason": "合同目的已经达到,此合同作废"
},
"ReleasedApprovers": [{
"ApproverNumber": 1,
"ApproverType": "ENTERPRISESERVER",
"OrganizationName": "典子谦示例企业",
"OpenId": "ggbound" // 猪猪侠在典子谦示例企业下的员工open_id
}
]
}
4.4 更换本方企业的参与解除的人员,并且本企业自动签署
由于典子谦示例企业下原合同负责人猪猪侠已离职或不再负责相关业务,我们将在生成解除协议时更新参与人员。 新的参与方将更换为员工张三。此外,解除协议将由张三自动签署。
请求参数示例:
{
"Agent": {
"AppId": "yDwhxUUckp3gl8j5UuFX33LSNozpRsbi",
"ProxyOrganizationOpenId": "org_dianziqian",
"ProxyOperator": {
"OpenId": "n9527"
}
},
"NeedRelievedFlowId": "yDCkxUUckp4xczh1UmcWB0wDidwB1afK",
"ReliveInfo": {
"Reason": "合同目的已经达到,此合同作废"
},
"ReleasedApprovers": [{
"ApproverNumber": 1,
"ApproverType": "ENTERPRISESERVER",
"OrganizationName": "典子谦示例企业",
"OpenId": "zhangsan" // 张三在典子谦示例企业下的员工open_id
}
]
}
5. 回调通知
在解除协议签署完成后,您将收到两条回调信息:一条是关于原合同已解除的确认(RELIEVED),另一条是解除协议成功(RELIEVED)的通知。 具体的回调结构体可以查看开发者中心的合同相关回调了解详情。