发起解除协议
1. 接口描述
接口请求域名: essbasic.tencentcloudapi.com 。
发起解除协议的主要应用场景为:基于一份已经签署的合同(签署流程),进行解除操作。 解除协议的模板是官方提供,经过提供法务审核,暂不支持自定义。具体用法可以参考文档合同解除。
注意:
原合同必须签署完成后才能发起解除协议。- 只有原合同企业类型的参与人才能发起解除协议,
个人参与方不能发起解除协议。 - 原合同个人类型参与人必须是解除协议的参与人,
不能更换其他第三方个人参与解除协议。 - 如果原合同企业参与人无法参与解除协议,可以指定同企业具有同等权限的
企业员工代为处理。 - 发起解除协议同发起其他企业合同一样,也会参与合同
扣费,扣费标准同其他类型合同。 - 在解除协议签署完毕后,原合同变为已解除状态。
 - 非原合同企业参与人发起解除协议时,需要有
解除合同的权限。 
默认接口请求频率限制:20次/秒。
推荐使用 API Explorer
点击调试API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
| 参数名称 | 必选 | 类型 | 描述 | 
|---|---|---|---|
| Action | 是 | String | 公共参数,本接口取值:ChannelCreateReleaseFlow。 | 
| Version | 是 | String | 公共参数,本接口取值:2021-05-26。 | 
| Region | 否 | String | 公共参数,此参数为可选参数。 | 
| Agent | 是 | Agent | 关于渠道应用的相关信息,包括渠道应用标识、第三方平台子客企业标识及第三方平台子客企业中的员工标识等内容,您可以参阅开发者中心所提供的 Agent 结构体以获取详细定义。 此接口下面信息必填。 
 第三方平台子客企业和员工必须已经经过实名认证  | 
| NeedRelievedFlowId | 是 | String | 待解除的签署流程编号(即原签署流程的编号)。 点击查看流程编号在控制台上的位置 示例值:yDwFmUUckpstqfvzUE1h3jo1f3cqjkGm  | 
| ReliveInfo | 是 | RelieveInfo | 解除协议内容, 包括解除理由等信息。 | 
| ReleasedApprovers.N | 否 | Array of ReleasedApprover | 替换解除协议的签署人, 如不指定新的签署人,将继续使用原流程的签署人作为本解除协议的参与方。  如需更换原合同中的企业端签署人,可通过指定该签署人在原合同列表中的ApproverNumber编号来更换此企业端签署人。(可通过接口DescribeFlowDetailInfo查询签署人的ApproverNumber编号,默认从0开始,顺序递增) 注: 1. 支持更换企业的签署人,不支持更换个人类型的签署人。 2. 己方企业支持自动签署,他方企业不支持自动签署。 3. 仅将需要替换的签署人添加至此列表,无需替换的签署人无需添加进来。  | 
| Deadline | 否 | Integer | 合同流程的签署截止时间,格式为Unix标准时间戳(秒),如果未设置签署截止时间,则默认为合同流程创建后的7天时截止。 如果在签署截止时间前未完成签署,则合同状态会变为已过期,导致合同作废。 示例值:1604912664  | 
| UserData | 否 | String | 调用方自定义的个性化字段,该字段的值可以是字符串JSON或其他字符串形式,客户可以根据自身需求自定义数据格式并在需要时进行解析。该字段的信息将以Base64编码的形式传输,支持的最大数据大小为20480长度。 在合同状态变更的回调信息等场景中,该字段的信息将原封不动地透传给贵方。 回调的相关说明可参考开发者中心的回调通知模块。 示例值:eyJDb21lRnJvbSI6Inh4eCJ9  | 
3. 输出参数
| 参数名称 | 类型 | 描述 | 
|---|---|---|
| FlowId | String | 解除协议流程编号 示例值:yDR1AUUgygj**uO4zjE8gTG7xvgH  | 
| RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 | 
4. 示例
示例1 发起解除协议(默认情况,使用原流程的签署人)
- 使用原流程的签署人
 - 包含了详细的解除内容
 
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelCreateReleaseFlow
<公共请求参数>
{
    "Agent": {
        "ProxyOrganizationOpenId": "org_dianziqian",
        "ProxyOperator": {
            "OpenId": "n9527"
        },
        "AppId": "yDRSRUUgygj6rqi6UuO4zjEBDACwAjgT"
    },
    "NeedRelievedFlowId": "yDwFmUUckpst10i3UubBSat8PWOt2iQF",
    "ReliveInfo": {
        "Reason": "因为业务调整, 结束合作。",
        "RemainInForceItem": "在业务结束前已产生的订单依旧有效。",
        "OriginalExpenseSettlement": "甲方需付给乙方xxxx以作赔偿。",
        "OriginalOtherSettlement": "原合同中的补充条款依然生效",
        "OtherDeals": "解除后1天内部签署新的合同"
    }
}
输出示例
{
    "Response": {
        "FlowId": "yDwFdUUckps******xAhL7zuaIwkMth",
        "RequestId": "s1669**2203341"
    }
}
示例2 错误示例-解除协议中更换原合同个人类型的参与人
- 解除某个包含个人类型签署人的合同
 - 更换其他个人类型签署人作为解除协议的参与人
 
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelCreateReleaseFlow
<公共请求参数>
{
    "Agent": {
        "AppId": "yDRSRUUgygj6rqi6UuO4zjEBDACwAjgT",
        "ProxyOperator": {
            "OpenId": "n9527"
        },
        "ProxyOrganizationOpenId": "org_dianziqian"
    },
    "NeedRelievedFlowId": "yDR1AUUgygjazuesUuO4zjESPW4PkfNi",
    "ReleasedApprovers": [
        {
            "ApproverNumber": 2,
            "ApproverType": "PERSON",
            "Mobile": "15100000000",
            "Name": "李四"
        }
    ],
    "ReliveInfo": {
        "OriginalExpenseSettlement": "甲方需付给乙方xxxx以作赔偿",
        "OriginalOtherSettlement": "原合同中的补充条款依然生效",
        "OtherDeals": "解除后1天内部签署新的合同",
        "Reason": "因为业务调整, 结束合作。",
        "RemainInForceItem": "在业务结束前已产生的订单依旧有效。"
    }
}
输出示例
{
    "Response": {
        "Error": {
            "Code": "FailedOperation",
            "Message": "不能更换非企业签署人身份信息"
        },
        "RequestId": "s16939***23898"
    }
}
示例3 发起解除协议(替换原流程中本企业的参与人并指定其为自动签署)
- 更换原合同中本方企业的参与人
 - 该企业参与人指定为自动签署(ApproverType 设置为 ENTERPRISESERVER)
 
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelCreateReleaseFlow
<公共请求参数>
{
    "Agent": {
        "AppId": "yDRSRUUgygj6rqi6UuO4zjEBDACwAjgT",
        "ProxyOperator": {
            "OpenId": "n9527"
        },
        "ProxyOrganizationOpenId": "org_dianziqian"
    },
    "NeedRelievedFlowId": "yDR1AUUgygjazuesUuO4zjESPW4PkfNi",
    "ReleasedApprovers": [
        {
            "Mobile": "13200000000",
            "Name": "典子谦",
            "ApproverNumber": 2,
            "ApproverType": "ENTERPRISESERVER",
            "OrganizationName": "典子谦示例企业"
        }
    ],
    "ReliveInfo": {
        "OriginalExpenseSettlement": "甲方需付给乙方以作赔偿",
        "OriginalOtherSettlement": "原合同中的补充条款依然生效",
        "OtherDeals": "解除后1天内部签署新的合同",
        "Reason": "因为业务调整, 结束合作。",
        "RemainInForceItem": "在业务结束前已产生的订单依旧有效。"
    }
}
输出示例
{
    "Response": {
        "FlowId": "yDwFmUUckpstqfvzUE1h3jo1f3cqjkGm",
        "RequestId": "s312334445587989"
    }
}
示例4 发起解除协议(使用本企业的签署人,替换用原流程中本企业的签署人)
- 使用本企业的签署人
 - 包含了详细的解除内容
 - 替换原流程中本子客企业的签署人(需要指定 OpenId, OrganizationOpenId,Name, Mobile,OrganizationName)
 - 被替换的原流程中的签署人ApproverNumber=1(即第二个签署人,在原流程签署人列表中的第二位)
 
扩展信息: 针对ApproverNumber举个例子, 例如在原流程中共有三个签署人(a, b, c), 那么a是第一位(ApproverNumber=0),b是第二位(ApproverNumber=1),c是第三位(ApproverNumber=2), 注意这里的顺序不是签署顺序,仅仅是签署人列表中的自然顺序,签署人列表的获取可以参考DescribeFlowDetailInfo接口。
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelCreateReleaseFlow
<公共请求参数>
{
    "Agent": {
        "ProxyOrganizationOpenId": "org_dianziqian",
        "ProxyOperator": {
            "OpenId": "n9527"
        },
        "AppId": "yDRSRUUgygj6rqi6UuO4zjEBDACwAjgT"
    },
    "NeedRelievedFlowId": "yDwFmUUckpst10i3UubBSat8PWOt2iQF",
    "ReleasedApprovers": [
        {
            "ApproverNumber": 1,
            "OpenId": "dianqiqian",
            "Name": "典子谦",
            "Mobile": "13200000000",
            "ApproverType": "ORGANIZATION",
            "OrganizationOpenId": "org_dianziqian",
            "OrganizationName": "典子谦示例企业"
        }
    ],
    "ReliveInfo": {
        "Reason": "因为业务调整, 结束合作。",
        "RemainInForceItem": "在业务结束前已产生的订单依旧有效。",
        "OriginalExpenseSettlement": "甲方需付给乙方xxxx以作赔偿。",
        "OriginalOtherSettlement": "原合同中的补充条款依然生效",
        "OtherDeals": "解除后1天内部签署新的合同"
    }
}
输出示例
{
    "Response": {
        "FlowId": "yDwFdUUckps******xAhL7zuaIwkMth4",
        "RequestId": "s1669**2203341"
    }
}
示例5 发起解除协议(替换原流程中本企业的参与人并指定签署人角色、签署控件)
- 更换原合同中本方企业的参与人
 - 给该企业参与人指定自定义的角色名称(通过设置ApproverSignRole)
 - 给该企业参与人指定签署控件类型为手写签名(通过设置ApproverSignComponentType)
 
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelCreateReleaseFlow
<公共请求参数>
{
    "Agent": {
        "AppId": "yDRSRUUgygj6rqi6UuO4zjEBDACwAjgT",
        "ProxyOperator": {
            "OpenId": "n9527"
        },
        "ProxyOrganizationOpenId": "org_dianziqian"
    },
    "NeedRelievedFlowId": "yDwFmUUckpst10i3UubBSat8PWOt2iQF",
    "ReleasedApprovers": [
        {
            "ApproverNumber": 1,
            "ApproverSignComponentType": "SIGN_SIGNATURE",
            "ApproverSignRole": "自定义的签署方角色(供应商)",
            "ApproverType": "ORGANIZATION",
            "Mobile": "13200000000",
            "Name": "典子谦",
            "OrganizationName": "典子谦示例企业"
        }
    ],
    "ReliveInfo": {
        "OriginalExpenseSettlement": "甲方需付给乙方xxxx以作赔偿。",
        "OriginalOtherSettlement": "原合同中的补充条款依然生效",
        "OtherDeals": "解除后1天内部签署新的合同",
        "Reason": "因为业务调整, 结束合作。",
        "RemainInForceItem": "在业务结束前已产生的订单依旧有效。"
    }
}
输出示例
{
    "Response": {
        "FlowId": "yDwgkUU7y***********zWBfv",
        "RequestId": "s168809**839"
    }
}
5. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
| 错误码 | 描述 | 
|---|---|
| FailedOperation | 操作失败。 | 
| InternalError | 内部错误。 | 
| InternalError.Api | 其他API错误。 | 
| InternalError.Pdf | Pdf合成错误。 | 
| InternalError.System | 系统错误。 | 
| InvalidParameter.Application | 应用号不存在。 | 
| InvalidParameter.ApproverType | 参数错误,不合法的签署人类型,请修改后重试。 | 
| InvalidParameter.Mobile | 手机号码不正确。 | 
| InvalidParameter.Name | 姓名不符合要求。 | 
| InvalidParameter.OpenId | OpenId不合法。 | 
| InvalidParameter.OrganizationName | 企业名称不合法。 | 
| InvalidParameter.ParamError | 参数错误。 | 
| MissingParameter | 缺少参数错误。 | 
| OperationDenied | 操作被拒绝。 | 
| OperationDenied.ApproverRepeat | 参与人信息有重复 | 
| OperationDenied.UserNotInOrganization | 用户不归属于当前企业,无法操作,请检查后重试。 | 
| ResourceNotFound | 资源不存在。 | 
| ResourceNotFound.Flow | 未找到对应流程。 | 
| UnauthorizedOperation.NoPermissionFeature | 请升级到对应版本后即可使用该接口。 |