使用手冊 取消

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 Federation 驗證使用者
    12. 產品設定檔
    13. 登入體驗
  3. 帳戶/群組設定
    1. 設定概觀
    2. 全域設定
      1. 帳戶層級與 ID
      2. 新的收件者體驗
      3. 自我簽署工作流程
      4. 大量傳送
      5. 網頁表單
      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. 網頁工作階段期間
      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. 副本收件者
      8. 收件者合約存取權
      9. 必填欄位
      10. 附加文件
      11. 欄位扁平化
      12. 修改合約
      13. 合約名稱
      14. 語言
      15. 私人訊息
      16. 允許的簽名類型
      17. 提醒
      18. 已簽署文件的密碼保護
      19. 傳送合約通知途徑
      20. 簽署者身分識別選項
        1. 概觀
        2. 簽署密碼
        3. 透過電子郵件傳送的一次性密碼
        4. Acrobat Sign 驗證
        5. 電話驗證
        6. 雲端型數位簽名
        7. 知識式驗證
        8. 政府核發證件
        9. 簽署者身分報告
      21. 內容保護
      22. 啟用公證交易
      23. 文件過期
      24. 預覽、定位簽名及新增欄位
      25. 簽署順序
      26. Liquid mode
      27. 自訂工作流程控制項
      28. 電子簽名頁面的上傳選項
      29. 「簽署後」確認重新導向 URL
    11. 訊息範本
    12. 生技製藥設定
      1. 概觀
      2. 強制執行身分識別驗證
      3. 簽署原因
    13. 工作流程整合
    14. 公證設定
    15. 付款整合
    16. 簽署者傳訊
    17. SAML 設定
      1. SAML 設定
      2. 安裝 Microsoft Active Directory Federation Service
      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. 建立可存取的 AcroForms
    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. 網頁表單資料匯出
      3. 編輯資料匯出
      4. 重新整理資料匯出內容
      5. 下載資料匯出
    5. 重新命名報告/匯出
    6. 複製報告/匯出
    7. 排程報告/匯出
    8. 刪除報告/匯出
    9. 檢查交易使用量

進階合約功能與工作流程

  1. 網頁表單 
    1. 建立網頁表單
    2. 編輯網頁表單
    3. 停用/啟用網頁表單
    4. 隱藏/取消隱藏網頁表單
    5. 尋找 URL 或指令碼
    6. 使用 URL 參數預填網頁表單欄位
    7. 儲存網頁表單以便稍後完成
    8. 調整網頁表單大小
  2. 可重複使用的範本 (資料庫範本)
    1. 在 Acrobat Sign 資料庫中的美國政府表單
    2. 建立資料庫範本
    3. 變更資料庫範本的名稱
    4. 變更資料庫範本的類型
    5. 變更資料庫範本的權限層級
    6. 複製、編輯和儲存共用範本
    7. 下載資料庫範本的彙總欄位資料
  3. 轉移網頁表單與資料庫範本的所有權
  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
        3. 將所有完成的文件儲存至 Google 雲端硬碟
        4. 將所有完成的文件儲存至 DropBox
        5. 將所有完成的文件儲存至 Box
      2. 合約封存
        1. 將完成的文件儲存至 SharePoint
        2. 將完成的文件儲存至商務用 OneDrive
        3. 將完成的文件儲存至 Google 雲端硬碟
        4. 將完成的文件儲存至 DropBox
        5. 將完成的文件儲存至 Box
      3. 網頁表單合約封存
        1. 將完成的網頁表單文件儲存至 SharePoint 資料庫
        2. 將完成的網頁表單文件儲存至商務用 OneDrive
        3. 將完成的文件儲存至 Google 雲端硬碟
        4. 將完成的網頁表單文件儲存至 Box
      4. 合約資料擷取
        1. 從您簽署的文件擷取表單欄位資料,並更新 Excel 表
      5. 合約通知
        1. 傳送包含合約內容和已簽署合約的自訂電子郵件通知
        2. 在 Teams 頻道中取得您的 Adobe Acrobat Sign 通知
        3. 在 Slack 中取得您的 Adobe Acrobat Sign 通知
        4. 在 Webex 中取得您的 Adobe Acrobat Sign 通知
      6. 合約產生
        1. 從 Power App 表單和 Word 範本產生文件,傳送以供簽署
        2. 從 OneDrive 的 Word 範本產生合約,並取得簽名
        3. 為所選的 Excel 列產生合約,傳送以供檢閱和簽名
  5. 自訂傳送工作流程
    1. 自訂傳送工作流程概觀
    2. 建立新的傳送工作流程
    3. 編輯傳送工作流程
    4. 啟動或停用傳送工作流程
    5. 以「傳送工作流程」傳送合約
  6. 共用使用者與合約
    1. 共用使用者
    2. 共用合約

與其他產品整合

  1.  Acrobat Sign 整合概觀
  2. 適用於 Salesforce 的 Acrobat Sign
  3. 適用於 Microsoft 的 Acrobat Sign
    1. 適用於 Microsoft 365 的 Acrobat Sign
    2. 適用於 Outlook 的 Acrobat Sign
    3. 適用於 Word/PowerPoint 的 Acrobat Sign
    4. 適用於 Teams 的 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. 適用於 ServiceNow 的 Acrobat Sign
    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 存取權專保留給企業與開發人員層帳戶。

核心文件連結

註解:

舊有 SOAP API 的支援已於 2021 年 5 月結束。

所有使用 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 需求,首先建立一個暫時性文件,然後在「合約」、Widget 或「資料庫」方法中使用此 ID 作為檔案來源。

此暫時性文件是上傳到 Adobe 伺服器的原始來源檔案,例如 PDF、doc、docx。因此,這是一種很方便的方法可將基礎文件上傳至 API 伺服器,以及在網路上傳送暫時性文件。

是的,您可以使用 API 呼叫 POST /合約,在 v6 中使用工作流程發佈合約。在 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 呼叫中只會提供狀態欄位。其永遠不會在 GET /agreements/{ID} 中傳回,且如果在 PUT /合約/{ID} 呼叫提供則予以忽略。合約的最終狀態可以從 GET /agreements/ ID 中取得。

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

AUTHORING 允許使用者先撰寫合約的文件,再傳送文件。此處的撰寫作業是指在合約文件中建立、編輯或放置表單欄位及其設定 (受託人、條件、資料類型等等)。在發佈「撰寫中」狀態的文件後,在「草稿」區段的「Adobe Sign 管理」標籤中會顯示該文件。

DRAFT 是最終預期資源的暫時階段或原始階段,可以逐步更新以建立最終資源,而且不會顯示在「Adobe Sign 管理」標籤「草稿」區段。使用「草稿」狀態,則不需要「參與者」集資訊,並可在稍後讓 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 連線錯誤。此錯誤通常會發生在您使用過時的 SSL,或是 TLS1.2 之前的 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. 在「網域」下方,選取「CUSTOMER」,然後按一下「儲存」。

    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. 在「頁眉」下方輸入「Content-Type」作為「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 帳戶下方註冊「函數應用程式」。

    Azure 功能表

  3. 前往 AzureAD,然後前往「函數應用程式」> 按一下代表「函數」的圖示。

  4. 以 Javascript 作為語言來選取「Webhook+API」,然後按一下「建立函數」。

    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 個 OK 回應及以下頁眉時,按一下「取得函數 URL」

    200 response

  9. 複製該 URL,然後前往「Adobe Sign UI」>「Webhooks」> 按一下 + 圖示以建立。

  10. 輸入下列資訊:

    • 名稱: 管理員能夠快速瞭解其意思的直覺式名稱。
    • 範圍: Webhook 擷取的範圍。介面中有「帳戶」與「群組」。
      API 支援「帳戶」、「群組」、「使用者」與「資源」範圍。
    • 只能為每個 Webhook 定義一個範圍
    • URL: Adobe Sign 將 JSON 裝載推往的目標 URL。
    • 事件: 造成 Adobe Sign 建立 JSON 並將其推送至該 URL 的觸發。
      每個事件都會建立與觸發事件相關的不同裝載
      一個 Webhook 可包含多個事件。
    • 通知參數: 「通知參數」可識別「事件 JSON」裝載的區段,允許您僅選取重要「事件」的區段。
    Webhook UI

  11. 在 Webhook 完整定義後,按一下「儲存」,新 Webhook 會開始反應以立即觸發事件。

合約資產是指您可以透過其來建立合約的資產,例如文件、Widget 及合約本身。

若要搜尋「合約資產事件」,首先,請先向 API 提供一個請求,請求透過相關的搜尋參數建立 agreementAssetEvents。

「回應」是結果的第一頁,隨附搜尋 ID 參數與下一頁游標。如果進一步的頁面結果可使用會根據搜尋 ID 擷取 agreementAssetEvents 的 API 取得,您可以用「回應」來擷取此頁面結果。

  1. 開啟第 5 版的 REST API 文件。

  2. 前往 post/search/agreementAssetEvents,然後產生具有相關範圍的存取權杖。

  3. 在請求程式碼中,依照需求定義開始與結束日期:

    { 
      "endDate": "2018-05-22T22:33:33", 
      "startDate": "2017-12-22T22:33:33" 
    }
  4. 按一下「試用」。其會擷取合約資產 ID,此 ID 也可作為合約 ID。


使用者/帳戶管理

  1. 登入 Adobe Sign。
  2. 瀏覽至「帳戶 > Adobe Sign API > REST API 文件」。
  3. 選取第 5 版。
  4. 在 post /users 方法下方,使用在
    UserCreationInfo method
    下方提及的請求程式碼 {
    "email": "email@email.com",
    "firstName": "AA",
    "lastName": "AB",
    "password":"12******rte"
    }

使用 Admin Console (Adobe One) 管理其權益的 Adobe Sign 帳戶,無法使用 Adobe Sign API 建立使用者或管理現有使用者。

Adobe One Admin Console 使用的 API 與 Adobe Sign API 不同。請參閱以下文章以取得詳細資訊:

 

取得群組 ID:

  1. 前往 https://secure.na1.echosign.com/public/docs/restapi/v5

  2. 在「資源與作業」下方,按一下群組。

  3. 按一下「GET /groups」。

  4. 按一下「oAuth 存取權杖」按鈕。

  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 存取權杖」按鈕。

  3. 在 groupId 方塊中新增您在上一個呼叫回應中收到所要刪除的 groupId。

  4. 按一下「試用」。

    群組一旦刪除後,您會收到如下的回應:沒有內容

註解:

您無法刪除已獲指派使用者的群組。基本上,您只能刪除空白群組。如果群組中有使用者,您會收到如下的回應。


{

  "code": "GROUP_NOT_EMPTY",

  "message": "無法刪除群組,因為群組並非空白。"

}


發起/傳送合約

產生暫時性文件

  1. 按一下「transientDocuments」,然後展開「POST /transientDocuments」方法

  2. 按一下「OAuth 存取權杖」按鈕

    API TransientDocument 方法

    • 為交易啟用「範圍」
    • 按一下「授權」
    OAuth Scopes

  3. 允許存取

    如果顯示挑戰,請按一下「允許存取」

  4. 您會返回 API 方法頁面。現在已填入「授權」值。

    • 「檔案名稱」欄位中輸入檔案名稱
    • 按一下「選擇檔案」按鈕,然後上傳協議的文件
    • 按一下「試用!」按鈕
    試用!

  5. 系統會產生回應。

    「transientDocumentID」位於「Response Body:」

    暫時性文件 ID

使用暫時性文件產生合約

  1. 按一下「agreements」,然後展開「POST /agreements」方法

    • 按一下「OAuth 存取權杖」按鈕
    • 啟用 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 agreement 方法

  3. 系統會產生回應。

    「agreementID」位於「Response Body:」

    POST agreement 方法回應

以下為在 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 存取權杖」選項,然後提供必要的範圍。

  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. 在「agreements」下方按一下「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 方法。在方塊中提及下列 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   

        }  

    }]

}

 

若要使用為 "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 方法。在方塊中提及下列 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 方法。在方塊中提及下列 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. 將 form-fields 拖放到所需的位置。

  8. 若要傳送合約進行簽署,請按一下「傳送」。 

使用 POST /agreements 建立合約。傳送合約進行簽署,並在回應中將 agreementID 傳回給用戶端。以下的 JSON 格式使用 Phone 驗證方法傳送合約。

 

{

"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

Host: api.na1.echosign.com (或者您可以指定分區名稱,尋找此名稱的方法是使用 getbaseURis call: https://secure.na1.echosign.com/public/docs/restapi/v5#! /base_uris/getBaseUris

Access-Token: 2AAABLblqZhA_D1mluNKQP7py5vXtt-1UHl9NR25e_C3LnKTUH14IblbrXODbXGRozyr7ChBkJNM*

x-user-email: sender@yourdomain.com

Content-Type: application/json

Cache-Control: 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. 前往「V6 的 REST API 文件」,然後選取
    「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 會接收 2xx 回應與「X-AdobeSign-ClientId」。使用者會檢查其是否已在 Webhook 中正確設定。

Webhook Url 未如預期的行為回應。針對 Adobe Sign 傳送的每個「發佈」通知,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 會將其視為不同意請求,並嘗試依照可靠的原則重新排程。

如果 Webhook 無法回應,且超過重試次數上限或重試間隔上限,則 Webhook 會停用。

此工作已經過 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 授權  Twitter™ 與 Facebook 貼文不受 Creative Co 條款限制


管理/取得合約相關資訊

若要變更已傳送進行簽署的文件,請用 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 有新的 API PUT /agreements/ID/me/visibility 可控制合約 (在 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

    • 按一下「agreements」,然後展開「GET /agreements」方法
    • 按一下「OAUTH ACCESS-TOKEN」按鈕
    • 啟用「agreement_read:self」範圍
    • 按一下「授權」按鈕
      • 如果顯示挑戰,請按一下「允許存取」
    • 按一下「Try it out! 」按鈕
    取得合約方法

  2. 系統會產生回應。

    「agreementId」位於「Response Body:」

    取得合約回應

  3. DELETE /agreements/{agreementId}/documents: 刪除與合約相關的所有文件。合約本身在「管理」頁面上仍然可見。

    • 選取要傳回的 DELETE/agreements 作業。
    • 按一下「OAUTH ACCESS-TOKEN」按鈕,然後建立範圍為 areement_retention 的權杖。
    • 提供您要刪除之合約的 agreementId。
    • 合約刪除後,「回應內文」會沒有內容。

如果 DELETE/agreements 作業未啟用,您會得到以下回應:

 "code": "DYNAMIC_DOCUMENT_EXPIRATION_NOT_ENABLED",

  "message": "此作業需要啟用一些帳戶設定。請連絡 Adobe Sign 團隊啟用設定。"

如何透過 Adobe Sign REST API 下載已簽署的文件及稽核報告與支援文件,而非使用下列方法另外呼叫來下載稽核報告。

GET /agreements/{agreementId}/auditTrail

  1. 按一下「GET /agreements/{agreementId}/combinedDocument」。

  2. 按一下「oAuth 存取權杖」按鈕。

  3. 在接受授權後,會自動產生存取權杖。

  4. 提供 agreementId。

  5. 在「attachSupportingDocuments」下方,從下拉式清單中選取「true」。

  6. 在「attachAuditReport」下方,從下拉式清單中選取「true」。

  7. 按一下「試用!」 按鈕.

    取得組合的文件

    其會下載已簽署的 PDF、支援的文件和稽核報告組合。

若要下載大量文件,僅提供文件匯出工具,若是使用 API,您只能逐一下載文件。以下是相同的 API 方法:

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


資料庫範本與網頁表單

  1. 以管理員身分登入 Adobe Sign,然後瀏覽至: https://secure.na1.adobesign.com/public/docs/restapi/v6

    • 按一下「資料庫文件」,然後展開「GET /libraryDocuments」方法
    • 按一下「OAUTH ACCESS-TOKEN」按鈕
    • 啟用「library_read:self」範圍
    • 按一下「授權」按鈕
      • 如果顯示挑戰,請按一下「允許存取」
    • 按一下「Try it out! 」按鈕
    取得 LibraryDocument 方法

  2. 系統會產生回應。

    「libraryDocumentId」位於「Response Body:」

    取得 LibraryDocument 回應

Adobe 有新的 API PUT/libraryDocuments/ID/me/visibility 可控制合約 (在 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 存取權杖」按鈕。

    授權存取 - 本身、群組或帳戶的權杖。

  4. 選取「libraryTemplateType」 - 文件或 Form_field_laye。

  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 存取權杖」按鈕。授權存取 - 本身、群組或帳戶的權杖。

  4. 在「值」欄位中貼上「libraryDocumentId」。

  5. 按一下「試用」。 
    範本隨即刪除。

    您得到下列回應碼: 204

註解:

只能更新狀態為「草稿」的網頁表單。

  1. 使用 post /widgets 建立 Widget。

  2. 從 get/widgets 取得 Widget Id。

  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。

    取得合約方法

更快、更輕鬆地獲得協助

新的使用者?