合同撤销返还额度说明
一、概述
调用撤销接口(CancelFlow / CreateBatchCancelFlowUrl)撤销合同时,系统会根据合同类型和签署状态判断是否返还已消耗的合同额度。
本文档从开发者视角说明额度返还规则,帮助你在调用撤销接口前判断哪些场景会返还额度。
二、不返还额度的场景
以下场景的合同撤销不返还任何合同额度:
2.1 模块化合同撤销
模块化计费模式下发起的合同,撤销时不返还合同额度。
模块化计费按实际签署方数量动态计费,非标准合同份数模式,因此撤销时不返还额度。
模块化合同的购买需要联系电子签运营同学。
2.2 单据签合同撤销
通过单据签(单据类合同)发起的合同,撤销时不返还合同额度。
单据签合同属于特殊合同类型,不适用标准合同额度的返还规则。
2.2.1 什么是单据签合同?
单据签合同(简称"单据签"),是指所有签署方均为自动签署人的合同类型。在合同签署流程中,所有参与方(甲方、乙方、丙方等)都不需要手动点击签署、不需要扫码或短信验证码,系统自动完成所有签署动作。
核心特征:
| 特征 | 说明 |
|---|---|
| 签署方类型 | 所有签署方均为自动签署人 |
| 签署方式 | 无需人工干预,系统自动完成签署 |
| 签署顺序 | 按预设顺序自动流转 |
| 适用场景 | 高频、标准化、低风险的合同 |
与普通电子签合同的区别:
| 对比项 | 单据签合同 | 普通电子签合同 |
|---|---|---|
| 签署人类型 | 全部为自动签署人 | 至少一方为手动签署人 |
| 人工操作 | 无需任何人工操作 | 需要手动点击、验证码等 |
| 签署效率 | 极高,秒级完成 | 取决于签署人响应速度 |
| 适用场景 | 内部单据、标准化流程 | 对外商务、需确认的合同 |
典型应用场景:
- 内部审批单据:如费用报销单、请假单、采购申请单等,审批通过后自动完成签署归档
- 标准化订单:系统自动生成的采购订单、销售订单,双方系统对接后自动签署
- 批量对账单:月度对账单、结算单,系统自动比对后自动签署确认
- 系统间自动流转的单据:ERP → 电子签平台 → 归档,全链路无人干预
为什么叫"单据签"?
因为这类合同本质上是一张单据(如订单、回执、确认单),而不是传统意义上需要双方反复磋商的"合同"。其特点是内容标准化、高频大量、低风险、全自动——不需要任何一方人工介入签署环节。
三、返还额度的场景
3.1 返还条件
标准合同(非模块化、非单据签)撤销时,同时满足以下所有条件才返还合同额度:
- 合同类型:标准企业版合同(
CloudEnterprise),且非模块化合同、非单据签合同 - 签署状态:合同中没有任何参与方签署过(即所有签署方均未签署)
- 自动签例外:仅有自动签署(静默签)签署过的标准合同,撤销时仍可返还额度
- 撤销接口:通过
CancelFlow或批量撤销接口撤销
3.2 返还规则速查表
| 条件 | 是否返还 |
|---|---|
| 标准合同,无人签署(含仅有自动签),撤销 | ✅ 返还 |
| 标准合同,已有人工签署,撤销 | ❌ 不返还 |
| 模块化合同撤销 | ❌ 不返还 |
| 单据签合同撤销 | ❌ 不返还 |
3.3 返还额度
返还的额度为发起该合同时消耗的合同份数,即 1:1 返还。
例如:发起一份标准合同消耗 1 份企业版合同额度,撤销后返还 1 份。
3.4 集团主带子场景
集团账号中,主企业代子企业发起的合同,撤销时额度返还规则如下:
- 返还目标:撤销后返还的合同额度归属于主企业(即发起合同的主企业账户),而非子企业
- 适用规则:返还条件与标准合同一致(参见 3.1 返还条件),需满足无人签署、非模块化、非单据签等条件
例如:主企业 A 代子企业 B 发起一份标准合同(消耗主企业 A 的 1 份合同额度),签署前撤销,则返还 1 份合同额度到主企业 A 的账户。
四、API 调用示例
4.1 撤销单个合同(CancelFlow)
请求示例:
POST / HTTP/1.1
Host: ess.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CancelFlow
<公共请求参数>
{
"Operator": {
"UserId": "yDRCLUUgygq2xun5UuO4zjEwg0vjoimj"
},
"FlowId": "yDwFmUUckpstqfvzUE1h3jo1f3cqjkGm",
"CancelMessage": "合同内容填写有误,需要撤销重发"
}
响应示例:
{
"Response": {
"RequestId": "85651ecc8"
}
}
⚠️ 注意:调用成功后,系统会自动判断是否返还额度。接口返回成功不代表额度已返还,需根据本文档的规则判断,或通过费用回调(
BillingUse)确认返还结果。
4.2 批量撤销合同(CreateBatchCancelFlowUrl)
请求示例:
POST / HTTP/1.1
Host: ess.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: CreateBatchCancelFlowUrl
<公共请求参数>
{
"Operator": {
"UserId": "yDRCLUUgygq2xun5UuO4zjEwg0vjoimj"
},
"FlowIds": [
"yDwFmUUckpstqfvzUE1h3jo1f3cqjkGm",
"yDwFkUUckpstzjhfUugNAWf1KibXqS26"
]
}
响应示例:
{
"Response": {
"TaskId": "yDwFdUUckpswdrniUuzcbXw8N43W6Kcz",
"WebUrl": "https://res.ess.tencent.cn/cdn/h5-activity/jump-mp.html?to=CANCEL_FLOW_LIST&request_token=xxxxx",
"RequestId": "85651ecc9"
}
}
⚠️ 注意:批量撤销通过小程序操作,系统会逐份合同判断是否满足返还条件。可通过批量撤销任务结果回调获取每份合同的撤销结果。
4.3 常见错误码
调用撤销接口时可能遇到的错误码及其含义:
| 错误码 | 描述 | 处理建议 |
|---|---|---|
OperationDenied.FlowHasTerminated | 合同已全部签署完成,无法撤销 | 签署完成的合同需走解除流程(CreateReleaseFlow) |
InvalidParameter.CancelReason | 撤销理由不合法 | 检查撤销理由长度(≤200字符)和内容格式 |
ResourceNotFound.Flow | 合同流程ID不存在 | 检查传入的 FlowId 是否正确 |
五、返还次数限制与告警
5.1 返还次数限制
为保障平台公平使用,腾讯电子签对合同撤销返还额度设置了次数上限:
- 统计范围:仅统计发起方主动发起的合同的撤销返还次数
- 赠送基数:以企业获赠的合同份数(即赠送合同套餐额度)为基准
- 返还比例:赠送合同份数 1:1 对应可返还次数
- 例如:企业获赠 1000 份合同额度,则有 1000 次撤销返还机会
- 超出限制:超过可返还次数后,撤销合同不再返还额度
5.2 返还回调说明
每次发生额度返还时,系统会通过费用回调(BillingUse)通知开发者,开发者可自行统计返还次数。
注:返还次数用完后,再次撤销满足条件的合同不再返还额度,但系统不会针对"不返还"的情况发送费用回调通知。费用回调仅在实际发生额度返还时触发。
回调示例:
{
"MsgId": "yDwFdUUckpswdrniUuzcbXw8N43W6Kcz",
"MsgType": "BillingUse",
"MsgVersion": "CustomApp",
"MsgData": {
"FlowId": "yDwFdUUckps******uzcbXwoXbRF6ja3",
"FlowName": "典子谦示例合同",
"CreateOrganizationName": "典子谦示例企业",
"QuotaType": "CloudEnterprise",
"UseCount": -1,
"CostTime": 1695037514,
"QuotaName": "企业版运营礼包",
"CostType": 2,
"Remark": "返还次数已达上限,本次为最后一次返还"
}
}
注:
UseCount为负值表示返还额度,CostType: 2表示撤销返还。
六、判断流程图
合同撤销
│
├── 模块化合同? ──→ ❌ 不返还
│
├── 单据签合同? ──→ ❌ 不返还
│
└── 标准合同
│
├── 已有人工签署? ──→ ❌ 不返还
│
└── 无人签署(或仅有自动签)
│
├── 返还次数未超限? ──→ ✅ 返还 1:1
│
└── 返还次数已超限 ──→ ❌ 不返还(无回调)
七、常见问题
Q1:返还次数用完后,撤销合同会怎样?
返还次数用完后,撤销标准合同(满足其他返还条件)时,不再返还合同额度。系统不会针对"不返还"的情况发送费用回调通知。
Q2:批量撤销是否适用同样的返还规则?
是的。批量撤销(CreateBatchCancelFlowUrl)同样适用以上返还规则,系统会逐份合同判断是否满足返还条件。
Q3:撤销后返还的额度有有效期吗?
返还的额度继承原合同额度所属套餐的有效期。
示例: 企业于 2025 年 6 月 1 日获赠 1000 份企业版合同额度(有效期至 2026 年 6 月 1 日),发起合同消耗 1 份后撤销,返还的 1 份额度有效期仍至 2026 年 6 月 1 日。