基于法大大 FASC API 5.0,提供一键式合同发起签署能力,将合同文件发送给签署方进行电子签署。
fadada-document-sign 提供合同签署的完整生命周期能力:
属于本 skill不属于本 skill发起新的合同签署流程起草/生成合同正文或 PDF将文件发给签署方签署审查合同条款、识别风险上传合同后发起签署审批通过/驳回查询签署模板列表和详情作废已完成合同查询已有签署流程-撤回未完成签署任务-下载已签署合同-
进入条件:用户说"发合同"且当前会话有上传文件
进入条件:用户说"用模板发起"、"查一下模板"等
进入条件:用户说"查合同"、"查流程"、"查任务"等
进入条件:用户说"撤回合同"、"撤销任务"等
进入条件:用户说"下载合同"、"保存合同"等
适用场景: 用户上传合同文件,说"发合同给对方签" 执行流程:
获取合同文件 - 先获取当前会话中用户上传的文件列表
上传文件到法大大 - 调用 scripts/upload_file.py 将合同文件上传到法大大平台
收集签署方信息 - 发布签署方信息填写卡片
发起签署 - 用户提交信息后,调用 scripts/initiate_sign.py 发起签署
发布结果卡片 - 展示签署发起结果
关键要点:
适用场景: 用户说"查一下有哪些模板",然后选择一个发起 执行流程:
查询模板列表 - 调用 scripts/list_templates.py 查询签署模板
查询模板详情 - 用户选择模板后,调用 scripts/get_template_detail.py
收集签署方信息 - 发布签署方信息填写卡片
发起签署 - 用户提交后,调用 scripts/initiate_sign.py 发起签署
--template-id 参数发布结果卡片 - 展示签署发起结果
关键要点:
脚本路径用途关键参数scripts/upload_file.py上传合同文件到法大大平台--file-path: 文件路径, --file-name: 文件名scripts/initiate_sign.py调用法大大API发起签署--task-name: 任务名称, --file-ids: 文件ID列表, --signers: 签署方JSONscripts/list_templates.py查询签署模板列表--template-name: 模板名称(可选)scripts/get_template_detail.py查询模板详情--template-id: 模板IDscripts/list_sign_tasks.py查询已有签署流程列表--status: 状态筛选, --keyword: 关键词, --page: 页码scripts/query_sign_status.py查询签署任务详情/状态--task-id: 任务IDscripts/cancel_sign_task.py撤回签署任务--task-id: 任务ID, --reason: 撤回原因scripts/download_signed_contract.py下载已签署合同--task-id: 任务ID, --save-path: 保存路径scripts/utils.py公共工具函数-
bash
# ==================== 发起签署 ====================
# 上传文件
python scripts/upload_file.py --file-path "/path/to/contract.pdf" --file-name "合同.pdf"
# 发起签署
python scripts/initiate_sign.py \
--task-name "劳动合同签署" \
--file-ids '["file_id_from_upload"]' \
--signers '[{"name":"张三","phone":"13800138000","actorType":"person"}]'
# 基于模板发起
python scripts/initiate_sign.py \
--task-name "劳动合同签署" \
--template-id "template_id" \
--signers '[{"name":"张三","phone":"13800138000","actorType":"person","participantId":"xxx"}]'
# ==================== 查询已有流程 ====================
# 查询所有签署任务
python scripts/list_sign_tasks.py
# 按状态筛选(signing=签署中, finished=已完成, cancelled=已撤销)
python scripts/list_sign_tasks.py --status signing
# 关键词搜索
python scripts/list_sign_tasks.py --keyword "劳动合同"
# 分页查询
python scripts/list_sign_tasks.py --page 1 --page-size 20
# 查询单个任务详情
python scripts/query_sign_status.py --task-id "task_id_here"
# ==================== 撤回任务 ====================
# 撤回签署任务
python scripts/cancel_sign_task.py --task-id "task_id_here"
# 撤回并填写原因
python scripts/cancel_sign_task.py --task-id "task_id_here" --reason "合同内容有误"
# ==================== 下载合同 ====================
# 获取下载链接
python scripts/download_signed_contract.py --task-id "task_id_here"
# 下载并保存到本地
python scripts/download_signed_contract.py \
--task-id "task_id_here" \
--save-path "./signed_contract.pdf"
--signers 参数为 JSON 数组,每个元素表示一个签署方。
字段必填说明name是个人姓名phone条件手机号, phone 和 email 至少传一个email条件邮箱, phone 和 email 至少传一个actorType是固定传 person
示例:
json
[
{
"name": "张三",
"phone": "13800138000",
"actorType": "person"
}
]
字段必填说明name是企业全称contactName是经办人姓名phone条件经办人手机号, phone 和 email 至少传一个email条件经办人邮箱, phone 和 email 至少传一个actorType是固定传 corp``openCorpId否企业ID(已授权企业)
企业示例:
json
[
{
"name": "杭州未来科技有限公司",
"contactName": "李经理",
"phone": "13800138000",
"actorType": "corp"
}
]
bash
python scripts/initiate_sign.py \
--task-name "采购合同签署" \
--file-ids '["file_id"]' \
--signers '[{"name":"杭州未来科技有限公司","contactName":"李经理","phone":"13800138000","actorType":"corp"},{"name":"王五","phone":"13900139000","actorType":"person"}]'
场景处理方式文件格式不支持提示用户仅支持 PDF 格式,请上传 PDF 文件上传失败展示错误信息,建议重新上传签署方信息不完整停在信息填写步骤,等待用户补全发起签署失败展示错误原因,提供重试选项未配置凭证提示配置法大大 API 凭证任务状态不可撤回提示当前任务状态不支持撤回(如已完成/已作废)任务状态不可下载提示当前任务状态不支持下载(如签署中/未完成)任务不存在提示任务ID无效或无权访问下载失败展示错误信息,建议检查网络后重试
步骤内容详细说明1个人注册&认证企业管理员完成个人实名认证2企业创建&认证创建企业并完成企业实名认证3创建应用并启用创建应用并提交审核启用4获取凭证****获取 AppID、AppSecret、openCorpId5配置正式环境替换为正式环境信息
详细操作指引: https://dev.fadada.com/api-guide/YYNLQW2Z2W/9QMQ2MU4FGK3AOXA
获取步骤:
步骤操作1进入 企业设置 → 集成管理 → 应用集成,选择已启用的应用2点击 AppSecret 的【查看】按钮3获取短信验证码并填写验证4验证通过后,点击【复制图标】复制 AppID 和 AppSecret
环境变量说明来源FADADA_APP_ID应用ID(AppID)应用详情页FADADA_APP_SECRET应用密钥(AppSecret)应用详情页(需验证)FADADA_OPEN_CORP_ID企业ID(openCorpId)应用详情页 / 自动获取FADADA_ENV环境 (production/uat)默认 production
⚠️ 注意:openCorpId 可不配置,系统会自动通过
/app/get-openId-list接口获取应用归属企业的 openCorpId
设置 FADADA_ENV 环境变量:
production - 正式环境(默认)uat - UAT测试环境重要特性:如果未配置 FADADA_OPEN_CORP_ID,系统会自动通过 /app/get-openId-list 接口获取应用归属企业的 openCorpId。
配置优先级:
open_corp_id 参数FADADA_OPEN_CORP_ID适用场景:
使用 HMAC-SHA256 签名算法进行接口认证:
接口地址说明状态获取服务访问凭证/service/get-access-token获取访问令牌✅ 可用上传本地文件/file/get-upload-url获取上传URL✅ 可用文件处理/file/process转换为PDF✅ 可用创建签署任务/sign-task/create发起签署✅ 可用添加签署参与方/sign-task/actor/add添加签署方✅ 可用获取签署链接/sign-task/actor/get-url获取签署URL✅ 可用查询签署任务详情/sign-task/app/get-detail查询单个任务状态✅ 可用查询签署模板列表/sign-template/get-list模板列表✅ 可用查询签署模板详情/sign-template/get-detail模板详情✅ 可用查询签署任务列表/sign-task/owner/get-list批量查询任务✅ 可用撤回签署任务/sign-task/cancel撤回任务✅ 可用获取合同下载链接/sign-task/owner/get-download-url下载合同✅ 可用查询授权用户列表/app/get-openId-list获取归属企业openCorpId✅ 可用
以下接口已验证可用:
/sign-task/owner/get-list)/sign-task/cancel)/sign-task/owner/get-download-url)如遇 404 错误,请确认账户是否具备相应权限。
状态说明draft草稿waiting待提交signing签署中finished已完成cancelled已撤销abolished已作废expired已过期
返回码说明100000请求成功100001系统错误100002访问凭证失效200001参数错误200002签名验证失败300001业务处理失败400001权限不足