You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python requests调用DocuSign API实现信封可编辑预填充tabs功能?

可编辑预填充DocuSign tabs实现方案

核心实现逻辑

不要使用DocuSign提供的pre-filled类型tabs,该类型原生设计为发件人设置后收件人不可编辑。要实现带默认值、可由收件人修改的文本框,使用普通text类型tab,调整其锁定属性即可。

关键参数说明

普通texttab默认处于锁定状态,你需要额外添加两个参数解除限制:

  • locked: 设为字符串"false",关闭tab的默认锁定状态
  • editable: 设为字符串"true",明确赋予收件人编辑权限

基于模板创建信封的请求示例(Python requests)

import requests

# 基础配置,替换为你自己的实际参数
ACCOUNT_ID = "你的DocuSign账户ID"
ACCESS_TOKEN = "你的API访问令牌"
TEMPLATE_ID = "你使用的模板ID"
BASE_URL = f"https://demo.docusign.net/restapi/v2.1/accounts/{ACCOUNT_ID}/envelopes"

headers = {
    "Authorization": f"Bearer {ACCESS_TOKEN}",
    "Content-Type": "application/json"
}

payload = {
    "templateId": TEMPLATE_ID,
    "templateRoles": [
        {
            "email": "signer@example.com", # 收件人邮箱
            "name": "测试收件人", # 收件人姓名
            "roleName": "Signer", # 模板中预先设置的角色名称
            "tabs": {
                "textTabs": [
                    {
                        "tabLabel": "用户自定义字段", # 对应模板中设置的tab标签
                        "value": "这里是预填充的内容", # 你需要预填的默认值
                        "locked": "false",
                        "editable": "true"
                    }
                ]
            }
        }
    ],
    "status": "sent",
    "mergeExistingTabs": "true" # 关键:覆盖模板原有tab的属性,必须加
}

# 发起创建信封请求
resp = requests.post(BASE_URL, headers=headers, json=payload)
envelope_id = resp.json().get("envelopeId")

后续生成嵌入式签名URL

拿到信封ID后,调用DocuSign的收件人视图接口即可生成可在你应用内展示的签名URL,直接返回给前端使用即可。

常见踩坑提示

DocuSign API对布尔类型参数的识别要求较高,locked和editable属性需要传字符串格式的"true"/"false",不要传Python原生的布尔值True/False,否则属性会不生效。

内容的提问来源于stack exchange,提问作者amb122

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 18:39:03