業務の一環でDocusignについてAPIの調査を行いましたので、今回はDocusignのAPIでどのようなことが出来るのか紹介したいと思います。
Docusignとは
Docusignは電子署名・電子契約を行うシステムです。 www.docusign.com
PDFなどの文章ファイルに署名欄・署名日欄などを設定して契約書のやり取りをすることができます。 ※Docusignでは契約書のやり取りをエンベロープ(envelope)と呼称しています。 また簡単なワークフローを作ることができ、契約書の作成者・署名者・確認者などの役割分担をすることも可能です。
APIは多数用意されていますが、その中でも今回調査したAPIについて紹介します。
エンベロープを作成するAPI
/restapi/v2.1/accounts/{accountId}/envelopes
エンベロープ作成と同時に文章ファイルを指定する場合はリクエストパラメータにbase64形式で設定する必要があります。 Docusign上で設定したテンプレートからエンベロープを作成することも可能です。その場合、リクエストパラメータにテンプレートIDを指定します。 (テンプレートでは文章ファイルの登録やワークフローの設定をあらかじめ行うことが可能です。)
また、エンベロープのステータスを設定することも可能です。 ステータスに「sent」を設定した場合は署名者に契約書を送信しますが、「created」を設定した場合は下書き状態になり、送信されません。 送信前に内容の確認や修正をする場合は「created」が利用できそうです。
文章中の署名欄を設定するAPI
/restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}/tabs
署名欄など文章中に署名者が入力できる項目は「tab」と呼称されています。 署名欄を設定する場合は「signHereTab」、署名日を設定する場合は「dateSignedTab」をリクエストパラメータに設定します。
入力欄の位置は座標での指定と特定の文字が存在する場所への指定する方法があります。 座標指定の場合は「xPosition」「yPosition」などのパラメータを設定し、特定の文字で指定する場合は「anchorString」のパラメータを設定します。
契約書の受信者を動的に設定するAPI
/restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/recipients
受信者には9つの役割が用意されており、リクエストパラメータに設定する必要があります。 調べたところでは、契約書を送信前に編集する人には「editors」、契約書に署名する人には「signers」、署名を確認する人には「witnesses」を設定します。
おわりに
以上、簡単ですがDocusignで利用できるAPIについて一部分を紹介しました。 各APIの具体的な利用方法や、他に設定可能なリクエストパラメータなどについては公式ドキュメントを参照して下さい。 developers.docusign.com
またPostmanのワークスペースが公開されており、Folkすることで自由に試すことも可能です。 www.postman.com