接口描述
添加手动签署区是指向签署流程中添加某签署方信息、签章位置与待签署文件之间的关系并由签署方手动签署。
签署区添加完毕后,可以调用【签署流程开启】接口让签署任务进入签署执行阶段。
若签署流程创建时设置noticeType,此时签署方会收到e签宝短信或邮件通知进行签署操作。
开发者也可调用【获取签署地址】接口获取签署链接,然后业务系统内跳转加载签署链接或自行发送通知。
【说明】签署区要素主要包括以下信息:
- 待签署文件:参数 fileId 代表待签署文件。请确保此fileId已通过【流程文档添加】接口添加到签署流程中。
- 签署方信息:参数 signerAccountId 代表签署方。若多方签署,可在 signfields 数组中构建多个签署区信息。注意:此处所说签署方具体指平台方的企业用户或个人用户。平台方签署信息请通过【添加平台方自动盖章签署区】接口添加。
- 签署顺序:如果需要按顺序签署,请通过 order 参数进行设置。值为1时表示首先签署,数字越大签署顺序越靠后。
- 签章类型:支持指定单页签章、骑缝签章或用户自由选择,由参数 signType 控制(0-页面自由选择,1-单页签章,2-骑缝签章,默认1)。
- 签章位置:通过页码和XY坐标来确定签章加盖位置,由参数 posPage、posX和posY 控制,页码posPage值从1开始计算且不可超过PDF文件实际总页数。
签署区位置(posBean)需要与签章类型(signType)组合使用,组合使用方法如下:
- signType值为1(单页签章)时,posX、posY和posPage 必须指定具体值,如下:
{
"signfields":[
{
//省略...
"posBean":{
"posPage":"3",// 表示 PDF中第三页
"posX":158.725,// 表示 从页面左下角向右偏移158.725像素
"posY":431.565// 表示 从页面左下角向上偏移431.565像素
},
//省略...
}
]
}
说明:文件内如需多页签章时,可添加多个 signfields 分别设置具体posX、posY和posPage。
- signType值为2(骑缝签章)时,posY和posPage 必须指定具体值,骑缝页码posPage范围通过英文连字号
"-"指定, 传“all”代表盖全部页码。如下:
{
"signfields":[
{
//省略...
"posBean":{
"posPage":"1-5",// 表示 从第1页连续到第5页加盖骑缝章
"posY":400.000// 表示 从页面右侧边缘向上偏移400.000像素
},
//省略...
}
]
}
- signType值为0(用户自由选择)时,posX、posY和posPage所传值无效,以用户页面实际操作为准,因此signType值为0时,posBean对象可以不传。
接口
/v1/signflows/{flowId}/signfields/handSign
请求方式
POST
请求头
提供两种安全接入方式,开发者可选择其中一种方式进行对接,对应参数如何获取,参考文档【请点击】。
方式一:请求签名鉴权(优先推荐)
请求头入参示例如下:
参数名称 | 类型 | 必选 | 参数说明 |
X-Tsign-Open-App-Id | string | 是 | 应用ID |
Content-Type | string | 是 | application/json;charset=UTF-8 |
X-Tsign-Open-Ca-Timestamp | string | 是 | API 调用者传递时间戳,值为当前时间的毫秒数,也就是从1970年1月1日起至今的时间转换为毫秒,时间戳有效时间为15分钟,为了防重放攻击 |
Accept | string | 是 | 建议统一填写 */* |
X-Tsign-Open-Ca-Signature | string | 是 | 签名字符串 |
Content-MD5 | string | 是 | 当请求 Body 非 Form 表单时,可以计算 Body 的 MD5 值传递给云网关进行 Body MD5 校验。建议当请求 Body 非 Form 表单时,加上此请求头。 |
X-Tsign-Open-Auth-Mode | string | 是 | 选择请求方式进行鉴权,固定值,Signature |
方式二:OAuth2.0鉴权(不推荐使用)
当安全接入选择OAuth2.0鉴权方式,请点击查阅详情,请求头入参示例如下:
参数名称 | 类型 | 必选 | 参数说明 |
X-Tsign-Open-App-Id | string | 是 | 应用ID |
X-Tsign-Open-Token | string | 是 | 通过获取鉴权Token接口返回 |
Content-Type | string | 是 | application/json; charset=UTF-8 |
请求参数
展开全部参数参数名称 | 类型 | 必选 | 参数类型 | 参数说明 | ||
flowId | string | 是 | path | 流程id | ||
signfields | array | 是 | body | 签署区列表数据 | ||
fileId | string | 是 | body | 文件file id | ||
signerAccountId | string | 是 | body | 签署操作人个人账号标识,即操作本次签署的个人 注:个人/企业用户手动签署时,需传入签署的个人/经办人的签署账号ID(【创建个人签署账号】接口获取) | ||
authorizedAccountId | string | 否 | body | 签约主体账号标识,即本次签署对应任务的归属方,默认是签署操作人个人 注:企业用户手动签署时,需传入签署的机构的签署账号ID(【创建机构签署账号】接口获取) | ||
actorIndentityType | int32 | 否 | body | 机构签约类别,当签约主体为机构时必传:2-机构盖章,3-法定代表人盖章 | ||
assignedPosbean | boolean | 否 | body | 表示签署过程中,是否固定指定的签署区位置,默认为true。 true-固定签署区位置且无法移动, false-不固定签署区位置且签署时可自由移动 注:当signType为1或者2时,该字段才会生效 | ||
order | int32 | 否 | body | 签署区顺序,默认1,且不小于1,顺序越小越先处理 | ||
willTypes | list | 否 | body | 指定该签署人的意愿认证方式, 类型如下: CODE_SMS 短信验证码 FACE_ZHIMA_XY 支付宝刷脸 FACE_TECENT_CLOUD_H5 腾讯云刷脸 以下方式如需使用,请联系交付顾问开通: FACE_FACE_LIVENESS_RECOGNITION 快捷刷脸 FACE_WE_CHAT_FACE 微信小程序刷脸 FACE_AUDIO_VIDEO_DUAL 支付宝智能视频认证 VIDEO_WE_CHAT_VIDEO_DUAL 微信智能视频认证 | ||
posBean | object | 否 | body | 签署区位置信息 。 signType为0时,本参数无效; signType为1时, 页码和XY坐标不能为空,; signType为2时, 页码和Y坐标不能为空 | ||
posPage | string | 否 | body | 页码(不小于1的自然数,不可超出文件总页数) 与参数signType组合使用,详见接口描述 | ||
posX | float | 否 | body | x坐标,默认空 | ||
posY | float | 否 | body | y坐标 | ||
width | float | 否 | body | 签署区宽,默认印章宽度 | ||
addSignTime | boolean | 否 | body | 签章日期,默认跟随在印章底部,且位置固定。 true - 显示日期 false - 不显示日期(默认值) | ||
signTimeFormat | string | 否 | body | 签章日期格式,yyyy-MM-dd HH:mm:ss 【注】仅当addSignTime为true时生效 | ||
signDateBeanType | int | 否 | body | 是否需要添加签署日期,默认0 0-禁止 1-必须 2-不限制 | ||
signDateBean | Object | 否 | body | 自定义签章日期,骑缝章默认不展示日期 【注】当addSignTime为true时,无需传入signDateBean,传入的signDateBean值将不生效。 | ||
fontSize | int32 | 否 | body | 签章日期字体大小,默认12 | ||
format | string | 否 | body | 签章日期格式,支持的格式: yyyy年MM月dd日 yyyy-MM-dd yyyy/MM/dd | ||
posPage | int32 | 否 | body | 页码信息,如需指定日期盖章位置,则需传入日期盖章页码和坐标(日期页码与印章页码需相同) | ||
posX | float | 否 | body | x坐标,默认0(如果X和Y坐标不传入,签署日期默认在签署区下方) | ||
posY | float | 否 | body | y坐标,默认0 | ||
sealType | string | 否 | body | 签章样式,个人签署时支持多种签署方式, 0-手绘签名 ,1-模板印章签名,为空不限制 多种类型时逗号分割 | ||
handDrawnWay | string | 否 | body | 手绘签名方式 0-普通手绘签名 1-AI校验手绘签名 多种类型时逗号分割,为空只有普通手绘签名 | ||
sealIds | list | 否 | body | 印章ids,用于手动签署时,指定企业印章进行展示,实现手动选择印章进行签署 (1)只支持签约主体为企业时指定印章,通过e签宝官网获取对应实名主体下的印章编号。 (2)支持传入多个印章id,入参格式:sealIds:["印章id1","印章id2",....] | ||
sealBizTypes | string | 否 | body | 指定业务印章类型(仅支持签约主体为企业时指定,允许指定多个印章类型,英文逗号分隔) ALL -不指定印章类型, COMMON -无业务类型(其他), CONTRACT -合同专用章, FINANCE -财务章, PERSONNEL -人事专用章, PUBLIC -公章 | ||
signType | int32 | 否 | body | 签章类型, 0-不限,1-单页签署,2-骑缝签署,默认1 | ||
thirdOrderNo | string | 否 | body | 第三方业务流水号id,保证相同签署人、相同签约主体、相同签署顺序的任务,对应的第三方业务流水id唯一,默认空; 如果传了该参数,【签署人签署完成异步通知】中的thirdOrderNo参数会取这里的值 |
公共响应参数
参数名称 | 类型 | 必选 | 参数说明 |
code | int | 否 | 业务码,0表示成功 |
message | string | 否 | 信息 |
data | object | 否 | 业务信息 |
响应参数
展开全部参数参数名称 | 类型 | 必选 | 参数说明 | |
signfieldBeans | array | 否 | 签署区列表数据 | |
accountId | string | 否 | 用户ID | |
fileId | string | 否 | 文档ID | |
signfieldId | string | 否 | 签署区id |
请求示例
POST https://openapi.esign.cn/v1/signflows/{flowId}/signfields/handSign
{
"signfields":[
{
"signerAccountId":"faea8237c61a4fdea864ee8d7621e14f",
"authorizedAccountId":"2c7de24aff3340f5b944ebac49545b8e",
"actorIndentityType":2,
"fileId":"fe7df2f477d649c18ebcfdfffeba253d",
"order":1,
"assignedPosbean":true,
"posBean":{
"posPage":"1",
"posX":158.72531,
"posY":431.05658
},
"sealType":"0",
"signType":1
}
]
}
响应示例
{
"code":0,
"data":{
"signfieldBeans":[
{
"accountId":"faea8237c61a4fdea864ee8d7621e14f",
"fileId":"fe7df2f477d649c18ebcfdfffeba253d",
"signfieldId":"b76b69d5b48d4f689cae997e42809ac4"
}
]
},
"message":"成功"
}
错误码
错误码 | 错误描述 | 解决方案 |
1437511 | 文档不存在,fileId:XXX | 签署区里的fileId为空或fileId无效 |
1437306 | XXXX:签署页码超出文档页数 | 签署区的页码大于文档页数 |
1435002 | 未定义的signType | 签署类型无效, signType仅支持: 0-不限, 1-单页签署, 2-骑缝签 |
401 | 1.token过期了 2.header请求头不正确 3.apiurl和应用ID环境不对应,例如apiurl是模拟环境,应用ID是正式环境的 |