Skip to content

合同生成

基于模板生成电子合同并支持发起签署,适用于业务公证、合同签署等场景。

所有接口均需在请求头中携带:Authorization: Basic {Base64(appId:密钥)}


1. 创建合同

根据模板和填充数据生成合同并获取合同编号,可用于后续签署或下载。

请求说明

项目说明
请求方式POST
请求地址/api/contract/create
Content-Typeapplication/json

请求参数

参数名类型必填说明
templateIdstring合同模板 ID
templateVersionstring模板版本号,不传则用最新版
titlestring合同标题
partiesarray签署方列表
parties[].namestring签署方名称
parties[].idTypestring证件类型:ID_CARD / UNIFIED_SOCIAL_CREDIT
parties[].idNostring证件号
parties[].mobilestring手机号
fillDataobject模板占位符填充数据,key 为占位符名,value 为填充值
expireTimestring合同有效期截止时间,格式 yyyy-MM-dd HH:mm:ss

请求示例

http
POST /api/contract/create HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Basic {Base64(appId:密钥)}

{
  "templateId": "TPL_SIGN_001",
  "title": "业务合作框架协议",
  "parties": [
    {
      "name": "甲方公司",
      "idType": "UNIFIED_SOCIAL_CREDIT",
      "idNo": "91110000XXXXXXXX"
    },
    {
      "name": "乙方",
      "idType": "ID_CARD",
      "idNo": "110101199001011234",
      "mobile": "13800138000"
    }
  ],
  "fillData": {
    "contract_no": "HT202402001",
    "amount": "100000.00",
    "sign_date": "2024-02-09"
  },
  "expireTime": "2025-02-09 23:59:59"
}

响应参数

参数名类型说明
codeint状态码
data.contractIdstring合同唯一编号
data.downloadUrlstring合同文件下载地址(若已生成)
data.statusstring状态:DRAFT / PENDING_SIGN / SIGNED
msgstring提示信息

响应示例

json
{
  "code": 0,
  "data": {
    "contractId": "CT202402090001",
    "downloadUrl": "https://cdn.example.com/contracts/CT202402090001.pdf",
    "status": "DRAFT"
  },
  "msg": "success"
}

2. 发起签署

对已创建的合同发起签署流程,可指定签署顺序与方式。

请求说明

项目说明
请求方式POST
请求地址/api/contract/sign/start
Content-Typeapplication/json

请求参数

参数名类型必填说明
contractIdstring合同 ID(由创建合同接口返回)
signOrderstring签署顺序:PARALLEL(并行)/ SEQUENTIAL(顺序)
notifyUrlstring签署结果回调地址

请求示例

http
POST /api/contract/sign/start HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Basic {Base64(appId:密钥)}

{
  "contractId": "CT202402090001",
  "signOrder": "SEQUENTIAL",
  "notifyUrl": "https://your-domain.com/callback/contract"
}

响应示例

json
{
  "code": 0,
  "data": {
    "contractId": "CT202402090001",
    "signTaskId": "ST202402090001",
    "signLinks": [
      {
        "partyIndex": 1,
        "signUrl": "https://sign.example.com/entry?task=xxx",
        "expireTime": "2024-02-16 23:59:59"
      }
    ]
  },
  "msg": "success"
}

3. 查询合同状态

根据合同 ID 查询当前状态及签署进度。

请求说明

项目说明
请求方式GET
请求地址/api/contract/query

请求参数(Query)

参数名类型必填说明
contractIdstring合同 ID

请求示例

http
GET /api/contract/query?contractId=CT202402090001 HTTP/1.1
Host: api.example.com
Authorization: Basic {Base64(appId:密钥)}

响应示例

json
{
  "code": 0,
  "data": {
    "contractId": "CT202402090001",
    "title": "业务合作框架协议",
    "status": "SIGNED",
    "signedTime": "2024-02-09 14:30:00",
    "downloadUrl": "https://cdn.example.com/contracts/CT202402090001_signed.pdf"
  },
  "msg": "success"
}

合同状态说明

status说明
DRAFT草稿
PENDING_SIGN待签署
SIGNED已签署完成
EXPIRED已过期
CANCELLED已作废