メインコンテンツへスキップ
Didit電子署名は、本人確認を終えたばかりの人が、同じフローの中で御社の書類に署名できる機能です。署名者は各書類を確認し、署名、イニシャル、求められたデータを追加して、先に検証したメールアドレスまたは電話番号に届くワンタイムコードで確定します。Diditは、各書類を高度電子署名(AES)で署名して返し、署名と検証済みの本人を結び付ける証拠PDFも提供します。 署名者が本人確認済みの本人となるユーザー認証(KYC)と、法人の法定代理人や主要関係者が法人に代わって署名する法人確認(KYB)の両方で利用できます。

署名レベル

AESはPAdESのみで署名します。signature_formatの値xadesとcadesは、AESではsignature_format_not_supportedで拒否されます。

仕組み

1

ワークフローがまず署名者を検証する

署名ステップは、署名者が誰かを確定するステップの後に実行されます。本人確認と、コードの送信先となる連絡先のメールアドレスまたは電話番号の認証です。開始する前にを参照してください。
2

Diditが書類を準備する

署名者がこのステップに到達すると、Diditは書類とそのフィールドをセッションにコピーし、各書類のSHA-256を記録します。その後にワークフローを変更しても、この署名者に表示される内容は変わりません。
3

署名者が各書類を確認する

フィールドのある書類では、署名者はフィールドからフィールドへ案内されます。署名は一度採用すれば、すべての署名フィールドとイニシャルフィールドに適用され、テキストとチェックボックスのフィールドには入力します。検証済みの本人情報、セッション、または御社のシステムからDiditが取得した値は、すでにページに入力されています。フィールドのない書類では、署名者は内容を読んで同意します。
4

署名者がコードで確定する

いずれかの書類にフィールドがある場合、署名者はまず書類に電子的に署名することに同意します。その後Diditは、セッションの前半で検証したメールアドレスまたは電話番号に、6桁のコードを送信します。コードを入力すると、そのステップのすべての書類への署名が承認されます。
5

Diditが署名して封印する

Diditは署名日を入力し、すべてのフィールド値を各PDFに刻印し、証拠ページを追加してから、PAdES署名とタイムスタンプを適用します。そのため、署名はページ上のすべての内容を対象にします。
6

結果を受け取る

判定結果とセッションのWebhookには、署名者、確定情報、証明書、タイムスタンプ、各書類のハッシュ、すべてのフィールドの値を含むsignatures[]が含まれます。署名済みPDFと証拠PDFをダウンロードでき、Diditは署名者にコピーをメールで送ることもできます。

開始する前に

署名者は、署名する前に検証されている必要があります。Diditは、御社や署名者が入力した内容ではなく、セッション自身の検証済みの記録から、氏名と連絡先を取得します。 ユーザー認証(KYC)の場合は、ワークフローで電子署名の前に次のステップを置きます。
  • 判読可能な氏名を持つ、承認済みの本人確認。これがないと、このステップはSIGNATURE_IDENTITY_NOT_VERIFIEDを記録します。
  • コードをメールで送る場合(既定)はメールアドレス認証、SMSで送る場合は電話番号検証。コードは、同じセッションで検証済みの連絡先にのみ送信されます。
  • ワークフローにライブネス検知もある場合は、承認されている必要があります。
署名済み書類のコピーを署名者にメールで送るには、コードをSMSで送る場合でも、セッションに検証済みのメールアドレスが必要です。 法人確認(KYB)の場合、署名者は法人の主要関係者で、それぞれが承認済みの自身のKYCを持っています。 KYBのステップには1〜20人の署名者がおり、各署名者は署名する時点で承認済みのKYCが必要です。各署名者は自分用の書類のコピーに署名し、自身のKYCセッションで検証された連絡先に届くコードで確定します。主要関係者として申告された氏名は、大文字小文字とスペースを無視して検証済みの氏名と一致する必要があり、一致しないとステップはSIGNATURE_NAME_MISMATCHを記録します。ステップは、すべての署名者が署名または辞退した時点で完了します。

書類

書類の取得元

signature_documents_sourceは、ステップが書類をどこから取得するかを設定します。 セッションごとの書類を使うと、氏名、金額、条件を御社のシステムであらかじめ入力した契約書に、本人が署名できます。

対応ファイル

Word文書をアップロードすると、Diditはアップロード中に最大60秒でPDFに変換します。署名者が見て署名するのは変換後のページなので、フィールドを配置する前に確認してください。改行位置がWordとわずかに異なる場合があります。WordファイルとそのPDFは同じ書類に属し、書類とともに削除されます。証拠PDFには、変換の記録と両ファイルのSHA-256が記載されます。 署名対象が曖昧になる場合、DiditはWordファイルをsignature_document_not_supportedとreasonで拒否します。マクロ(macros)、未承諾の変更履歴(tracked_changes)、外部コンテンツへのリンク(external_links)、埋め込みオブジェクト(embedded_objects)がある場合です。アップロード前に変更履歴を承諾または却下して、PDFに合意した文面が表示されるようにしてください。 変換できないファイルは、signature_document_conversion_failedと次のいずれかの理由で拒否されます。

書類上のフィールド

フィールドを使うと、デスクトップの署名ツールで封筒を準備するのと同じように、書類を署名者が入力するテンプレートにできます。フィールドのない書類では、署名者が読んで同意するだけの、より簡単なフローになります。 このバージョンには日付ピッカーはありません。署名者が入力する日付にはtextフィールドを使ってください。 フィールドには次のプロパティがあります。
1つの書類には最大200個のフィールドを設定でき、1人の署名者につき、その人の書類全体で最大500個まで設定できます。 ステップが入力して刻印するのは、そのステップの署名者のフィールドだけです。1つの書類に複数のロールのフィールドを設定できるのは、ワークフローの複数の署名ステップがその書類を使う場合のみです。各ステップは自分のロールのフィールドを入力し、そのコピーでは他のロールのフィールドを空のままにします。ワークフローのどの署名ステップも使っていないロールのフィールドは、role_not_usedで拒否されます。書類にフィールドがあるロールには、そこにsignatureまたはinitialsのフィールドが少なくとも1つ必要で、ないとワークフローのバージョンを公開できません(signature_field_missing)。

検証

validationはtextフィールドに適用されます。
  • kind: any、letters(任意の文字体系の文字、スペース、ハイフン、アポストロフィ)、number(任意の小数点記号付きの数字)、email、またはpattern。
  • min_length: 0からmax_lengthまで。
  • max_length: 1から500まで。既定は120。
  • pattern: kind: "pattern"では必須。値全体が一致する必要がある、最大200文字の正規表現。先読み・後読みと後方参照はサポートされません。
  • message: 最大120文字。既定のエラーの代わりに表示されます。
コンソールのプレビュー、署名フロー、APIには同じルールが適用されます。

事前入力される値

prefillは、フィールドの値の取得元を指定します。 dataフィールドにはprefillが必須です。full_nameフィールドは常にidentity.full_nameを、emailフィールドはcontact.emailを使い、textフィールドにも設定できます。data、full_name、検証済みemailの各フィールドの値は、署名者が署名を開始した時点で固定され、その後にセッションを変更しても変わりません。事前入力されたtextまたはemailフィールドは、editable_when_prefilledを設定しない限り読み取り専用です。 必須フィールドの取得元に、その時点で値がない場合(例えば住所のないセッション)、フィールドは空のまま表示されません。ステップはSIGNATURE_FIELD_DATA_MISSINGを発生させ、signature_field_data_missing_action(既定はREVIEW)を適用します。NO_ACTIONの場合、署名者は署名でき、フィールドは空のままになります。

コンソールで設定する

  1. ワークフローに移動してワークフローを開き、署名者を検証するステップの後に電子署名ステップを追加します。
  2. 書類でアップロードを選択してPDFまたはWordファイルを追加し、署名者に表示される順にドラッグして並べます。WordファイルはPDFに変換されるため、フィールドを配置する前に変換後のページを確認してください。置き換えは、書類のファイルを差し替え、新しいファイルにないページ上のフィールドを除いて、フィールドを保持します。
  3. 書類にフィールドを配置で、エディターを開くを選択します。パレットからフィールドをページにドラッグするか、フィールドを選択して配置したい場所をクリックし、移動とサイズ変更をします。各フィールドについて、入力する人、ラベル、必須かどうか、受け付ける内容、値の取得元、API キー(フィールドのkey)を設定します。署名者としてプレビューでは、署名者がスマートフォンまたはデスクトップで見る書類の表示を確認できます。エディターは操作のたびに保存され(ドラフトに保存済み)、完了を選択する前に修正すべき項目が一覧表示されます。
  4. 引き続き書類で、書類の取得元としてこのワークフロー、各セッション、両方のいずれかを選びます。フィールドのない書類では、署名者が署名前に最後まで読む必要があるかどうかを選び、書類ごとの同意を設定します。
  5. 署名で、署名者、レベル(高度(AES))、形式、コードの送信先(ワンタイムコードの送信方法)を選びます。
  6. ルールで、各警告が判定に与える影響を設定します。
  7. 高度で、署名済みコピーをメール送信するか、証拠ページを追加するか、署名リンクが有効な日数を選びます。カスタムのステータスルールも追加できます。
  8. ワークフローを保存します。
APIで同じステップを設定するには、ワークフローの機能設定を参照してください。ワークフローの書類とそのフィールドはコンソールで管理し、APIではセッションごとに書類とフィールドを送信します。

署名の体験

署名ステップは、ホスト型の検証ページ、Web SDK、ネイティブSDKで、デスクトップでもスマートフォンでも実行されます。署名用のUIを構築する必要はありません。
  1. イントロ。 署名者は、署名する書類を確認します。
  2. 各書類を順番に。 フィールドのある書類では、署名者はpositionの順にフィールドを案内されます。最初の署名またはイニシャルのフィールドで、署名を採用するシートが開きます。任意のフィールドには任意と表示されます。Diditが入力した値はロックアイコン付きでページに表示され、操作は不要です。ページ上のフィールドをタップすると、そのフィールドに移動します。スマートフォンでは、キーボードの上に固定されたパネルに、1つずつフィールドが表示されます。幅1200 px以上の画面では、ページがフィールドの一覧の横に表示されます。必須フィールドが空のまま書類を終えようとすると、残りの数が表示され、最初のフィールドに移動します。フィールドのない書類は、設定どおりに読んで同意します。
  3. 確認。 署名者は書類をもう一度確認し、いずれかにフィールドがある場合は、電子的に署名することに同意します。
  4. コード。 署名者がコードを要求します。コードは5分間有効で、60秒後に新しいコードを送信でき、署名者は最大5回のコード送信と3回の入力ミスまで可能です。上限に達するとSIGNATURE_OTP_FAILEDが記録されます。
  5. 署名済み。 署名後、署名者は署名済みの書類をダウンロードできます。有効にしている場合は、Diditがコピーをメールで送信します。
  6. 辞退。 署名者は、署名する代わりに辞退できます。この場合SIGNATURE_DECLINEDが記録されます。辞退は署名リンクが有効な間は再開できるため、署名者が考えを変えれば署名できます。
フローは、コードの期限切れ、書類の変更、署名の失敗、署名リンクの期限切れを署名者に通知します。 署名リンクはsignature_link_validity_days(1〜30、既定は7)の間、セッション作成時から数えて有効です。セッションは少なくともその期間は開いたままです。
ネイティブSDKでは、署名ステップが追加されたリリース以降で署名ステップが表示されます。リリースが公開されたら、ネイティブSDKの概要に記載されます。フィールド付きの書類には、フィールドに対応したリリースが必要です。古いリリースでは表示できず、ステップにエラーが表示されます。フィールドのない書類は、署名ステップのあるすべてのリリースで動作します。アプリがワークフローで使う機能に対応したリリースで動作するまでは、ホスト型ページまたはWeb SDKへ誘導してください。

署名の採用

署名者は、書類が初めて署名またはイニシャルを求めた時点で、1つのシートで署名とイニシャルを一度だけ採用します。
  • 入力: 検証済みの氏名を、選んだ筆記体スタイルで表示し、From your IDと表示されます。別の氏名は入力できません。入力のイニシャルは、その氏名の頭文字です。
  • 手書き: 指またはマウスで、署名とイニシャルの両方を手書きします。
以降の署名またはイニシャルのフィールドは1回のタップで適用され、適用済みのフィールドをタップすると取り消されます。

結果

各署名者の結果は、セッションの判定結果とセッションWebhookのdecisionにあるsignatures[]の項目です。署名専用のWebhookはありません。判定結果を取得するタイミングは、セッションのstatus.updatedイベントで分かります。 すべての書類の署名済みPDF、署名者ごとの証拠PDF、すべての元ファイルと署名済みファイルのSHA-256が提供されるため、後から何も変更されていないことを証明できます。フィールド付きの書類では、すべてのフィールドの値、その取得元、入力された時刻に加え、採用された署名と、署名者が電子的な署名に同意した時刻も得られます。すべてのフィールド、ダウンロード、署名の再検証方法については、電子署名レポートを参照してください。 コンソールでは、セッションの署名タブに書類が表示され、続いてFieldsブロックに、各ページのプレビュー、採用された署名とイニシャル、すべてのフィールドの値、時刻、取得元が表示されます。PDFレポートには署名セクションが含まれ、書類にフィールドがある場合はElectronic signature · fieldsページも含まれます。

料金

電子署名は、書類、署名者、署名ステップの数にかかわらず、署名済みセッションごとに1回課金されます。辞退、失敗、期限切れになった署名は課金されません。

署名データの削除

セッションを削除すると、その署名データも一緒に削除されます。セッションとともに送信された書類とWordの元ファイル、署名者ごとに準備されたコピー、署名済みPDF、証拠PDF、採用された署名とイニシャルの画像、すべてのフィールド値が対象です。ダウンロードリンクは使えなくなります。データ保持期間の終了時にセッションが削除される場合も同様です。削除は元に戻せないため、保管が必要なものは先にダウンロードしてください。
  • 法人確認の署名済み書類は、法人のセッションに属します。そのセッションを削除すると、書類も削除されます。
  • ワークフローから書類を削除すると、そのフィールドとWordの元ファイルとともに削除されます。すでに署名を開始した署名者は、セッションの一部として、表示されたコピーを、そのセッションを削除するまで保持します。署名待ちのセッションがないワークフローでのみ、書類を削除してください。
  • Diditがすでに署名者にメールで送信したコピーは、署名者のメールボックスにあり、影響を受けません。

関連ページ