批量撤销合同流程
1. 接口描述
接口请求域名: essbasic.tencentcloudapi.com 。
通过合同编号批量撤销合同,单次最多支持撤销100份合同。
适用场景:如果某个合同当前至少还有一方没有签署,则可通过该接口取消该合同流程。常用于合同发错、内容填错,需要及时撤销的场景。
- 可撤回合同状态:未全部签署完成
- 不撤回合同状态:已全部签署完成、已拒签、已过期、已撤回、拒绝填写、已解除等合同状态。
批量撤销结果可以通过接口返回的TaskId关联批量撤销任务结果回调或通过接口查询批量撤销合同结果主动查询。
注:
- 有对应合同撤销权限的人: 合同的发起人(并已经授予撤销权限)或者发起人所在企业的超管、法人
- 签署完毕的合同需要双方走解除流程将合同作废,可以参考发起解除合同流程接口
- 只有撤销没有参与方签署过或只有自动签署签署过的合同,才会返还合同额度。
- 撤销后可以看合同PDF内容的人员: 发起方的超管, 发起方自己,发起方撤销合同的操作人员,已经签署合同、已经填写合同、邀请填写已经补充信息的参与人员, 其他参与人员看不到合同的内容。
默认接口请求频率限制:20次/秒。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:ChannelBatchCancelFlows。 |
Version | 是 | String | 公共参数,本接口取值:2021-05-26。 |
Region | 否 | String | 公共参数,此参数为可选参数。 |
Agent | 是 | Agent | 关于渠道应用的相关信息,包括渠道应用标识、第三方平台子客企业标识及第三方平台子客企业中的员工标识等内容,您可以参阅开发者中心所提供的 Agent 结构体以获取详细定义。 此接口下面信息必填。
第三方平台子客企业和员工必须已经经过实名认证 |
FlowIds.N | 是 | Array of String | 要撤销的合同流程ID列表,最多100个,超过100不处理 示例值:["yDwFmUUckpstqfvzUE1h3jo1f3cqjkGm"] |
CancelMessage | 否 | String | 撤回原因,长度不能超过200,只能由中文、字母、数字和下划线组成。 备注: 如果不传递撤回原因,那么默认撤回原因是 "自动撤销(通过接口实现)" 示例值:合同里边支付的加个写错了 |
CancelMessageFormat | 否 | Integer | 撤销理由自定义格式, 会展示在合同预览的界面中, 可以选择下面的组合方式: 0 : 默认格式, 合同封面页面会展示为: 发起方-企业名称-撤销的经办人名字以CancelMessage的理由撤销当前合同 1 : 合同封面页面会展示为: 发起方以CancelMessage的理由撤销当前合同 2 : 保留企业名称, 合同封面页面会展示为: 发起方-企业名称以CancelMessage的理由撤销当前合同 3 : 保留企业名称+经办人名字, 合同封面页面会展示为: 发起方-企业名称-撤销的经办人名字以CancelMessage的理由撤销当前合同 注: CancelMessage为撤销当前合同的理由 |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
FailMessages | Array of String | 签署流程批量撤销失败原因,错误信息与流程Id一一对应,成功为"", 失败则对应失败原因 注: 如果全部撤销成功, 此数组为空数组 |
TaskId | String | 批量撤销任务编号,为32位字符串,可用于查询批量撤销合同结果 或关联批量撤销任务结果回调 |
RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 撤销合同部分成功
撤销4个合同,并且自定义撤销理由,使用只保留身份信息的方式(CancelMessageFormat 设置为2)
假设发起方是典子谦示例企业的经办人张三,这批合同撤销后,签署方看到的撤销理由是:发起方-典子谦示例企业以"合同内容错误,需要修正"的理由撤销当前合同
其中合同yDmFdUUckpsvi8mpUEn0aFR1tWzReolk 已经签署完成,无法撤销。
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelBatchCancelFlows
<公共请求参数>
{
"Agent": {
"AppId": "yDRSRUUgygj6qnwfUuO4zjEwc193c2hH",
"ProxyOperator": {
"OpenId": "n9527"
},
"ProxyOrganizationOpenId": "org_dianziqian"
},
"CancelMessage": "合同内容错误,需要修正",
"CancelMessageFormat": 1,
"FlowIds": [
"yDmFmUUckpstqfvzUE1h3jo1f3cqjkGa",
"yDmFmUUckpst10i3UubBSat8PWOt2iQc",
"yDmFdUUckpsvi8mpUEn0aFR1tWzReolk",
"yDmFmUUckpst10i3UubBAat8PSOt2iJc"
]
}
输出示例
{
"Response": {
"FailMessages": [
"",
"",
"合同流程Id:yDmFdUUckpsvi8mpUEn0aFR1tWzReolk,无法撤回,错误信息:合同当前状态不支持撤销",
""
],
"RequestId": "s1698669052286290493",
"TaskId": "yDCVWUUckpwk3b05UyEZnO0xOn4snWWY"
}
}
示例2 自定义撤销理由,使用只保留身份信息的方式撤销合同
撤销3个合同,并且自定义撤销理由,使用只保留身份信息的方式(CancelMessageFormat 设置为1)
假设发起方是典子谦示例企业的经办人张三,这批合同撤销后,签署方看到的撤销理由是:发起方以"合同内容错误,需要修正"的理由撤销当前合同
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelBatchCancelFlows
<公共请求参数>
{
"Agent": {
"AppId": "yDRSRUUgygj6qnwfUuO4zjEwc193c2hH",
"ProxyOperator": {
"OpenId": "n9527"
},
"ProxyOrganizationOpenId": "org_dianziqian"
},
"CancelMessage": "合同内容错误,需要修正",
"CancelMessageFormat": 1,
"FlowIds": [
"yDwFmUUckpstqfvzUE1h3jo1f3cqjkGa",
"yDwFmUUckpst10i3UubBSat8PWOt2iQc",
"yDwFdUUckpsvi8mpUEn0aFR1tWzReolk"
]
}
输出示例
{
"Response": {
"FailMessages": [],
"RequestId": "s1698667230378832487",
"TaskId": "yDCVWUUckpwk3b05UyEZnO0xOn4snWWY"
}
}
示例3 自定义撤销理由,使用保留身份信息+企业名称的方式撤销合同
撤销3个合同,并且自定义撤销理由,使用只保留身份信息的方式(CancelMessageFormat 设置为2)
假设发起方是典子谦示例企业的经办人张三,这批合同撤销后,签署方看到的撤销理由是:发起方-典子谦示例企业以"合同内容错误,需要修正"的理由撤销当前合同
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelBatchCancelFlows
<公共请求参数>
{
"Agent": {
"AppId": "yDRSRUUgygj6qnwfUuO4zjEwc193c2hH",
"ProxyOperator": {
"OpenId": "n9527"
},
"ProxyOrganizationOpenId": "org_dianziqian"
},
"CancelMessage": "合同内容错误,需要修正",
"CancelMessageFormat": 1,
"FlowIds": [
"yDmFmUUckpstqfvzUE1h3jo1f3cqjkGa",
"yDmFmUUckpst10i3UubBSat8PWOt2iQc",
"yDmFdUUckpsvi8mpUEn0aFR1tWzReolk"
]
}
输出示例
{
"Response": {
"FailMessages": [],
"RequestId": "s1698667230378832497",
"TaskId": "yDCVWUUckpwk3b05UyEZnO0xOn4snWWY"
}
}
示例4 自定义撤销理由,保留身份信息+企业名称+经办人名称撤销合同
撤销3个合同,并且自定义撤销理由,使用默认格式(CancelMessageFormat 设置为3)
假设发起方是典子谦示例企业的经办人张三,这批合同撤销后,签署方看到的撤销理由是:发起方-典子谦示例企业-张三以"合同内容错误,需要修正"的理由撤销当前合同
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelBatchCancelFlows
<公共请求参数>
{
"Agent": {
"AppId": "yDRSRUUgygj6qnwfUuO4zjEwc193c2hH",
"ProxyOperator": {
"OpenId": "n9527"
},
"ProxyOrganizationOpenId": "org_dianziqian"
},
"CancelMessage": "合同内容错误,需要修正",
"CancelMessageFormat": 3,
"FlowIds": [
"yDwFmUUckpstqfvzUE1h3jo1f3cqjkGm",
"yDwFmUUckpst10i3UubBSat8PWOt2iQF",
"yDwFdUUckpsvi8mpUEn0aFR1tWzReoTk"
]
}
输出示例
{
"Response": {
"FailMessages": [],
"RequestId": "s1698667230378832486",
"TaskId": "yDCVWUUckpwk3b05UyEZnO0xOn4snWWY"
}
}
5. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
错误码 | 描述 |
---|---|
FailedOperation | 操作失败。 |
InvalidParameter.DupTask | 重复提交任务。 |
InvalidParameter.ParamError | 参数错误。 |
OperationDenied | 操作被拒绝。 |
OperationDenied.FlowHasTerminated | 流程已终止。 |
OperationDenied.UserNotInOrganization | 用户不归属于当前企业,无法操作,请检查后重试。 |
ResourceNotFound | 资源不存在。 |
ResourceNotFound.Application | 应用号不存在。 |
ResourceNotFound.User | 用户信息不存在。 |
UnauthorizedOperation.NoPermissionFeature | 请升级到对应版本后即可使用该接口。 |