创建一码多签签署码
1. 接口描述
接口请求域名: essbasic.tencentcloudapi.com 。
此接口(ChannelCreateMultiFlowSignQRCode)用于创建一码多签签署码。
适用场景: 签署人可通过扫描二维码补充签署信息进行实名签署。常用于提前不知道签署人的身份信息场景,例如:劳务工招工、大批量员工入职等场景。
注意:
- 本接口适用于发起方没有填写控件的 B2C或者单C模板, 若是B2C模板,还要满足以下任意一个条件
- 模板中配置的签署顺序是无序
- B端企业的签署方式是静默签署
- B端企业是非首位签署
- 通过扫描一码多签签署码发起的合同,合同涉及到的回调消息可参考文档合同发起及签署相关回调
- 用户通过扫描一码多签签署码发起合同时,因企业额度不足导致失败 会触发签署二维码相关回调,具体参考文档签署二维码相关回调
签署码的样式如下图:
默认接口请求频率限制:20次/秒。
推荐使用 API Explorer
点击调试API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。
2. 输入参数
以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。
参数名称 | 必选 | 类型 | 描述 |
---|---|---|---|
Action | 是 | String | 公共参数,本接口取值:ChannelCreateMultiFlowSignQRCode。 |
Version | 是 | String | 公共参数,本接口取值:2021-05-26。 |
Region | 否 | String | 公共参数,此参数为可选参数。 |
Agent | 是 | Agent | 关于渠道应用的相关信息,包括渠道应用标识、第三方平台子客企业标识及第三方平台子客企业中的员工标识等内容,您可以参阅开发者中心所提供的 Agent 结构体以获取详细定义。 此接口下面信息必填。
第三方平台子客企业和员工必须已经经过实名认证 |
TemplateId | 是 | String | 合同模板ID,为32位字符串。 示例值:yDRS4UxxxuO4zjEC0osCOsHS |
FlowName | 是 | String | 合同流程的名称(可自定义此名称),长度不能超过200,只能由中文、字母、数字和下划线组成。 该名称还将用于合同签署完成后的下载文件名。 示例值:测试合同 |
MaxFlowNum | 否 | Integer | 通过此二维码可发起的流程最大限额,如未明确指定,默认为5份。 一旦发起流程数超越该限制,该二维码将自动失效。 示例值:100 |
FlowEffectiveDay | 否 | Integer | 合同流程的签署有效期限,若未设定签署截止日期,则默认为自合同流程创建起的7天内截止。 若在签署截止日期前未完成签署,合同状态将变更为已过期,从而导致合同无效。 最长设定期限不得超过30天。 示例值:7 |
QrEffectiveDay | 否 | Integer | 二维码的有效期限,默认为7天,最高设定不得超过90天。 一旦超过二维码的有效期限,该二维码将自动失效。 示例值:7 |
Restrictions.N | 否 | Array of ApproverRestriction | 指定签署人信息。 在指定签署人后,仅允许特定签署人通过扫描二维码进行签署。 |
ApproverComponentLimitTypes.N | 否 | Array of ApproverComponentLimitType | 指定签署方经办人控件类型是个人印章签署控件(SIGN_SIGNATURE) 时,可选的签名方式。 示例值:[ { "RecipientId": "yDwJNUUckpkojrssUxTFHk6xvcX2xigb", "Values": [ "HANDWRITE", "SYSTEM_ESIGN" ] }, { "RecipientId": "yDwJNUUckpkojrsqUxTFHk6yndh20CpW", "Values": [ "OCR_ESIGN" ] } ] |
ForbidPersonalMultipleSign | 否 | Boolean | 禁止个人用户重复签署,默认不禁止,即同一用户可多次扫码签署多份合同。若要求同一用户仅能扫码签署一份合同,请传入true。 |
FlowNameAppendScannerInfo | 否 | Boolean | 合同流程名称是否应包含扫码签署人的信息,且遵循特定格式(flowname-姓名-手机号后四位)。 例如,通过参数FlowName设定的扫码发起合同名称为“员工入职合同”,当扫码人张三(手机号18800009527)扫码签署时,合同名称将自动生成为“员工入职合同-张三-9527”。 示例值:true |
3. 输出参数
参数名称 | 类型 | 描述 |
---|---|---|
QrCode | SignQrCode | 一码多签签署码的基本信息,用户可扫描该二维码进行签署操作。 |
SignUrls | SignUrl | 一码多签签署码链接信息,适用于客户系统整合二维码功能。通过链接,用户可直接访问电子签名小程序并签署合同。 |
RequestId | String | 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 |
4. 示例
示例1 创建一码多签签署码失败-模板不支持
如果模板不符合以下以下任意一个条件
- 模板中配置的签署顺序是无序
- B端企业的签署方式是静默签署
- B端企业是非首位签署 则创建二维码失败,返回错误信息
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelCreateMultiFlowSignQRCode
<公共请求参数>
{
"FlowName": "通过签署二维码创建的示例合同",
"Agent": {
"ProxyOperator": {
"OpenId": "proxy-operator-openid"
},
"ProxyOrganizationOpenId": "proxy-org-openid",
"AppId": "yDRscUUgyg1zr7wnUyJ8QMwwnHc4OOcQ"
},
"FlowEffectiveDay": 7,
"TemplateId": "yDRvzUUgygqj42ouUuO4zjEueBrK5MeV",
"MaxFlowNum": 100,
"QrEffectiveDay": 7
}
输出示例
{
"Response": {
"Error": {
"Code": "FailedOperation.QrCodeTemplateId",
"Message": "二维码生成失败,模板未满足生成二维码"
},
"RequestId": "s169*****0872"
}
}
示例2 创建有数量或时间限制的一码多签签署码
创建一码多扫流程签署二维码,设置该二维码在7天内有效,并将最大合同流程签署数量限制为100份。 设定签署合同的有效期为7天。
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelCreateMultiFlowSignQRCode
<公共请求参数>
{
"FlowName": "通过签署二维码创建的示例合同",
"Agent": {
"ProxyOperator": {
"OpenId": "proxy-operator-openid"
},
"ProxyOrganizationOpenId": "proxy-org-openid",
"AppId": "yDRscUUgyg1zr7wnUyJ8QMwwnHc4OOcQ"
},
"FlowEffectiveDay": 7,
"TemplateId": "yDRvzUUgygqj42ouUuO4zjEueBrK5MeV",
"MaxFlowNum": 100,
"QrEffectiveDay": 7
}
输出示例
{
"Response": {
"QrCode": {
"ExpiredTime": 1695783727,
"QrCodeId": "yDwJNUUckpkoj0mdUIJN2kC3XWFFaSuR",
"QrCodeUrl": "https://dyn.test.ess.tencent.cn/imgs/multiSignQrCodes/QrCode/yDwJNUUckpkoj0mdUIJN2kC3XWFFaSuR.png"
},
"RequestId": "s1695178926924585393",
"SignUrls": {
"AppSignUrl": "pages/guide?from=default&where=mini&autoJumpBack=true&to=CHANNEL_CONTRACT_COVER&qrCodeId=yDwJNUUckpkoj0mdUIJN2kC3XWFFaSuR&expiredTime=1695783727",
"EffectiveTime": "",
"HttpSignUrl": "https://res.ess.tencent.cn/cdn/h5-activity-dev/jump-mp.html?where=mini&from=MSG&to=CHANNEL_CONTRACT_COVER&qrCodeId=yDwJNUUckpkoj0mdUIJN2kC3XWFFaSuR&expiredTime=1695783727"
}
}
}
示例3 创建指定了签署方签名方式的一码多签签署码
1.使用B2C模板 yDRscUUgyg1zr7wnUyJ8QMwwnHc4OOcQ 创建了一个签署二维码。 2.指定RecipientId 为 yDRscUUgyg3zr9vfUyJ8QKwCN7z9YcOh 的签署人在签名时可以手写(HANDWRITE) 或者使用系统签名 (SYSTEM_ESIGN)。 3.指定RecipientId 为 yDwJNUUckpkojrmqUxTFHk0yndh70CpW 的签署人在签名时只能使用AI智能识别手写签名(OCR_ESIGN)。
输入示例
POST / HTTP/1.1
Host: essbasic.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ChannelCreateMultiFlowSignQRCode
<公共请求参数>
{
"Agent": {
"ProxyOperator": {
"OpenId": "proxy-operator-openid"
},
"ProxyOrganizationOpenId": "proxy-org-openid",
"AppId": "yDRscUUgyg1zr7wnUyJ8QMwwnHc4OOcQ"
},
"TemplateId": "yDRvzUUgygqj42ouUuO4zjEueBrK5MeV",
"FlowName": "通过签署二维码创建的示例合同",
"FlowEffectiveDay": 5,
"QrEffectiveDay": 7,
"MaxFlowNum": 100,
"ApproverComponentLimitTypes": [
{
"RecipientId": "yDRscUUgyg3zr9vfUyJ8QKwCN7z9YcOh",
"Values": [
"HANDWRITE",
"SYSTEM_ESIGN"
]
},
{
"RecipientId": "yDwJNUUckpkojrmqUxTFHk0yndh70CpW",
"Values": [
"OCR_ESIGN"
]
}
]
}
输出示例
{
"Response": {
"QrCode": {
"ExpiredTime": 1695783727,
"QrCodeId": "yDwJNUUckpkoj0mdUIJN2kC3XWFFaSuR",
"QrCodeUrl": "https://dyn.test.ess.tencent.cn/imgs/multiSignQrCodes/QrCode/yDwJNUUckpkoj0mdUIJN2kC3XWFFaSuR.png"
},
"RequestId": "s1695178926924585393",
"SignUrls": {
"AppSignUrl": "pages/guide?from=default&where=mini&autoJumpBack=true&to=CHANNEL_CONTRACT_COVER&qrCodeId=yDwJNUUckpkoj0mdUIJN2kC3XWFFaSuR&expiredTime=1695783727",
"EffectiveTime": "",
"HttpSignUrl": "https://res.ess.tencent.cn/cdn/h5-activity-dev/jump-mp.html?where=mini&from=MSG&to=CHANNEL_CONTRACT_COVER&qrCodeId=yDwJNUUckpkoj0mdUIJN2kC3XWFFaSuR&expiredTime=1695783727"
}
}
}
5. 错误码
以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码。
错误码 | 描述 |
---|---|
FailedOperation | 操作失败。 |
FailedOperation.QrCodeCreatorSignComponents | 发起签署存在填写控件。 |
FailedOperation.QrCodeSignUsers | 模板签署人不存在。 |
FailedOperation.QrCodeTemplateId | 签署二维码模板信息有误,请检查参数后重试。 |
InternalError | 内部错误。 |
InvalidParameter | 参数错误。 |
InvalidParameter.ParamError | 参数错误。 |
MissingParameter | 缺少参数错误。 |
OperationDenied.NoQuota | 流程配额不足。 |
ResourceNotFound | 资源不存在。 |
ResourceNotFound.Application | 应用号不存在。 |
ResourceNotFound.Template | 模板不存在。 |
UnauthorizedOperation.NoPermissionFeature | 请升级到对应版本后即可使用该接口。 |