发起签署
POST
/resrun-paas/kaifangqian/openAPI/V2/contract/draft
开放签-openAPI
2、业务线配置:
1)登录开放签账号,切换到对应的企业身份,进入【企业管理后台】应用;
3)签署方配置:
签署方配置支持两种类型:
a、经办人发起时自行设置:适用于签署流程不固定的签约场景;
b、经办人发起时,按照预设流程发起并签署:适用于签署流程固定的签约场景;
上传本地签约文件或选择公共模板(公共模板需要先在“模板管理”中进行配置);
a、签署位置设置:在签约文件上指定对应签署方的签署位置;
b、模板参数配置:指定模板参数对应的填写方;
请求参数
Header 参数
sign
string
签名值,不校验
默认值:
123456
Body 参数application/json
appAuthToken
string
应用授权凭证
uniqueCode
string
流水号
operator
object (操作人)
经办人
该经办人已经加入到对接账号对应的企业中
contact
string
联系方式
contactType
string
联系类型
name
string
姓名
signReId
string
必需
(1)业务线需要先在开放签-企业管理后台进行配置,并处于启用状态;
(2)获取业务线ID:在企业管理后台->业务线管理列表中拷贝业务线ID
sn
string
合同编号
subject
string
合同主题
expireDate
string
签署截止日期
示例:2024-01-02
signDocumentList
array[object (签约文件) {1}]
可选
说明:
(1)在业务线原有签约文件上追加;
(2)调用上传本地签约文件接口,获取对应的签约文件id
docId
string
签约文件id
annexList
array[object (附件) {1}]
可选
说明:
调用上传文件(公共)接口,获取对应的文件id
fileId
string
附件id
signTemplateParamList
array[object (模板) {3}]
可选
说明:
(1)若使用的业务线中配置了公共模板,且模板中必填参数指定了发起方进行填写,则该参数必填
(2)发起合同时,必须保证签约文件模板中发起方的必填参数均已填写完成
templateId
string
模板id
templateName
string
模板名称
templateParamList
array[object (模板参数) {2}]
模板参数集合
signOrderType
string
签署顺序类型
传递该值时,以传递的值为准,
不传递时,使用业务线中的签署顺序类型,若业务线中未配置,默认值为“ORDER”
signerList
array[object (ContractSigner) {7}]
签署方信息
(1)当业务线中已经预设了签署流程,则传入的签署方与业务线配置的签署方必须完全一致(数量、类型、顺序均匹配);
(2)当业务线中没有预设签署流程,则以接口中传递的签署方为准;
(3)为了减少接口传参的复杂度,若业务线中已预设流程,且发起方内部签署节点对应的签署人和签署位置无变化,可不传递发起方信息,以业务线中设置的发起方信息为准;
signerType
string
签署方类型
signerName
string
签署方名称
签署方类型为企业,填写企业名称,签署方类型为个人,填写个人姓名当signerType为企业接收方,必传
signerOrder
string
签署顺序
(1)匹配业务线中预设的签署方;
(2)签署顺序为“有序”时,按照该顺序执行
从1开始计数;
internalNodeList
array[object (内部签署节点) {7}]
内部签署节点集合
receiver
object (操作人)
个人接收方信息
positionParamList
array [object {11}]
签署位置合集
signConfirm
string
签署意愿-人脸识别
注意:人脸识别可使用的前提是已购买人脸识别服务,且人脸识别服务处于启用状态。
controlChangeFlag
string
可选
NECESSARY_NO_ADD:必须签署,不可增加新的签署位置(发起时已经指定的签署位置不可修改,且不允许签署人新增签署位置);
send
string
必需
注意:当前仅支持直接发起,直接传递1;
示例
{
"appAuthToken": "{{appAuthToken}}",//应用授权凭证
"uniqueCode": "{% mock 'guid' %}",//流水号
"operator": { //发起方企业经办人信息,该经办人已经加入到对接账号对应的企业中
"contact": "***********",//手机号
"contactType": "MOBILE",
"name": "张三"
},
"signReId": "{{signReId}}",//(1)业务线需要先在开放签-企业管理后台进行配置,并处于启用状态;(2)获取业务线ID:在企业管理后台->业务线管理列表中拷贝业务线ID
"sn": "{% mock 'guid' %}",
"subject": "{% mock 'ctitle' %}",
"expireDate": "2030-06-29",
"signDocumentList": [//(1)在业务线原有签约文件上追加;(2)调用上传本地签约文件接口,获取对应的签约文件id
{
"docId": "{{docId}}"
}
],
"signOrderType": "ORDER",//签署顺序类型:有序ORDER;无序NO_ORDER;
"signerList": [
/*签署示例场景描述:企业对个人签署,按照顺序签署,先企业签署,后个人签署
企业内部签署流程:企业内部两个签署节点,按照顺序签署:a、加盖企业印章(自动签署);b、企业下个人签字;*/
{
"signerType": "SENDER",
//发起方,签署方类型:发起方-SENDER;企业接收方-RECEIVER_ENT;个人接收方-RECEIVER_PERSONAL
"signerOrder": "1",//签署顺序
"internalNodeList": [
//企业内部签署流程:企业内部两个签署节点,按照顺序签署:a、加盖企业印章(自动签署);b、企业下个人签字;
{ //a、加盖企业印章(自动签署)
"nodeType": "ENTERPRISE_SEAL",
//企业印章签署,PERSONAL_SIGN-个人签字 ;AGENT_SIGN-经办人签字; LEGAL_PERSON_SIGN-法人签字; ENTERPRISE_SEAL-企业签章;
"signerOrder": "1",
"autoSign": "AUTO_SIGN",//自动签署
"sealId": "{{sealId}}",//印章编号
"positionParamList": [
{
"controlType": "SEAL",
//企业签章,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signPositionType": "KEYWORD",//关键字签署,坐标-POSITION;关键字-KEYWORD;
"relationDocList": [//签署控件应用在哪些签约文件上
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "甲方(盖章)",//关键字
"keywordType": "0", //1代表第1个关键字,0代表所有关键字,-1代表倒数第1个关键字;默认为1
"controlWidth": "120",
"controlHeight": "120",
"offsetX": "20",
"offsetY": "0"
},
{
"controlType": "CHOP_STAMP",//骑缝签
"signPositionType": "POSITION",//坐标签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"pageConfig": "ALL",
//签署页码,全部页:ALL;偶数页:EVEN_NUMBER;奇数页:ODD_NUMBER;指定页码:1,2,7-10
"controlWidth": "120",
"controlHeight": "120",
"offsetX": "0",
"offsetY": "0.5"
}
],
"signConfirm": ""
},
{//b、企业下个人签字
"nodeType": "PERSONAL_SIGN",
//个人签字,企业印章签署,PERSONAL_SIGN-个人签字 ;AGENT_SIGN-经办人签字; LEGAL_PERSON_SIGN-法人签字; ENTERPRISE_SEAL-企业签章;
"signerOrder": "2",//内部签署顺序
"signer": {
"contact": "***********",//手机号
"contactType": "MOBILE",
"name": "张三"
},
"positionParamList": [
{
"controlType": "SIGNATURE",
//个人签章,企业签章,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signPositionType": "KEYWORD",//关键字签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "代表签字",//关键字
"keywordType": "-1",//1代表第1个关键字,0代表所有关键字,-1代表倒数第1个关键字;默认为1
"offsetX": "20",
"offsetY": "0"
},
{
"controlType": "SIGN_DATE",
//签署日期,企业签章,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signDateFormat": "YEAR_MONTH_DAY",
//签署控件类型为“签署日期”时生效。签署时间格式:YEAR_MONTH_DAY格式为yyyy年MM月dd日;LINE格式为yyyy-MM-dd;BACK_SLASH格式为yyyy/MM/dd;
"signPositionType": "KEYWORD",//关键字签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "日期:",//关键字
"keywordType": "1",//1代表第1个关键字,0代表所有关键字,-1代表倒数第1个关键字;默认为1
"offsetX": "20",
"offsetY": "40"
}
],
"signConfirm": ""
}
]
},
{//企业对个人签署中的个人
"signerType": "RECEIVER_PERSONAL",
//个人接收方,签署方类型: 发起方-SENDER;企业接收方-RECEIVER_ENT;个人接收方-RECEIVER_PERSONAL
"signerName": "张三",
"signerOrder": "2",//签署顺序
"receiver": {
"contact": "***********",//手机号
"contactType": "MOBILE",
"name": "张三"
},
"positionParamList": [
{
"controlType": "SIGNATURE",
//个人签章,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signPositionType": "KEYWORD",//关键字签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "乙方签字",//关键字
"keywordType": "1",
"offsetX": "20"
},
{
"controlType": "SIGN_DATE",
//签署日期,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signDateFormat": "YEAR_MONTH_DAY",
//签署控件类型为“签署日期”时生效。签署时间格式:YEAR_MONTH_DAY格式为yyyy年MM月dd日;LINE格式为yyyy-MM-dd;BACK_SLASH格式为yyyy/MM/dd;
"signPositionType": "KEYWORD",//关键字签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "日期:",
"keywordType": "-1",
"offsetX": "20",
"offsetY": "40"
}
],
"signConfirm": ""
}
],
"controlChangeFlag": "NECESSARY_AND_ADD",
//NECESSARY_NO_ADD必须,不可增加;NECESSARY_AND_ADD 必须,可增加;NOT_NECESSARY 非必须;
"send": "1"//是否直接发起,0 保存草稿,1 直接发起。注意:当前仅支持直接发起,直接传递1;
}
示例代码
Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://home.kaifangqian.com/resrun-paas/kaifangqian/openAPI/V2/contract/draft' \
--header 'sign;' \
--header 'Content-Type: application/json' \
--data-raw '{
"appAuthToken": "",//应用授权凭证
"uniqueCode": "{% mock '\''guid'\'' %}",//流水号
"operator": { //发起方企业经办人信息,该经办人已经加入到对接账号对应的企业中
"contact": "***********",//手机号
"contactType": "MOBILE",
"name": "张三"
},
"signReId": "{{signReId}}",//(1)业务线需要先在开放签-企业管理后台进行配置,并处于启用状态;(2)获取业务线ID:在企业管理后台->业务线管理列表中拷贝业务线ID
"sn": "{% mock '\''guid'\'' %}",
"subject": "{% mock '\''ctitle'\'' %}",
"expireDate": "2030-06-29",
"signDocumentList": [//(1)在业务线原有签约文件上追加;(2)调用上传本地签约文件接口,获取对应的签约文件id
{
"docId": "{{docId}}"
}
],
"signOrderType": "ORDER",//签署顺序类型:有序ORDER;无序NO_ORDER;
"signerList": [
/*签署示例场景描述:企业对个人签署,按照顺序签署,先企业签署,后个人签署
企业内部签署流程:企业内部两个签署节点,按照顺序签署:a、加盖企业印章(自动签署);b、企业下个人签字;*/
{
"signerType": "SENDER",
//发起方,签署方类型:发起方-SENDER;企业接收方-RECEIVER_ENT;个人接收方-RECEIVER_PERSONAL
"signerOrder": "1",//签署顺序
"internalNodeList": [
//企业内部签署流程:企业内部两个签署节点,按照顺序签署:a、加盖企业印章(自动签署);b、企业下个人签字;
{ //a、加盖企业印章(自动签署)
"nodeType": "ENTERPRISE_SEAL",
//企业印章签署,PERSONAL_SIGN-个人签字 ;AGENT_SIGN-经办人签字; LEGAL_PERSON_SIGN-法人签字; ENTERPRISE_SEAL-企业签章;
"signerOrder": "1",
"autoSign": "AUTO_SIGN",//自动签署
"sealId": "{{sealId}}",//印章编号
"positionParamList": [
{
"controlType": "SEAL",
//企业签章,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signPositionType": "KEYWORD",//关键字签署,坐标-POSITION;关键字-KEYWORD;
"relationDocList": [//签署控件应用在哪些签约文件上
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "甲方(盖章)",//关键字
"keywordType": "0", //1代表第1个关键字,0代表所有关键字,-1代表倒数第1个关键字;默认为1
"controlWidth": "120",
"controlHeight": "120",
"offsetX": "20",
"offsetY": "0"
},
{
"controlType": "CHOP_STAMP",//骑缝签
"signPositionType": "POSITION",//坐标签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"pageConfig": "ALL",
//签署页码,全部页:ALL;偶数页:EVEN_NUMBER;奇数页:ODD_NUMBER;指定页码:1,2,7-10
"controlWidth": "120",
"controlHeight": "120",
"offsetX": "0",
"offsetY": "0.5"
}
],
"signConfirm": ""
},
{//b、企业下个人签字
"nodeType": "PERSONAL_SIGN",
//个人签字,企业印章签署,PERSONAL_SIGN-个人签字 ;AGENT_SIGN-经办人签字; LEGAL_PERSON_SIGN-法人签字; ENTERPRISE_SEAL-企业签章;
"signerOrder": "2",//内部签署顺序
"signer": {
"contact": "***********",//手机号
"contactType": "MOBILE",
"name": "张三"
},
"positionParamList": [
{
"controlType": "SIGNATURE",
//个人签章,企业签章,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signPositionType": "KEYWORD",//关键字签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "代表签字",//关键字
"keywordType": "-1",//1代表第1个关键字,0代表所有关键字,-1代表倒数第1个关键字;默认为1
"offsetX": "20",
"offsetY": "0"
},
{
"controlType": "SIGN_DATE",
//签署日期,企业签章,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signDateFormat": "YEAR_MONTH_DAY",
//签署控件类型为“签署日期”时生效。签署时间格式:YEAR_MONTH_DAY格式为yyyy年MM月dd日;LINE格式为yyyy-MM-dd;BACK_SLASH格式为yyyy/MM/dd;
"signPositionType": "KEYWORD",//关键字签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "日期:",//关键字
"keywordType": "1",//1代表第1个关键字,0代表所有关键字,-1代表倒数第1个关键字;默认为1
"offsetX": "20",
"offsetY": "40"
}
],
"signConfirm": ""
}
]
},
{//企业对个人签署中的个人
"signerType": "RECEIVER_PERSONAL",
//个人接收方,签署方类型: 发起方-SENDER;企业接收方-RECEIVER_ENT;个人接收方-RECEIVER_PERSONAL
"signerName": "张三",
"signerOrder": "2",//签署顺序
"receiver": {
"contact": "***********",//手机号
"contactType": "MOBILE",
"name": "张三"
},
"positionParamList": [
{
"controlType": "SIGNATURE",
//个人签章,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signPositionType": "KEYWORD",//关键字签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "乙方签字",//关键字
"keywordType": "1",
"offsetX": "20"
},
{
"controlType": "SIGN_DATE",
//签署日期,签署控件类型:个人签章-SIGNATURE;企业签章-SEAL;签署日期-SIGN_DATE;骑缝签-CHOP_STAMP;
"signDateFormat": "YEAR_MONTH_DAY",
//签署控件类型为“签署日期”时生效。签署时间格式:YEAR_MONTH_DAY格式为yyyy年MM月dd日;LINE格式为yyyy-MM-dd;BACK_SLASH格式为yyyy/MM/dd;
"signPositionType": "KEYWORD",//关键字签署
"relationDocList": [
{
"docType": "1",
"docId": "{{docId}}"
}
],
"keyword": "日期:",
"keywordType": "-1",
"offsetX": "20",
"offsetY": "40"
}
],
"signConfirm": ""
}
],
"controlChangeFlag": "NECESSARY_AND_ADD",
//NECESSARY_NO_ADD必须,不可增加;NECESSARY_AND_ADD 必须,可增加;NOT_NECESSARY 非必须;
"send": "1"//是否直接发起,0 保存草稿,1 直接发起。注意:当前仅支持直接发起,直接传递1;
}'
返回响应
🟢200OK
application/json
Body
code
integer
返回码
message
string
返回描述
result
object
返回的结果数据
contractId
string
合同id
timestamp
integer
时间戳
示例
{
"code": 0,
"message": "string",
"result": {
"contractId": "string"
},
"timestamp": 0
}
🟢201Created
🟠401Unauthorized
🟠403Forbidden
🟠404Not Found