用户指南 取消(C)

Adobe Acrobat Sign API - 常见问题解答

 

Adobe Acrobat Sign 指南

新增功能

  1. 预发行说明
  2. 发行说明
  3. 重要通知

快速入门

  1. 管理员快速入门指南
  2. 用户快速入门指南
  3. 针对开发人员
  4. 视频教程库
  5. 常见问题

管理

  1. Admin Console 概述
  2. 用户管理
    1. 添加用户
      1. 添加一名用户
      2. 批量添加用户
      3. 从目录添加用户
      4. 从 MS Azure Active Directory 添加用户
    2. 创建以功能为中心的用户
      1. 技术帐户 - API 驱动
      2. 服务帐户 - 手动驱动
    3. 检查是否有用户存在配置错误
    4. 更改姓名/电子邮件地址
    5. 编辑用户的组成员资格
    6. 通过组界面编辑用户的组成员资格
    7. 将用户提升为管理员角色
    8. 用户身份类型和 SSO
    9. 切换用户标识
    10. 使用 MS Azure 对用户进行身份验证
    11. 使用 Google 联合身份验证对用户进行身份验证
    12. 产品配置文件
    13. 登录体验
  3. 帐户/组设置
    1. 设置概述
    2. 全局设置
      1. 帐户级别和 ID
      2. 全新的收件人体验
      3. 自签名工作流
      4. 批量发送
      5. Web 表单
      6. 自定义发送工作流程
      7. Power Automate 工作流程
      8. 库文档
      9. 收集包含协议的表单数据
      10. 有限文件可见性
      11. 附加已签名协议的 PDF 副本
      12. 在电子邮件中包含链接
      13. 在电子邮件中包含图像
      14. 附加至电子邮件的文件将命名为
      15. 将审核报告附加到文档
      16. 将多个文档合并为一个
      17. 下载单个文档
      18. 上传签名文档
      19. 我的账户中的用户委托
      20. 允许外部收件人委派
      21. 授权签名
      22. 授权发送
      23. 授权添加电子密封
      24. 设置默认时区
      25. 设置默认日期格式
      26. 位于多个组的用户 (UMG)
        1. 升级以使用 UMG
      27. 组管理员权限
      28. 替换接收者
      29. 审核报告
        1. 概述
        2. 允许在事务验证页面上进行未经身份验证的访问
        3. 包含提醒
        4. 包含查看事件
        5. 包含协议页面/附件计数
      30. 事务页脚
      31. 在产品消息发送和指南中
      32. 可访问的 PDF
      33. 新版“编辑”体验
      34. 医疗保健客户
    3. 帐户设置
      1. 添加标志
      2. 自定义公司主机名/URL
      3. 添加公司名称
      4. 发布协议 URL 重定向
    4. 签名首选项
      1. 格式精美的签名
      2. 允许收件人签名的方式
      3. 签名者可以更改其姓名
      4. 允许接收者使用其保存的签名
      5. 自定义使用条款和消费者信息披露条款
      6. 在表单字段中导航收件人
      7. 重启协议工作流
      8. 拒绝签名
      9. 允许图章工作流
      10. 要求签名者提供其职务或公司
      11. 允许签名者打印并置入书面签名
      12. 进行电子签名时显示消息
      13. 需要签名者使用移动设备创建其签名
      14. 请求签名者的 IP 地址
      15. 从参与者图章中排除公司名称和职务
    5. 数字签名
      1. 概述
      2. 下载并使用 Acrobat 签名
      3. 使用云签名进行签名
      4. 包括身份提供商的元数据
      5. 受限的云签名提供商
    6. 电子签章
    7. 数字身份
      1. 数字身份网关
      2. 身份检查策略
    8. 报告设置
      1. 新版报告体验
      2. 经典报告设置
    9. 安全设置
      1. 单点登录设置
      2. 记住我设置
      3. 登录密码政策
      4. 登录密码强度
      5. Web 会话持续时间
      6. PDF 加密类型
      7. API
      8. 用户和组信息访问
      9. 允许的 IP 范围
      10. 帐户共享
      11. 帐户共享权限
      12. 协议共享控件
      13. 签名者身份验证
      14. 协议签名密码
      15. 文档密码强度
      16. 按地理位置屏蔽签名者
      17. 手机身份验证
      18. 基于知识的身份验证 (KBA)
      19. 允许页面提取
      20. 文档链接过期
      21. 上传用于 Webhook/回调的客户端证书
      22. 时间戳
    10. 发送设置
      1. 登录后显示“发送”页面
      2. 发送时需要收件人姓名
      3. 锁定已知用户的名称值
      4. 允许的收件人角色
      5. 允许电子见证人
      6. 收件人组
      7. CC
      8. 收件人协议访问
      9. 必填字段
      10. 附加文件
      11. 字段拼合
      12. 修改协议
      13. 协议名称
      14. 语言
      15. 私人消息
      16. 允许的签名类型
      17. 提醒
      18. 已签名文档的密码保护
      19. 通过以下方式发送协议通知
      20. 签名者身份识别选项
        1. 概述
        2. 签名密码
        3. 通过电子邮件发送一次性密码
        4. Acrobat Sign 身份验证
        5. 手机身份验证
        6. 基于云的数字签名
        7. 基于知识的身份验证
        8. 政府 ID
        9. 签名者身份报告
      21. 内容保护
      22. 启用 Notarize 事务
      23. 文件过期
      24. 预览、定位签名和添加字段
      25. 签名顺序
      26. “液体”模式
      27. 自定义工作流控件
      28. 电子签名页面的上传选项
      29. 签名后确认 URL 重定向
    11. 消息模板
    12. 生物识别设置
      1. 概述
      2. 强制执行身份验证
      3. 签名原因
    13. 工作流程集成
    14. 公证设置
    15. 付款集成
    16. 签名者消息发送
    17. SAML 设置
      1. SAML 配置
      2. 安装 Microsoft Active Directory 联合身份验证服务
      3. 安装 Okta
      4. 安装 OneLogin
      5. 安装 Oracle Identity Federation
    18. 数据管理
    19. 时间戳设置
    20. 外部归档
    21. 账户语言
    22. 电子邮件设置
      1. 电子邮件页眉/页脚图像
      2. 允许个人用户电子邮件页脚
      3. 自定义“请求签名”电子邮件
      4. 自定义“收件人”和“抄送”字段
      5. 启用无链接通知
      6. 自定义电子邮件模板
    23. 从 echosign.com 迁移到 adobesign.com
    24. 为收件人配置选项
  4. 监管要求指导
    1. 无障碍访问
      1. 无障碍访问合规性
      2. 使用 Acrobat 桌面版创建可访问的表单
      3. 创建可访问的 AcroForm
    2. HIPAA
    3. GDPR
      1. GDPR 概述
      2. 将用户标记为密文
      3. 将用户的协议标记为密文
    4. 21 CFR part 11 和 EudraLex Annex 11
      1. 21 CRF part 11 验证包
      2. 21 CFR 和 EudraLex Annex 11 手册
      3. 分担责任分析
    5. 医疗保健客户
    6. IVES 支持
    7. “保管”协议
    8. 欧盟/英国注意事项
      1. 欧盟/英国跨国事务和 eIDAS
      2. 电子签名契约的 HMLR 要求
      3. 英国脱欧对英国电子签名法的影响
  5. 批量下载协议
  6. 申请您的域
  7. “举报滥用”链接

发送、签署和管理协议

  1. 收件人选项
    1. 取消电子邮件提醒
    2. 电子签名页面上的选项
      1. 电子签名页面概述
      2. 打开以阅读不含字段的协议
      3. 拒绝签署协议
      4. 委派签名权限
      5. 重启协议
      6. 下载 PDF 版协议
      7. 查看协议历史记录
      8. 查看协议消息
      9. 从电子签名转换为书面签名
      10. 从书面签名转换为电子签名
      11. 浏览表单字段
      12. 清除表单字段中的数据
      13. 电子签名页面放大和导航
      14. 更改协议工具和信息中使用的语言
      15. 查看法律声明
      16. 调整 Acrobat Sign Cookie 首选项
  2. 发送协议  
    1. “发送”页面概述
    2. 仅向您自己发送协议
    3. 将协议发送给其他人
    4. 书面签名
    5. 收件人签名顺序
    6. 批量发送
      1. 批量发送功能概述
      2. 批量发送 - 配置父模板
      3. 批量发送 - 配置 CSV 文件
      4. 取消“批量发送”事务
      5. 添加批量发送提醒
      6. 批量发送报告
  3. 在文档中创作字段
    1. 应用程序内创作环境
      1. 自动字段检测
      2. 使用创作环境拖放字段
      3. 向收件人分配表单字段
      4. 预填充角色
      5. 使用可重复使用的字段模板应用字段
      6. 将字段传输到新库模板
      7. 更新了发送协议时的创作环境
    2. 使用文本标记创建表单
    3. 使用 Acrobat (AcroForms) 创建表单
      1. 创建 AcroForm
      2. 创建无障碍 PDF
    4. 字段
      1. 字段类型
        1. 常用字段类型
        2. 内嵌图像
        3. 图章图像
      2. 字段内容外观
      3. 字段验证
      4. 遮挡的字段值
      5. 设置显示/隐藏条件
      6. 计算型字段
    5. 创作常见问题
  4. 签署协议
    1. 签署发送给您的协议
    2. 填写并签署
    3. 自签名
  5. 管理协议
    1. “管理”页面概述
    2. 委派协议
    3. 替换收件人
    4. 限制文档可见性
    5. 取消协议
    6. 创建新提醒
    7. 查看提醒
    8. 取消提醒
    9. 访问 Power Automate 流程
    10. 更多操作...
      1. 搜索的工作方式
      2. 查看协议
      3. 通过协议创建模板
      4. 在视图中隐藏/取消隐藏协议
      5. 上载已签名协议
      6. 修改已发送协议的文件和字段
      7. 编辑收件人的身份验证方法
      8. 添加或修改过期日期
      9. 向协议添加注释
      10. 共享单个协议
      11. 取消共享协议
      12. 下载单个协议
      13. 下载一份协议下的各个文件
      14. 下载协议的审核报告
      15. 下载协议的字段内容
  6. 审核报告
  7. 报告和数据导出
    1. 概述
    2. 授予用户对报告的访问权限
    3. 报告图表
      1. 创建新报告
      2. 协议报告
      3. 事务报告
      4. 设置活动报告
      5. 编辑报告
    4. 数据导出 
      1. 创建新数据导出
      2. Web 表单数据导出
      3. 编辑数据导出
      4. 刷新数据导出内容
      5. 下载数据导出
    5. 重命名报告/导出
    6. 复制报告/导出
    7. 计划报告/导出
    8. 删除报告/导出
    9. 检查事务使用情况

高级协议功能和工作流程

  1. Web 表单 
    1. 创建 Web 表单
    2. 编辑 Web 表单
    3. 禁用/启用 Web 表单
    4. 隐藏/取消隐藏 Web 表单
    5. 查找 URL 或脚本代码
    6. 使用 URL 参数预填充 Web 表单字段
    7. 保存 Web 表单以便稍后完成
    8. 调整 Web 表单的大小
  2. 可重复使用的模板(库模板)
    1. Acrobat Sign 库中的美国政府表单
    2. 创建库模板
    3. 更改库模板的名称
    4. 更改库模板的类型
    5. 更改库模板的权限级别
    6. 复制、编辑和保存共享模板
    7. 下载库模板的聚合字段数据
  3. 转让 Web 表单和库模板的所有权
  4. Power Automate 工作流程
    1. Power Automate 集成和包含的权限概述
    2. 启用 Power Automate 集成
    3. “管理”页面上的上下文操作
    4. 跟踪 Power Automate 使用情况
    5. 创建新的工作流(示例)
    6. 用于工作流的触发器
    7. 从 Acrobat Sign 外部导入工作流
    8. 管理工作流
    9. 编辑工作流
    10. 共享工作流
    11. 禁用或启用工作流
    12. 删除工作流
    13. 实用模板
      1. 仅限管理员
        1. 将所有已完成的文档保存到 SharePoint
        2. 将所有已完成的文档保存到 OneDrive for Business
        3. 将所有已完成的文档保存到 Google Drive
        4. 将所有已完成的文档保存到 DropBox
        5. 将所有已完成的文档保存到 Box
      2. 协议存档
        1. 将已完成的文档保存到 SharePoint
        2. 将已完成的文档保存到 OneDrive for Business
        3. 将已完成的文档保存到 Google Drive
        4. 将已完成的文档保存到 DropBox
        5. 将已完成的文档保存到 Box
      3. Web 表单协议存档
        1. 将已完成的 Web 表单文档保存到 SharePoint 库
        2. 将已完成的 Web 表单文档保存到 OneDrive for Business
        3. 将已完成的文档保存到 Google Drive
        4. 将已完成的 Web 表单文档保存到 Box
      4. 协议数据提取
        1. 从已签名文档中提取表单字段数据并更新 Excel 工作表
      5. 协议通知
        1. 发送包含协议内容和已签名协议的自定义电子邮件通知
        2. 在 Teams 渠道中获取 Adobe Acrobat Sign 通知
        3. 在 Slack 中获取 Adobe Acrobat Sign 通知
        4. 在 Webex 中获取 Adobe Acrobat Sign 通知
      6. 协议生成
        1. 通过 Power Apps 表单和 Word 模板生成文档,并发送以供签名
        2. 从 OneDrive 中的 Word 模板生成协议并获取签名
        3. 为所选 Excel 行生成协议,发送以供审阅和签名
  5. 自定义发送工作流程
    1. 自定义发送工作流程概述
    2. 创建新的发送工作流程
    3. 编辑“发送”工作流程
    4. 激活或停用发送工作流程
    5. 使用发送工作流程发送协议
  6. 共享用户和协议
    1. 共享用户
    2. 共享协议

与其他产品集成

  1.  Acrobat Sign 集成概述
  2. Acrobat Sign for Salesforce
  3. Acrobat Sign for Microsoft
    1. Acrobat Sign for Microsoft 365
    2. 适用于 Outlook 的 Acrobat Sign
    3. 适用于 Word/PowerPoint 的 Acrobat Sign
    4. Acrobat Sign 团队版
    5. 适用于 Microsoft PowerApps 和 Power Automate 的 Acrobat Sign
    6. 适用于 Microsoft Search 的 Acrobat Sign 连接器
    7. 适用于 Microsoft Dynamics 的 Acrobat Sign
    8. 适用于 Microsoft SharePoint 的 Acrobat Sign
  4. 其他集成
    1. Acrobat Sign for ServiceNow
    2. 适用于 HR ServiceNow 的 Acrobat Sign
    3. 适用于 SAP SuccessFactors 的 Acrobat Sign
    4. 适用于 Workday 的 Acrobat Sign
    5. 适用于 NetSuite 的 Acrobat Sign
    6. 适用于 VeevaVault 的 Acrobat Sign
    7. 适用于 Coupa BSM Suite 的 Acrobat Sign
  5. 合作伙伴管理的集成
  6. 如何获取集成密钥

Acrobat Sign 开发人员

  1. REST API
    1. 方法文档
    2. SDK/开发人员指南
    3. API 常见问题
  2. Webhook 
    1. Webhook 概述
    2. 配置新 Webhook
    3. 查看或编辑 Webhook
    4. 停用或重新激活 Webhook
    5. 删除 Webhook
    6. 双向 SSL 证书
    7. API 中的 Webhook

支持和故障排除

  1. 客户支持资源
  2. 企业客户成功资源 

API 访问权限专为企业和开发人员级帐户保留。

核心文档的链接

注意:

2021 年 5 月已停止支持旧版 SOAP API。

所有使用 SOAP API 的客户应尽快迁移到 REST API

登录后,导航至帐户 > Acrobat Sign API > API 信息 > Rest API 和文档


一般概念

您无法通过在 Web UI 上查看页面来创作文档,也无法通过 API 使用 transientDocumentId 来拖放或分配签名人角色。

transientDocuments 调用会返回 transientDocumentID,有效期为 7 天。  您只能将其用于后续的 API 调用。它存储在 API 服务器上并分配了临时文档 ID。上传文件,然后在后续 API 调用中引用其 ID。

您无法使用 REST API 直接上传协议中的文档。

根据 REST 要求,首先应创建一个临时文档,然后在协议、小组件或库方法中将此 ID 用作文件源。

临时文档是上传到 Adobe 服务器的 Raw 文件,例如 PDF、doc、docx 等。因此,这是一种将基础文档传输到 API 服务器和将临时文档传输到 Web 上便捷方式。

是的,您可以通过 v6 中的工作流程使用 API 调用 POST /agreements 来发布协议。在 API 调用中传递 workflowId 参数。

您可以使用 GET /workflows 调用获取工作流程的 workflowId。

  1. 以管理员身份登录至 Adobe Sign

  2. 导航至帐户 > Adobe Sign API > API 请求日志

    API 日志

  1.  以管理员身份登录至 Adobe Sign 帐户

  2. 导航至:帐户 > Adobe Sign API > API 信息

  3. 单击 REST API 示例链接。

    注意:

    要下载 JavaScript SDK,请参阅 https://github.com/adobe-sign/AdobeSignJsSdk。

从 v6 开始,sendTroughWeb 选项不再可用。取而代之的是 state。它是指协议所处的状态。只能在 POST 调用中提供 state 字段。如果在 PUT /agreements/{ID} 调用中提供此字段,它绝不会在 GET /agreements/{ID} 中返回并且会被忽略。可从 GET /agreements/ID 获取协议的最终状态。

state(string) = ['AUTHORING' or 'DRAFT' or 'IN_PROCESS'].

AUTHORING 允许用户创作协议文档,然后将其发送出去。此处的创作操作是指在协议文档中创建、编辑或放置表单字段及其配置(被分配人、条件、数据类型等)。在以“Authoring”状态发布文档后,此文档会显示在 Adobe Sign“管理”选项卡的“草稿”部分中。

DRAFT 是最终预期资源的临时或原始阶段,可在创建最终资源的步骤中进行更新,但不会显示在 Adobe Sign“管理”选项卡的“草稿”部分中。使用“Draft”状态时,无需提供参与者集信息,稍后可在调用 PUT/agreements/agreementId 以完成草稿时分配此信息。此步骤可以重复多次,直到您拥有创建协议所需的所有数据。

IN_PROCESS 将协议状态更改为“已发出进行签名”,并且会显示在 Adobe Sign“管理”选项卡的“已发出进行签名”部分中。

sendThroughWeb 允许您以交互方式发送协议。通过 v5 POST /agreements 请求内“选项”字段中的各种参数,用户能够配置这个交互式视图(“发送”页面)。所有这些页面配置参数(例如 fileUploadOptions)都将移到 POST agreements/ID/views API 中。

因此,实际上,您可以通过 POST /agreements API 创建一个“AUTHORING”状态的协议以实现 sendThroughWeb。然后,要在所需的配置中请求下一个页面的 URL,请调用 POST agreements/ID/views API。

请执行以下步骤:

1. 转到 REST API V6 文档并选择 POST/agreements 方法。
2. 使用以下请求代码:

{

  "fileInfos": [

    {

      "transientDocumentId": "***************************"

    }

  ],

  "name": "test",

  "participantSetsInfo": [

    {

      "memberInfos": [

        {

          "email": "abc@gmail.com"

        }

      ],

      "order": 1,

      "role": "SIGNER"

    }

  ],

  "signatureType": "ESIGN",

  "state": "AUTHORING"

}

 

3. 现在,使用带有以下请求代码的方法 post /agreements/{agreementId}/views:

 

{

  "name": "AUTHORING"

}

响应代码会提供创作字段的 URL。

可以通过以下方式定义回调 URL:

  • 根据需要使用以下参数定义回调 URL:

    "callbackInfo": "",
  • 请联系 Adobe Sign 支持团队,以设置完整帐户的默认回调 URL。

SOAP UI (SmartBear) 会收到与进行 API 调用时出现的错误类似的 SSL 连接错误。如果您使用低于 TLS1.2 的过时 SSL 或 TLS 协议,则通常会出现此错误

ERROR: Exception in request: javax.net.ssl.SSLException: Received fatal alert: protocol_version
ERROR: An error occurred [Received fatal alert: protocol_version], see error log for details

  1. 在 Bin 文件夹下的 VMOPTIONS 文件中添加 (-Dsoapui.https.protocols=SSLv3,TLSv1.2)。

  2. 转到 C:\Program Files\SmartBear\SoapUI-5.2.1\bin(具体取决于 SOAP UI 的安装位置。它可能位于 C:\Program Files (x86) 下)

  3. 在 VMOPTIONS 文件中,启用完全读取/写入文件权限。

    VMOPTIONS

  4. 右键单击 VMOPTIONS 文件 >“属性”>“安全”选项卡,然后选择用户 > 单击“编辑”。(“用户访问控制”图标显示在“编辑”按钮上)> 选中所有复选框并单击“确定”。

  5. 对管理员、系统,以及所有应用程序包重复相同的操作。

  6. 使用“记事本”打开文件。

  7. 在底部添加此协议“-Dsoapui.https.protocols=SSLv3,TLSv1.2”并保存更改。

  8. 关闭 SOAP UI 并重新启动。在进行 API 调用时它将正常运行,而不会出现 SSL 错误。(请执行测试 ping 调用以进行检查)。

以下是在 Adobe Sign 应用程序中创建客户端 ID 和客户端密码的步骤:

  1. 登录到 Adobe Sign 帐户。

  2. 导航至帐户 > Adobe Sign API > API 应用程序

    Fnord.

  3. 要创建应用程序,请单击 + 图标。

    Fnord.

  4. 输入“名称”和“显示名称”。

  5. 在“域”下,选择“客户”,然后单击“保存”。

    Fnord.

  6. 单击以突出显示应用程序。

  7. 单击“对应用程序配置 OAuth”。

    Fnord.

  8. 输入重定向 URI。

  9. 要启用所需范围,请选中相应的复选框并单击“保存”。

  1. 以帐户管理员身份登录至 Adobe Sign

  2. 导航至:帐户 > Adobe Sign API > API 信息

  3. 单击集成密钥链接

    导航到“集成密钥”

    注意:

    如果未显示“集成密钥”链接,请与您的成功经理联系,让他们启用您的帐户。

    • 使用直观值命名密钥
    • 选择应用程序函数所需的各种范围
    • 在完全配置密钥之后,单击保存
    “创建集成密钥”界面

  4. 保存后,可在以下位置找到该密钥:帐户 > 个人首选项 > 访问令牌

    将列出密钥的名称以及所有已启用的范围。  

    单击一次密钥说明,可显示操作链接:

    • 集成密钥 - 此链接提供文本密钥
    • 撤消 - 此操作将会永久撤消并删除访问令牌
    访问令牌 - 集成密钥

  1. 登录到 Adobe Sign 帐户。

  2. 导航至“帐户”>“Adobe Sign API”>“API 应用程序”。

  3. 单击 + 图标以创建应用程序。

    Postman1

  4. 单击“对应用程序配置 OAuth”。

    Fnord.

  5. 使用以下链接生成授权代码。客户端 ID、重定向 URI 以及范围必须与在应用程序中选择的以下 URL 中对应的值相同(避免在以下 URL 中出现空格,像“NA1”这样的分区应根据您的 Adobe Sign 帐户所属关系填充):

    https://secure.na1.echosign.com/public/oauth?redirect_uri=https://www.google.co.in&response_type=code&client_id=CBJCHBCAABAAo9FZgq31_5BVG_kcIXEe6gNtn-R-gdNe&scope=user_login:self+agreement_send:account

  6. 如果调用成功,请从地址栏中选取授权代码。

    Fnord.

  7. https://www.getpostman.com/apps 链接下载并安装 Postman。

  8. 下载并安装后,单击“新建”以创建 POST。

  9. 根据您的 Adobe Sign 帐户所属关系,输入 https://secure.na1.echosign.com/oauth/token 链接。

  10. 在“标头”下的“内容类型”中输入 application/x-www-form-urlencoded。

  11. 确保在“正文”下选择 x-www-form-urlencoded,并输入以下参数及其相应值(源自在 Adobe Sign 帐户中创建的应用程序),然后单击“发送”。

    Fnord.

  12. 如果所有信息都正确,则会在响应中返回访问令牌和刷新令牌:

    Fnord.

运行 OAuth 进程时,请确保遵循以下几点:

1. 指定正确的客户端 ID 和重定向 URI。
2. 授权 URL 中提供的范围应与 Adobe Sign 应用程序中提供的范围完全匹配。
3. 根据要配置的帐户,使用正确的分区(na1、na2、au1、eu1、jp1)。
4. 移除授权 URL 中提供的任何空格(如果有)。
5. 检查授权 URL 的语法:

https://secure.na1.echosign.com/public/oauth?redirect_uri=https://secure.na1.echosign.com/public/oauthDemo&
response_type=code&client_id=9MEJXY4Y4R7L2T&scope=agreement_send

访问令牌的有效期仅为 3600 秒(1 小时),之后这些令牌将过期。

API 请求持有者可以使用刷新令牌,以便根据需要生成新的访问令牌。

REST API V6 及更高版本支持 Webhook。

如果 Webhook 接收器在 72 小时内无响应,则将禁用 Webhook 且不会发送通知。

如果 Webhook 的目标 URL 因任何原因而停止运转,Adobe Sign 会将 JSON 排入队列,然后在 72 小时内循序渐进地重试推送。

未传送的事件将会保留在重试队列中,并且在接下来的 72 小时内,将会尽可能按照发生顺序来发送通知。

重试发送通知的策略是:将两次尝试之间的时间增加一倍,从 1 分钟的间隔开始,增加到每 12 小时一次,进而在 72 小时内重试 15 次。

 

要直接从 Adobe Sign UI 创建 Webhook,请首先通过 Azure AD 函数应用使用以下步骤创建 Webhook URL:

  1. 通过 Microsoft 帐户 https://portal.azure.com/ 登录。

  2. 在 AzureAD 帐户下,注册“Function App”。

    Azure 菜单

  3. 转到 AzureAD 并转到“Function App”> 单击 + 图标以展开“函数”。

  4. 选择“Webhook + API”并选择“Javascript”作为语言,然后单击“创建函数”。

    Azure API UI

  5. 将 Index.js 文件替换为以下代码片段:

    module.exports = function (context, req) { var clientId = req.headers['x-adobesign-clientid']; // Validate that the incoming ClientID is genuine if (clientId === '************************************') { context.res = { // status: 200, /* Defaults to 200 */ // any 2XX response is acceptable body: { 'xAdobeSignClientId' : clientId, }, headers : { 'Content-Type' : 'application/json' } }; } else { context.res = { status: 400, body: "Opps!! Illegitimate Call identified" }; } context.done(); 
    };
  6. 单击右侧角落的“测试”按钮,并提供以下标头:

    X-AdobeSign-ClientId as ***********************

    API 测试

  7. 单击“保存并运行”。

  8. 收到包含以下标头的“200 正常”响应后,单击“获取函数 URL”

    200 响应

  9. 复制 URL 并转到 Adobe Sign UI >“Webhook”,单击 + 图标以创建。

  10. 输入以下信息:

    • 名称:建议使用其他管理员可轻松理解的直观名称。
    • 范围:Webhook 捕捉的网络范围。“帐户”和“组”在界面中可用。
      此 API 支持“帐户”、“组”、“用户”和“资源”范围。
    • 每个 Webhook 只能定义一个范围
    • URL:Adobe Sign 将 JSON 负载推送到的目标 URL。
    • 事件:导致 Adobe Sign 构建 JSON 并将其推送到 URL 的触发器。
      每个事件会生成与触发器事件相关的不同负载
      在一个 Webhook 中可以包含多个事件。
    • 通知参数:“通知参数”会标识事件 JSON 负载的各个部分,让您能够仅选择“事件”中重要的部分。
    Webhook UI

  11. 完全定义 Webhook 后单击“保存”,然后新的 Webhook 会立即开始响应触发器事件。

协议资源是指可通过其创建协议的资源,例如库文档、小组件以及协议本身。

要搜索协议资源事件,请首先向使用相关搜索参数创建 agreementAssetEvents 的 API 发出请求。

“响应”是结果的第一页,其中还包含搜索 ID 参数和下一页光标。您可以使用它来获取更多页面结果(如果使用 API 可以得到的话),API 会根据 search Id 检索 agreementAssetEvents。

  1. 打开适用于版本 5 的 REST API 文档。

  2. 转到 post/search/agreementAssetEvents 并使用相关范围生成访问令牌。

  3. 在请求代码中,根据要求定义开始日期和结束日期:

    { 
      "endDate": "2018-05-22T22:33:33", "startDate": "2017-12-22T22:33:33" 
    }
  4. 单击“立即试用”。它将会获取协议资源 ID,也可用作协议 ID。


用户/帐户管理

  1. 登录到 Adobe Sign。
  2. 导航至“帐户”>“Adobe Sign API”>“REST API 文档”。
  3. 选择“版本 5”。
  4. 在 post /users 方法下,使用
    UserCreationInfo 方法
    下提到的请求代码:{
    "email": "email@email.com",
    "firstName": "AA",
    "lastName": "AB",
    "password":"12******rte"
    }

使用 Admin Console (Adobe One) 管理用户权利的 Adobe Sign 帐户,无法使用 Adobe Sign API 创建用户或管理现有用户。

Adobe One Admin Console 使用与 Adobe Sign API 不同的 API。有关更多信息,请参阅以下文章:

 

获取组 ID:

  1. 转到 https://secure.na1.echosign.com/public/docs/restapi/v5

  2. 在“资源和操作”下,单击“组”。

  3. 单击“GET /groups”。

  4. 单击“oAuth Access-token”按钮。

  5. 生成访问令牌。

  6. 单击“立即试用”按钮。

    您会收到如下响应,其中包含组名称和组 ID:

    { 
      "groupInfoList": [ { "groupId": "3AAABLblqZhB4o9EnlvmGB_m8CrG5O6XClTBO7vmojOOexu5r3G95LtEV2Sp7BuhNvQYSvWB7PmmwVPXnhPIiYSuHV98Cerkp", "groupName": "Default Group" }, { "groupId": "3AAABLblqZhC3dPT6za5h7r1-BOEWivCe_OcAVONhcsKa57SL9_iCwGr5v_JED1No5jE20Pcjv0mYH2J-LoY1AcmqS69vRkO7", "groupName": "test" 
        }, 
      ] 
    }

删除组:

  1. 单击“DELETE /groups/{groupId}”。

  2. 要生成访问令牌,请单击“oAuth Access-token”按钮。

  3. 在 groupId 框中,添加您要删除的在上一次调用响应中收到的 groupId。

  4. 单击“立即试用”。

    删除组后,您会收到以下响应:“无内容”

注意:

无法删除已分配了用户的组。实际上,只能删除空白组。如果组中有用户,您会收到如下响应。


{

  "code": "GROUP_NOT_EMPTY",

  "message": "The group cannot be deleted because it is not empty."

}


启动/发送协议

生成临时文档

  1. 单击 transientDocuments 并展开 POST/transientDocuments 方法

  2. 单击 OAuth Access-token 按钮

    API TransientDocument 方法

    • 启用交易的范围
    • 单击授权
    OAuth 范围

  3. 允许访问

    如果收到质询,请单击允许访问

  4. 您将返回到“API 方法”页面。现在将填充授权值。

    • 文件名字段中输入文件名
    • 单击选择文件按钮并上传协议文档
    • 单击“立即试用!”按纽
    立即试用!

  5. 将生成响应。

    transientDocumentID 可在响应正文中找到:

    临时文档 ID

使用“临时”文档生成协议

  1. 单击协议并展开 POST /agreements 方法

    • 单击 OAuth Access-token 按钮
    • 启用 OAuth 范围
    • 单击授权
      • 如果收到质询,请单击允许访问
  2. 您将返回到“API 方法”页面。现在将填充授权值。

    • 将下面的脚本复制到文本编辑器中(此脚本只是一个最低配置的示例;您的生产代码将会有所不同)
    •  将 trasientDocumentId 值插入到代码中指示的位置
    { 
      "fileInfos": [ {"transientDocumentId":"PASTE YOUR TRANSIENTDOCUMENTID HERE"} ], "name": "test doc", "participantSetsInfo": [ { "memberInfos": [ { "email": "noreply@echosign.com" } ], "order": 1, "role": "SIGNER" } ], "signatureType": "ESIGN", "state": "DRAFT" 
    }

     

    • 复制您的自定义脚本并将其粘贴到 AgreementInfo 字段中
    • 单击“立即试用!”按纽
    POST /agreements 方法

  3. 将生成响应。

    agreementID 可在响应正文中找到:

    POST /agreements 方法响应

以下是在 FileInfo 参数中添加文件的操作步骤:

  1. 使用临时 ID:

    转到 POST/transientDocuments,并从本地系统上传要使用的文档。
    使用在 POST/agreements 方法中“文件信息”部分下生成的临时 ID:

    "fileInfos": [ { "transientDocumentId": "" 
         } 
       ],
  2. 使用库文档 ID:

    转到“功能板”。单击“将文档添加到库”并保存模板。
    在“REST API 文档”下,单击“GET/libraryDocuments”并检索要创建的模板的库 ID。
    在“POST/Agreements”下,提供库文档 ID:

    "libraryDocumentId": "", "libraryDocumentName": "",
  3. 使用公开可用的 URL:

    提供要在 FileInfo 参数下使用的可公开访问的 URL:

    { 
          "documentURL": { "mimeType": "", "name": "", "url": "" 
          },
  1. 选择“协议”>“POST/agreements”选项。 

  2. 选择“Oauth Access-token”选项,并提供所需的范围。

  3. 添加访问令牌后,您可以使用以下请求代码:

    { 
    "documentCreationInfo": { "recipientSetInfos": [ { "recipientSetRole": "SIGNER", "recipientSetMemberInfos": [{"email": "testemail@email.com"}] }, { "recipientSetRole": "SIGNER", "recipientSetMemberInfos": [{"email": "testemail@email.com"}] } ], "signatureFlow": "SEQUENTIAL", "name": "husband wife", "signatureType": "ESIGN", "fileInfos": [ { "transientDocumentId": "(SAMPLE VALUE)3AAABLblqZhAJ9H6e23kZAfBUbItPvIhHTEyA6eZhziEp4KSntYcULpo43OEXwuWiWa-IM1r1EExYW0044CjCkliP4WFL5yKBUDq5DYSmSxVlFypcD0at8kK-BX-Mu3T9c_3GUqgDg0ArX0MmzWT72GLR_0M4Jq--mtuqGzq-VK1s-WGR6GcbedVY7XWAf3b3h-SpE08Hc-iF3zO7jQzi9newXSl-iW2JJsb_55tggkyxkXAkj74C1WD6KkJzgblK0JU-seh6QPDd0Fv6_mfQe2EPQA31nXj50aXwD_xlUBq7mg5FeaBnZ5bzgoqIWGHkbyeD2taaFdw*"} 
    ] 
    } 
    }

在 POST /agreements 调用中,对于 signatureflow 参数,您可以传递 SENDER_SIGNS_FIRST 或 SENDER_SIGNS_LAST 值,以便分别将发件人添加为第一位或最后一位签名者。

以下是 JSON 格式的调用示例:

{

  "documentCreationInfo": {

    "fileInfos": [

      {        "transientDocumentId":"3AAABLblqZ-yourIDGoesHere"

      }

    ],

    "name": "Test",

    "recipientSetInfos": [

      {

        "recipientSetMemberInfos": [

          {

            "email": "test@email.com"

          }

        ],

        "recipientSetRole": "SIGNER"

      }

    ],

    "signatureType": "ESIGN",

    "signatureFlow": "SENDER_SIGNS_FIRST"

  }

}

注意:

“以指定人员的名义发送”选项仅在启用“高级共享”的 REST API V6 中可用。

如果共享中未提供“发送”权限或者未启用高级共享,则会收到如下响应:

 

{"code":"PERMISSION_DENIED","message":"User provided in x-on-behalf-of-user header does not have required permission to perform this operation."}

 

对于“以指定人员的名义发送”功能,请启用帐户的“高级帐户共享”,以便用户在共享其帐户时可以向其他用户授予发送权限。有关“高级共享”的信息,请参阅启用高级帐户共享

启用“用户共享”功能后,请执行以下步骤“以指定人员的名义发送”:

生成临时文档:

  1. 在“transientDocuments”下,单击“POST /transientDocuments”。

  2. 要生成授权令牌,请单击“OAUTH ACCESS-TOKEN”按钮。

  3. 在 x-on-behalf-of-user 中,采用以下格式提供您要其名义发送的用户电子邮件:email:test@email.com

  4. 要选择文件,请单击选择文件,然后单击立即试用

    您会收到包含 transientDocumentId 的如下响应:

    {"transientDocumentId":"3AAABLblqZhB9Mjo0mrIu_pSgrf5VsMaKM68_Vmn80cimaqiUAD2OxrPp2e5H8GvjfiOxj4d5B8bCPkUfvaozW3KLisp_wseGVOL8A7oNZni1DWyFi4uNoxLQu4nUO44Wh63GQv9_HEJMePust0Pk94vJ_rbS96R7ic-vl7jbOkN0b4EB5-JMqlC-Fl_Vpyz8I1EQUrM5I4nB9ztMov4ad00yiOtDw0tB-Y2t5JdzM07P-mpJmwYEl8Fq2IeDuWjcR2tV7qY7TNGX2CNyh9jt0aMyduHeYa0GABr69z8Hm76eKdtaM_1E1ggWj205fSrNcwJsnpSO278*"}

使用“临时”文档生成协议:

  1. 在协议下,单击“POST /agreements”。

  2. 要生成授权令牌,请单击 OAUTH ACCESS-TOKEN 按钮。

  3. 在 x-on-behalf-of-user 中,提供在创建临时文档时使用的用户的电子邮件。

  4. 在“AgreementInfo”中,添加以下代码,然后单击“立即试用”。

    { 
      "fileInfos": [ { "transientDocumentId":"3AAABLblqZhB9Mjo0mrIu_pSgrf5VsMaKM68_Vmn80cimaqiUAD2OxrPp2e5H8GvjfiOxj4d5B8bCPkUfvaozW3KLisp_wseGVOL8A7oNZni1DWyFi4uNoxLQu4nUO44Wh63GQv9_HEJMePust0Pk94vJ_rbS96R7ic-vl7jbOkN0b4EB5-JMqlC-Fl_Vpyz8I1EQUrM5I4nB9ztMov4ad00yiOtDw0tB-Y2t5JdzM07P-mpJmwYEl8Fq2IeDuWjcR2tV7qY7TNGX2CNyh9jt0aMyduHeYa0GABr69z8Hm76eKdtaM_1E1ggWj205fSrNcwJsnpSO278*" } ], "name": "Test", "participantSetsInfo": [ { "memberInfos": [ { "email": "signer@email.com" } ], "order": 1, "role": "SIGNER" } ], "signatureType": "ESIGN", "state": "IN_PROCESS" 
    }

     

    您会收到包含 agreementId 的如下响应:

    { 
      
      "id": "CBJCHBCAABAAUlen3l_fzlj1Kbn_wGZAhYcIgN0J7Qtq" 
      
    }
  1. 登录到 Adobe Sign。

  2. 导航至“帐户”>“Adobe Sign API”>“API 信息”,然后单击“REST API 方法文档”。

    Webhook UI

  3. 单击“POST/transientDocuments”,然后上传文件并创建临时文档 ID。

  4. 复制临时文档 ID,并在 POST /agreements 方法中使用该 ID。在框中提到以下 JSON 请求:

    { 
        "documentCreationInfo": { "mergeFieldInfo": null, "recipientSetInfos": [{ "signingOrder": null, "recipientSetRole": "SIGNER", "recipientSetMemberInfos": [{ "securityOptions": null, "email": "test1@gmail.com" }], "privateMessage": "Hello 1", "securityOptions": null }, { "signingOrder": null, "recipientSetRole": "SIGNER", "recipientSetMemberInfos": [{ "securityOptions": null, "email": "test2@gmail.com" }], "privateMessage": "Hello 2", "securityOptions": null } ], "signatureType": "ESIGN", "callbackInfo": null, "message": "Please review and sign this document.", "locale": "en_US", "vaultingInfo": null, "securityOptions": null, "reminderFrequency": null, "ccs": null, "postSignOptions": null, "signatureFlow": "SENDER_SIGNATURE_NOT_REQUIRED", "daysUntilSigningDeadline": null, "formFieldLayerTemplates": [], "name": "Adobe Sign Agreement", "formFields": null, "fileInfos": [{ "libraryDocumentName": null, "transientDocumentId": "XXXXXXXXXXXX", "documentURL": null, "libraryDocumentId": null 
            }] 
        } 
    }
  5. 要执行 JSON 请求,请单击“立即试用”按钮。

    Webhook UI

    正确的 JSON 会返回包含协议 ID 的响应。

    Webhook UI

以下是可以在代码中传递的参数,用于设置打开密码:

 

{

    "documentCreationInfo":

    [{

        "signatureType": "ESIGN",

               "recipientSetInfos": [{

            "recipientSetMemberInfos": [{                      

                "email": "abc@xyz.com"                  

            }],

                   

            "recipientSetRole": "SIGNER"                         

        }],

               "signatureFlow": "SENDER_SIGNATURE_NOT_REQUIRED",

                   "fileInfos": [           {               

            "libraryDocumentId": "3AAABLblqZhBsm_vH7TVzU3hRdbtWuvzfTKDvBzaKZTiehjO2eGTk5Rlu02K-0BYn8HBJVFTWOmT_BQlrofPBlrCdjiJ_JI-V"        

        }       ],

               "name": "Open password to view document",

               "securityOptions": {        

            "openPassword": "1234",

                     "protectOpen": true   

        }  

    }]

}

 

要使用 API 状态为“AUTHORING”的创建协议,请执行以下步骤:

转到“Post /agreements”,并创建具有所需范围的访问令牌。

请按如下方式使用请求代码:

 

{

  "fileInfos": [

    {

      "transientDocumentId": "*********************"

    }

  ],

  "name": "A1",

  "participantSetsInfo": [

    {

      "memberInfos": [

        {

          "email": "abc@xyz.com"

        }

      ],

      "order": 1,

      "role": "SIGNER"

    }

  ],

  "signatureType": "ESIGN",

  "state": "AUTHORING"

}

 

v6 具有一组创作 API,用于创作协议。在 v5 中,直接在 POST /agreements API 中使用 formFields。但是,在 v6 中,用户可以通过 v6 POST /agreements 创建一个处于“AUTHORING”状态 (state = AUTHORING) 的协议,并在稍后的任何时间点使用 PUT /agreements/ID/formFields 将表单字段添加到此协议的文档中。

以下是操作步骤:

  1. 转到 REST API V6 文档并选择 POST/agreements 方法。

  2. 使用以下请求代码:

    { 
      "fileInfos": [ { "transientDocumentId": "***************************" } ], "name": "test", "participantSetsInfo": [ { "memberInfos": [ { "email": "abc@gmail.com" } ], "order": 1, "role": "SIGNER" } ], "signatureType": "ESIGN", "state": "AUTHORING" 
    }
  3. 使用 put /agreements/{agreementId}/formFields 方法,以下列请求作为示例:

    { 
      "fields": [ { "locations": [ { "height": 36, "left": 75, "pageNumber": "1", "top": 200, "width": 150 } ], "contentType": "SIGNATURE_BLOCK", "name": "sigBlock1", "inputType": "SIGNATURE", "recipientIndex":1 
           } 
    ]}

     

    在完成请求后,它会将协议发送给提到的收件人。

  1. 登录到 Adobe Sign。

  2. 导航至“帐户”>“Adobe Sign API”>“API 信息”,然后单击“REST API 方法文档”。

    Webhook UI

  3. 单击“POST/transientDocuments”,然后上传文件并创建临时文档 ID。

  4. 复制临时文档 ID,并在 POST /agreements 方法中使用该 ID。在框中提到以下 JSON 请求:

    { 
        "documentCreationInfo": { "recipientSetInfos": [{ "recipientSetRole": "SIGNER", "recipientSetMemberInfos": [{ "email": "test1@gmail.com" }], "privateMessage": "Hello 1" }, { "recipientSetRole": "SIGNER", "recipientSetMemberInfos": [{ "email": "test2@gmail.com" }], "privateMessage": "Hello 2" } ], "signatureType": "ESIGN", "message": "Please review and sign this document.", "signatureFlow": "SENDER_SIGNATURE_NOT_REQUIRED", "name": "Demo1", "fileInfos": [{ "transientDocumentId": "XXXXXXXXXX" }], "formFields": [{ "hidden": "1", "defaultValue": "test1@gmail.com", "name": "Signer Email (Applicant-1)", "inputType": "TEXT_FIELD", "readOnly": true, "locations": { "pageNumber": 1, "top": 100, "left": 100, "width": 100, "height": 30 }, "contentType": "SIGNER_EMAIL" }, { "name": "Signature (Applicant-2)", "inputType": "SIGNATURE", "locations": { "pageNumber": 1, "top": 520, "left": 162, "width": 280, "height": 30 }, "contentType": "SIGNATURE", "required": 1, "recipientIndex": 1 }, { "name": "Signature (Applicant-3)", "inputType": "SIGNATURE", "locations": { "pageNumber": 2, "top": 312, "left": 154, "width": 280, "height": 30 }, "contentType": "SIGNATURE", "required": 1, "recipientIndex": 1 }, { "defaultValue": "017/09/2018", "displayFormatType": "DATE", "name": "Signature Date (Applicant-4)", "format": "DATE_DD_MM_YYYY", "inputType": "TEXT_FIELD", "readOnly": true, "locations": { "pageNumber": 2, "top": 260, "left": 90, "width": 80, "height": 30 }, "contentType": "DATA", "required": 1, "recipientIndex": 1 }, { "name": "Signature (Applicant-5)", "inputType": "SIGNATURE", "locations": { "pageNumber": 3, "top": 199, "left": 179, "width": 276, "height": 30 }, "contentType ": "SIGNATURE", "required": 1, "recipientIndex": 1 }, { "contentType": "SIGNATURE_DATE", "defaultValue": "06/07/2018", "displayFormatType": "DATE", "name": "Signature Date (Applicant-6)", "format": "DATE_DD_MM_YYYY", "inputType": "TEXT_FIELD", "readOnly": true, "locations": { "pageNumber": 3, "top": 188, "left": 488, "width": 76, "height": 25 }, "required": 1, "recipientIndex": 1 }, { "name": "Signature (Applicant-7)", "inputType": "SIGNATURE", "locations": { "pageNumber": 3, "top": 370, "left": 37, "width": 210, "height": 26 }, "contentType ": "SIGNATURE", "required": 1, "recipientIndex": 2 }, { "contentType ": "SIGNATURE_DATE", "defaultValue": "01/02/2018", "name": "Signature Date (Applicant-8)", "locations": { "pageNumber": 3, "top": 370, "left": 300, "width": 76, "height": 26 }, "required": 1, "recipientIndex": 2 
      
                } 
            ] 
        } 
    }
  5. 要执行 JSON 请求,请单击“立即试用”按钮。

    Webhook UI

    正确的 JSON 会返回包含协议 ID 的响应。

    Webhook UI

  1. 登录到 Adobe Sign。

  2. 导航至“帐户”>“Adobe Sign API”>“API 信息”,然后单击“REST API 方法文档”。

    Fnord.

  3. 单击“POST/transientDocuments”,然后上传文件并创建临时文档 ID。

  4. 复制临时文档 ID,并在 POST /agreements 方法中使用该 ID。在框中提到以下 JSON 请求:

    { 
        "options": { "noChrome": true, "authoringRequested": true }, "documentCreationInfo": { "recipientSetInfos": [{ "recipientSetRole": "SIGNER", "recipientSetMemberInfos": [{ "email": "test1@gmail.com" }], "privateMessage": "Hello 1" }, { "recipientSetRole": "SIGNER", "recipientSetMemberInfos": [{ "email": "test2@gmail.com" }], "privateMessage": "Hello 44" } ], "signatureType": "ESIGN", "message": "Please review and sign this document.", "locale": "en_US", "signatureFlow": "SENDER_SIGNATURE_NOT_REQUIRED", "formFieldLayerTemplates": [], "name": "Adobe Sign Agreement", "formFields": null, "fileInfos": [{ "libraryDocumentName": null, "transientDocumentId": "XXXXXXXXXXXX" 
            }] 
        } 
    }
  5. 要执行 JSON 请求,请单击“立即试用”按钮。

    Fnord.

    正确的 JSON 会返回包含协议 ID 的响应。

    Fnord.

  6. 要在“创作模式”下打开协议,请复制 URL 并将其粘贴到浏览器的地址栏中。

  7. 将表单字段拖放到所需位置。

  8. 要发送协议以请求签名,请单击“发送”。 

使用 POST /agreements 创建协议。发送协议以请求签名,并在响应客户端时返回 agreementID。以下是使用手机身份验证方法发送协议的 JSON 格式。

 

{

"documentCreationInfo": {

"mergeFieldInfo": null,

"recipientSetInfos": [{

"signingOrder": null,

"recipientSetRole": "SIGNER",

"recipientSetMemberInfos": [{

"securityOptions": null,

"email": "Signer@email.com"

}],

 

"privateMessage": null,

"securityOptions": [{

"authenticationMethod": "PHONE",

"phoneInfos": [{

"phone": "1111111111",

"countryCode": "+1"

}]

}]

}],

 

"signatureType": "ESIGN",

"callbackInfo": null,

"message": "Please review and sign this document.",

"locale": "en_US",

"vaultingInfo": null,

"securityOptions": null,

"reminderFrequency": null,

"ccs": null,

"postSignOptions": null,

"signatureFlow": "SENDER_SIGNATURE_NOT_REQUIRED",

"daysUntilSigningDeadline": null,

"formFieldLayerTemplates": [],

"name": "Adobe Sign Agreement-Phone authentication testing",

"formFields": null,

"fileInfos": [{

"libraryDocumentName": null,

"transientDocumentId": "3AAABLYourTransactionID",

"documentURL": null,

"libraryDocumentId": null

}]

},

 

"options": {

"autoLoginUser": true,

"authoringRequested": false,

"noChrome": true,

"sendThroughWeb": null,

"sendThroughWebOptions": null,

"locale": "en_US"

}

}

 

您可以使用以下方法将数据直接合并到表单字段中:

  • 使用库模板:

    如果在 FileInfo 参数下使用库模板 ID,请确保在以下部分中提供确切的字段名称及其关联数据:

 

"mergeFieldInfo": [

     {

       "defaultValue": "",

       "fieldName": ""

     }

   ],

 

  • 将使用作为临时文档上传的文档中的文本标记:

    如果将添加了文本标记的文档上传为临时文档,请确保在以下部分中提供确切的字段名称及其关联数据:

 

"mergeFieldInfo": [

     {

       "defaultValue": "",

       "fieldName": ""

     }

   ],

 

如何使用已为特定表单字段 (mergefield) 预填值的 API 来发送协议?

此调用的前提条件是首先完成“临时上传”步骤并获取此处要使用的“transientDocumentId”(使用:secure.na1.echosign.com/public/docs/restapi/v5#! /transientDocuments/createTransientDocument)。

  • 此调用包含“mergeFieldInfo”部分,其中已提供特定表单字段的默认值。
  • 这将在 API 调用中预填来自其他系统的数据。
  • 协议中的这些字段要么可编辑,要么只读。

 

前提条件:

  1. 临时文档 ID
  2. 字段名称及相应的值

 

请求调用示例:

 

请求:

POST /api/rest/v5/agreements HTTP/1.1

主机:api.na1.echosign.com(或者,您可以指定分区名称,该名称可使用 getbaseURis 调用找到:https://secure.na1.echosign.com/public/docs/restapi/v5#! /base_uris/getBaseUris

访问令牌:2AAABLblqZhA_D1mluNKQP7py5vXtt-1UHl9NR25e_C3LnKTUH14IblbrXODbXGRozyr7ChBkJNM*

x-user-email:sender@yourdomain.com

内容类型:application/json

缓存控制:no-cache

 

{

   "documentCreationInfo": {

       "signatureType": "ESIGN",

       "recipientSetInfos": [

           {

               "recipientSetMemberInfos": [

                   {

                       "email": “signerEmail@domain.com"

                   }

               ],

               "recipientSetRole": "SIGNER"

           }

        ],

      

       "signatureFlow": "SENDER_SIGNATURE_NOT_REQUIRED",

       "message": "Please Sign this from us!",

       "fileInfos": [

           {

               "transientDocumentId": "3AAABLblqZhD1uP3ZnkJximC0JV1S677PR5xmybSJ-SJn6OtEy2tVqFyMN4xUAbhKTSkLw2Zb6HEF4zAGsrUd2ycoB8fFHQJhrci0O6267VztmIL4nCicSqvAjO7HckATHAsovVmuYwI9_FDDgHg0ogyti62L13HQFZIQRe9iyQMvvzbmksM7ODNK_HEepEKRCeJTtis9FOlz6uRCcIMNlbX_2GU8utWT"

           }

       ],

       "name": "MSA Edited”,

        "mergeFieldInfo": [

            {

                "fieldName": "AccountName",

                "defaultValue": "Sam's Garage"

            },

            {

                "fieldName": "AccountNumber",

                "defaultValue": "8756999"

            },

            {

                "fieldName": "Zip",

                "defaultValue": "94501"

            },

            {

                "fieldName": "City",

                "defaultValue": "CityVille"

            },

            {

                "fieldName": "State",

                "defaultValue": "CA"

            },

            {

                "fieldName": "Street",

                "defaultValue": "123 Some Road"

            },

            {

                "fieldName": "Title1",

                "defaultValue": "COO"

            },

            {

                "fieldName": "Description",

                "defaultValue": "Some new description here"

            }

        ]

   }

 

}

 

对此调用的响应是“agreementId”,您需要将它存储在系统中以便进行后续调用(signingUrl、status、formData 等)

 

响应:

{

  "agreementId": "3AAABLblqZhCf_7xDcrOgKFwAabp1S-OFfvUdHf2wJsSMwlB95_x_WdUeab67jOkJi1IJzWuSJ0zdNNKugS1blZB4LT5vNVyJ"

}

 

运行 post /megaSigns/{megaSignId}/views 方法时,显示错误信息:“请求的视图不适用于当前状态下的资源”。

如果在以下请求代码中提供的名称参数值无效,则会显示该错误:

{
  "name": " "
}

例如,如果 MegaSign 协议已经处于“IN_PROCESS”状态,则提供“AUTHORING”值将会引发上述错误。确保提供的值符合当前的协议状态。

运行 put /megaSigns/{megaSignId}/state 方法时,显示错误信息:“没有提供 MegaSign 取消信息的值”。

当请求代码缺少参数时,会导致该错误:

"megaSignCancellationInfo": {
    "comment": "",
    "notifyOthers": false
  }

请单击“填写模型架构”并提供完整的请求代码来运行 API 调用,而不是使用“最小架构”。

要更改 MegaSign 协议的状态,请使用 put /megaSigns/{megaSignId}/state 方法并执行以下步骤:

  1. 转到 REST API V6 文档并选择
    put /megaSigns/{megaSignId}/state 方法。
  2. 提供授权值,以及 If-Match 和 megasignID。
    • 要检索 megasignID,请使用 get /megaSigns
    • 要检索 If-Match,请使用 get /megaSigns/{megaSignId},并在标头下找到“Etag”
  3. {
      "state": "CANCELED",
      "megaSignCancellationInfo": {
       "comment": "cancel",
       "notifyOthers": false
      }

为成功注册 Webhook,Webhook URL 会通过 2XX 响应代码响应此验证请求,而且,它还可以通过以下两种方式之一发回相同的客户端 ID 值:

  1. 在响应标头 X-AdobeSign-ClientId 中。它是在请求中传递的同一标头,并且在响应中发回。
  2. 在 JSON 响应正文中,使用 X-AdobeSign-ClientId 的密钥及其值,该值与请求中发送的客户端 ID 相同。

Adobe Sign 会收到包含 X-AdobeSign-ClientId 的 2xx 响应。用户可以检查在 Webhook 中配置的响应是否正确。

Webhook URL 将不会按照预期行为进行响应。对于 Adobe Sign 发送的每个 Post 通知,URL 均通过 2XX 状态代码进行响应,并在响应标头中对请求标头 (X-AdobeSign-ClientId) 中发回的客户端 ID 做出回应。

有关完整信息,请参阅以下链接:
https://www.adobe.io/apis/documentcloud/sign/docs.html#!adobedocs/adobe-sign/master/webhooks/webhook_events.md

当 URL 未能遵守此协议时,Adobe Sign 会认为此 URL 未确认响应请求,也未尝试根据可靠策略重新计划。

如果 Webhook 无法响应,并且超过了最长重试时间或最大重试间隔,则将禁用 Webhook。

本作品已获得 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 授权  Twitter™ 和 Facebook 中的内容不在 Creative Commons 的条款约束之下


管理/获取关于协议的信息

要更改已经发送以供签名的文档,请使用 PUT /agreements/{agreementId} 方法更新现有协议。在以下请求代码中提供临时 ID 和协议 ID:

 

{

  "documentUpdateInfo": {

    "fileInfos": [

      {

        "agreementDocumentId": "",

        "transientDocumentId": ""

      }

    ]

  }

}

 

以下是使用 Put /agreements/{agreementId}/state 将状态从“AUTHORING”更新为“IN_PROCESS”的操作说明:

  1. 获取使用 POST/Agreement 方法检索的协议 ID。

  2. 使用 Get /agreements/{agreementId} 来检索最新的 ETag。

  3. 转到 Put /agreements/{agreementId}/state 并提供以下信息: "state": "IN_PROCESS"

否。

当前 REST API 中没有用于上传已签名副本的方法。

发件人必须从管理页面上传已签名的副本。

DELETE /agreements/ID 用于允许在“管理”页面中隐藏协议。
Adobe 提供了
PUT /agreements/ID/me/visibility 这个新 API,用于控制协议的可见性(在 GET /agreements 调用中)。除了 DELETE /agreements/ID 提供的功能外,新的可见性端点还允许用户恢复“隐藏”操作,也就是说,让协议再次可见。

您还可以按照以下详细步骤操作:

  1. 转到 get /agreements 方法并检索协议 ID。
  2. 单击 put /agreements/{agreementId}/me/visibility 并提供以下请求示例:
    {
      "visibility": "HIDE"
    }
    协议 ID 仅在 get /libraryDocuments 中隐藏,但仍会显示在“管理”选项卡 UI 下。
注意:

默认情况下不启用 API 保留功能。

要启用 DELETE/agreements 操作,请与您的成功经理联系,并请求为帐户启用 API 保留功能。

有关如何为帐户启用保留功能的更多信息,请参阅 Adobe Sign - 文档保留

  1. 以管理员身份登录 Adobe Sign 并导航至:https://secure.adobesign.com/public/docs/restapi/v6

    • 单击协议并展开 GET /agreements 方法
    • 单击“OAUTH ACCESS-TOKEN”按钮
    • 启用 agreement_read:self 范围
    • 单击授权按钮
      • 如果收到质询,请单击允许访问
    • 单击立即试用!按纽
    获取协议方法

  2. 将生成响应。

    agreementID 可在响应正文中找到:

    获取协议响应

  3. DELETE /agreements/{agreementId}/documents:删除与协议相关的所有文档。协议本身在“管理”页面中仍然可见。

    • 选择要运行的 DELETE/agreements 操作。
    • 单击“OAUTH ACCESS-TOKEN”按钮,创建范围为 arement_retention 的访问令牌。
    • 提供要删除的协议的 agreementId。
    • 删除协议后,响应正文中“无内容”。

如果未启用 DELETE/agreements 操作,则将会收到以下响应:

 "code": "DYNAMIC_DOCUMENT_EXPIRATION_NOT_ENABLED",

  "message": "The operation requires some account settings to be enabled.Please contact the Adobe Sign team to enable the settings."

如何通过 Adobe Sign REST API 下载已签名文档以及审核报告和支持文档,而不是使用以下方法通过单独调用来下载审核报告。

GET /agreements/{agreementId}/auditTrail

  1. 单击“GET /agreements/{agreementId}/combinedDocument”。

  2. 单击“oAuth Access-token”按钮。

  3. 接受授权后,将会自动生成访问令牌。

  4. 提供 agreementId。

  5. 在 attachSupportingDocuments 下,从下拉列表中选择 true。

  6. 在 attachAuditReport 下,从下拉菜单中选择 true。

  7. 单击立即试用! 按纽.

    获取合并的文档

    它将会下载合并的 PDF,其中包含已签名文档、支持文档和审核报告。

要下载批量文档,只能使用文档导出工具,而且使用 API,只能逐个下载文档。以下是相应的 API 方法:

https://secure.na1.adobesign.com/public/docs/restapi/v5#! /agreements/getCombinedDocument


库模板与 Web 表单

  1. 以管理员身份登录 Adobe Sign 并导航至:https://secure.na1.adobesign.com/public/docs/restapi/v6

    • 单击 libraryDocuments 并展开 GET/libraryDocuments 方法
    • 单击“OAUTH ACCESS-TOKEN”按钮
    • 启用 library_read:self 范围
    • 单击授权按钮
      • 如果收到质询,请单击允许访问
    • 单击立即试用!按纽
    获取 LibraryDocument 方法

  2. 将生成响应。

    libraryDocumentId 可在响应正文中找到:

    获取 LibraryDocument 响应

Adobe 提供了 PUT/libraryDocuments/ID/me/visibility 这个新 API,用于控制协议的可见性(在 GET /agreements 调用中)。除了 DELETE /agreements/ID 提供的功能外,新的可见性端点还允许用户恢复“隐藏”操作,也就是说,让协议再次可见。

您可以按照以下详细步骤操作:

  1. 转到 get /libraryDocuments 方法并检索协议 ID。
  2. 单击 put /libraryDocuments/{libraryDocumentId}/me/visibility 并提供以下请求示例:
    {
      "visibility": "HIDE"
    }
    库 ID 仅在 get /libraryDocuments 中隐藏,但仍会显示在“管理”选项卡 UI 下。
注意:
  • 向支持团队提交请求,以为删除库启用范围。
  • API 将删除库文档。但是,使用此库文档创建的协议不会受到任何影响。


生成 libraryDocumentID

  1. 转到 https://secure.echosign.com/public/docs/restapi/v5

  2. 单击 libraryDocuments。

  3. 单击 oAuth Access-token 按钮。

    授权访问 - 自己、组或帐户的令牌。

  4. 选择 libraryTemplateType - 文档或 Form_field_layer。

  5. 单击立即试用

    对于所有模板,您将收到如下响应。(复制要删除的库模板的 libraryDocumentId。)

    { 
      "libraryDocumentList": [ { "name": "testing fields", "modifiedDate": "2017-08-04T01:06:05-07:00", "scope": "PERSONAL", "libraryDocumentId": "3AAABLblqZhAK53Dvzq88Q1Ov0TEvMAySDPpIVjF1PWgUpy0H1uYggt4iwGiRSZYlWfl9ms_AcmgZ_uZMPPN2hNT9izwaspHc", "libraryTemplateTypes": [ "DOCUMENT" 
          ] 
        },


删除库模板

  1. 从响应正文复制 libraryDocumentID

  2. 转到“删除 libraryDocuments”。

  3. 单击“oAuth Access-token”按钮。授权访问 - 自己、组或帐户的令牌。

  4. 将 libraryDocumentId 粘贴到“值”字段中。

  5. 单击立即试用。
    模板已删除。

    您会收到以下错误代码:204

注意:

只能更新处于 Draft 状态的 Web 表单。

  1. 使用 post /widgets 创建小组件。

  2. 从 get/widgets 获取 widgetId。

  3. 使用 GET /widgets/{widgetId} 方法创建后,从响应标头中获取 Etag。

    Foo

  4. 在 put /widgets/{widgetId} 下,使用源自 GET /widgets/{widgetId} 的 Etag。在“If-Match”参数下,输入 widgetId 和 widgetInfo。

    Foo

    { 
      "fileInfos": [ { "transientDocumentId": "******" } ], "name": "Widht_Name", "status": "DRAFT", "widgetParticipantSetInfo": { "memberInfos": [ { "email": "" } ], "role": "SIGNER" 
      } 
    }


用例示例

  1. 对正确的 x-api-user 进行 get/agreements 调用。

  2. 在响应正文中,找到要查找其签名 URL 的发送以供签名的协议,并记录协议 ID

  3. 使用从 get/agreements 调用收到的协议 ID 进行 get/agreements/{agreementId}/signingUrls 调用。

     

    结果

    输出将会返回签名者的电子邮件地址以及电子签名 URL。

    获取协议方法

更快、更轻松地获得帮助

新用户?