> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# 電子署名レポート：signatures[]リファレンス

> Diditの電子署名レポートでは、セッションの判定とWebhookのsignatures[]を読み取り、署名済みPDFと証拠PDFをダウンロードして、署名を再度検証できます。

すべての[電子署名](https://docs.didit.me/ja/core-technology/electronic-signature/overview.md)ステップは、署名者ごとに1つの結果を生成します。この結果は、次の場所で`signatures[]`の項目として確認できます。

* [`GET /v3/session/{sessionId}/decision/`](https://docs.didit.me/ja/sessions-api/retrieve-session)。ユーザー認証 (KYC) および法人確認 (KYB) のセッションが対象です。
* V3の[セッションWebhook](https://docs.didit.me/ja/integration/webhooks.md)の`decision`。セッションが`Approved`、`Declined`、`In Review`、`Abandoned`のいずれかになったときに送信されます。
* コンソールにあるセッションの**Signature**タブ、および[PDFレポート](https://docs.didit.me/ja/sessions-api/generate-pdf.md)の署名セクション。

`signatures`は、ワークフローに電子署名ステップがある場合にのみ判定に含まれます。署名者がそのステップに到達するまでは空の配列です。KYCステップには項目が1つ、KYBステップには署名者ごとに1つの項目があります。

## 例

```json theme={null}
{
  "signatures": [
    {
      "id": "0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10",
      "node_id": "feature_signature",
      "status": "signed",
      "verdict": "Approved",
      "level": "aes",
      "format": "pades",
      "profile": "PAdES-B-LT",
      "signer": {
        "name": "Jane Doe",
        "capacity": "self",
        "company": null,
        "role": null,
        "roles": [],
        "identity_session_id": "11111111-2222-3333-4444-555555555555"
      },
      "identity_used": {
        "session_id": "11111111-2222-3333-4444-555555555555",
        "kyc_id": "6f1e8f6c-1d2b-4c3a-9e8f-7a6b5c4d3e2f",
        "verified": true,
        "expected_name": "Jane Doe"
      },
      "certificate": {
        "issuer": "<certificate issuer>",
        "issued_to": "<certificate subject>",
        "serial": "5A3F9C21",
        "valid_from": "2026-01-01T00:00:00+00:00",
        "valid_until": "2028-01-01T00:00:00+00:00"
      },
      "confirmation": {
        "channel": "email",
        "destination": "j***@example.com",
        "confirmed_at": "2026-11-03T10:42:18.512Z",
        "attempts": 1
      },
      "timestamp": {
        "time": "2026-11-03T10:42:21+00:00",
        "qualified": false,
        "valid": true
      },
      "documents": [
        {
          "id": "9b0a7f44-2c1d-4e5f-8a9b-0c1d2e3f4a5b",
          "uuid": "9b0a7f44-2c1d-4e5f-8a9b-0c1d2e3f4a5b",
          "title": "Account agreement",
          "file_name": "agreement.pdf",
          "pages": 4,
          "size_bytes": 182344,
          "sha256_original": "3b8e5f0c2a9d4e7f1b6c0a5d9e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f",
          "sha256_signed": "a1f2e3d4c5b6a7980f1e2d3c4b5a69788f7e6d5c4b3a29180f1e2d3c4b5a6978",
          "status": "signed",
          "opened_at": "2026-11-03T10:40:02.118Z",
          "read_at": "2026-11-03T10:41:10.044Z",
          "read_to_end": true,
          "consented_at": "2026-11-03T10:41:12.730Z",
          "consent": true,
          "signed_file": "/v3/session/11111111-2222-3333-4444-555555555555/signatures/feature_signature/documents/9b0a7f44-2c1d-4e5f-8a9b-0c1d2e3f4a5b/file/",
          "mode": "fields",
          "source_format": "pdf",
          "conversion": null,
          "fields": [
            {
              "key": "full_name",
              "type": "full_name",
              "role": "verified_person",
              "label": "Full name",
              "page": 1,
              "x": 0.34,
              "y": 0.2326,
              "width": 0.57,
              "height": 0.0325,
              "required": true,
              "value": "Jane Doe",
              "display_value": "Jane Doe",
              "value_source": "identity",
              "filled_at": "2026-11-03T10:40:02.118Z",
              "value_unavailable_reason": null
            },
            {
              "key": "occupation",
              "type": "text",
              "role": "verified_person",
              "label": "Occupation",
              "page": 1,
              "x": 0.34,
              "y": 0.4618,
              "width": 0.57,
              "height": 0.0325,
              "required": true,
              "value": "Architect",
              "display_value": "Architect",
              "value_source": "signer",
              "filled_at": "2026-11-03T10:40:41.502Z",
              "value_unavailable_reason": null
            },
            {
              "key": "signature",
              "type": "signature",
              "role": "verified_person",
              "label": "Signature",
              "page": 4,
              "x": 0.09,
              "y": 0.5303,
              "width": 0.36,
              "height": 0.0849,
              "required": true,
              "value": true,
              "display_value": "Signed",
              "value_source": "signer",
              "filled_at": "2026-11-03T10:41:05.200Z",
              "image_url": "/v3/session/11111111-2222-3333-4444-555555555555/signatures/feature_signature/fields/c4d5e6f7-0a1b-4c2d-8e3f-4a5b6c7d8e9f/image/",
              "value_unavailable_reason": null
            }
          ]
        }
      ],
      "adopted_signature": {
        "method": "drawn",
        "font": null,
        "adopted_at": "2026-11-03T10:41:02.871Z"
      },
      "electronic_signature_consent_at": "2026-11-03T10:41:40.016Z",
      "evidence_file": "/v3/session/11111111-2222-3333-4444-555555555555/signatures/feature_signature/evidence/?signature_id=0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10",
      "warnings": [],
      "validation": {
        "valid": true,
        "checked_at": "2026-11-03T10:42:24.903Z",
        "documents": [
          {
            "id": "9b0a7f44-2c1d-4e5f-8a9b-0c1d2e3f4a5b",
            "checked_at": "2026-11-03T10:42:24.903Z",
            "valid": true,
            "integrity": true,
            "trusted": true,
            "revoked": false,
            "trusted_list": { "status": "not_applicable", "reason": "aes_not_qualified" },
            "certificate": {
              "issuer": "<certificate issuer>",
              "issued_to": "<certificate subject>",
              "serial": "5A3F9C21",
              "valid_from": "2026-01-01T00:00:00+00:00",
              "valid_until": "2028-01-01T00:00:00+00:00"
            },
            "timestamp": { "time": "2026-11-03T10:42:21+00:00", "qualified": false, "valid": true }
          }
        ]
      },
      "declined_at": null,
      "declined_action": "REVIEW",
      "signed_at": "2026-11-03T10:42:24.903Z",
      "expires_at": "2026-11-10T10:30:00.000Z",
      "email_sent_at": "2026-11-03T10:42:30.011Z",
      "email_unavailable_reason": null,
      "ip_address": "203.0.113.10",
      "place": null,
      "place_unavailable_reason": "not_collected"
    }
  ]
}
```

## 署名オブジェクト

| フィールド | 型 | 説明 |
| - | - | - |
| `id` | string (UUID) | 署名者の署名です。署名者のエビデンスをダウンロードしたり署名を検証したりする際に、`signature_id`として渡します。 |
| `node_id` | string | この署名を生成したワークフローのステップです。 |
| `status` | string | 署名者がステップ内のどの段階にいるかを示します。`intro`、`review`、`code`、`signing`、`signed`、`declined`のいずれかです。書類が署名済みであることを示すのは`signed`のみです。 |
| `verdict` | string | ステップの結果です。`Not Finished`、`Approved`、`In Review`、`Declined`のいずれかです。却下された署名や失敗した署名には、その[ルール](https://docs.didit.me/ja/core-technology/electronic-signature/warnings-electronic-signature.md)の判定が適用されます。また、カスタムステータスルールによって変更されることがあります。 |
| `level` | string | `simple`(デフォルト)または`aes`です。`qes`はアドオンで、まだ利用できません。 |
| `format` | string | シンプル署名の場合は`pdf`、高度電子署名(AES)の場合は`pades`です。 |
| `profile` | string \| null | 高度電子署名(AES)が署名されると`PAdES-B-LT`、それ以外の場合は`null`です。 |
| `signer` | object | 署名した人物です。[署名者](#署名者)を参照してください。 |
| `identity_used` | object | 署名の根拠となる検証済みの本人情報です。[署名者](#署名者)を参照してください。検証済みの本人情報がないシンプル署名では空です。 |
| `certificate` | object \| null | 書類の署名に使用された証明書です。`issuer`、`issued_to`、`serial`、`valid_from`、`valid_until`を含みます。署名されるまでは`null`で、シンプル署名では常に`null`です。 |
| `confirmation` | object | ワンタイムコードです。`channel`(`email`または`sms`)、`destination`(コードの送信先となったマスク済みの連絡先)、`confirmed_at`、`attempts`(入力されたコード。正しいコードも含みます)を含みます。シンプル署名にはコードがないため、`channel`と`destination`は`null`です。 |
| `timestamp` | object \| null | Diditが発行した、署名内のRFC 3161タイムスタンプです。`time`、`qualified`(AESでは常に`false`)、`valid`を含みます。署名されるまでは`null`で、シンプル署名では常に`null`です。 |
| `documents` | array | 書類ごとに1項目です。[書類](#書類)を参照してください。 |
| `adopted_signature` | object \| null | 署名者が署名フィールドとイニシャルフィールドのために採用した署名とイニシャルです。`method`(`typed`または`drawn`)、`font`(入力した署名の手書きスタイル。手書きで描いた場合は`null`)、`adopted_at`を含みます。署名者が採用するまでは`null`です。 |
| `electronic_signature_consent_at` | string \| null | 署名者がレビュー画面で、書類に電子的に署名することに同意した日時です。いずれかの書類にフィールドがある場合に設定されます。 |
| `evidence_file` | string \| null | 署名後の、この署名者の[エビデンスPDF](#証跡pdf)へのパスです。 |
| `warnings` | array | 発生した各[警告](https://docs.didit.me/ja/core-technology/electronic-signature/warnings-electronic-signature.md)を表す`{ "code", "node_id" }`項目です。 |
| `validation` | object \| null | 署名済み書類に対する直近の暗号学的検証です。[署名を再検証する](#署名を再検証する)を参照してください。 |
| `declined_at` | string \| null | 署名者が却下した日時です。 |
| `declined_action` | string | ステップの`signature_declined_action`です。却下が判定にどのように影響するかを示します。 |
| `signed_at` | string \| null | 書類が署名された日時です。 |
| `expires_at` | string | 署名リンクが無効になる日時です。 |
| `email_sent_at` | string \| null | Diditが署名者に署名済みのコピーをメールで送信した日時です。 |
| `email_unavailable_reason` | string \| null | コピーの送信を求めたにもかかわらず、メールで送信されなかった理由です。 |
| `ip_address` | string \| null | 署名者がコードを要求した時点のIPアドレスです。 |
| `place` | string \| null | 収集されません。常に`null`で、`place_unavailable_reason: "not_collected"`が付きます。 |

`status`が`signed`になるまでは、署名者が署名したものとして扱わないでください。高度電子署名(AES)では、証明書、タイムスタンプ、または`signed_file`が`null`であれば、まだ署名されていないことを意味します。署名済みのシンプル署名には`signed_file`がありますが、証明書とタイムスタンプは常に`null`です。

### 署名者

| フィールド | 説明 |
| - | - |
| `signer.name` | 承認済みの本人確認から取得した、署名者の検証済みの氏名です。シンプルレベルでは、検証済みのセッションの氏名があればそれを使用し、なければ署名者が入力した氏名を使用します。この氏名は検証されていません。 |
| `signer.capacity` | 本人が自分自身のために署名する場合(KYC)は`self`、主要人物が企業のために署名する場合(KYB)は`company`です。 |
| `signer.company` | KYBの場合の企業名です。 |
| `signer.role` | KYBの場合の、申告された主要人物の役職です。 |
| `signer.roles` | 主要人物を署名者とする根拠となった、構造化された役割です(`representative`や`authorized_signatory`など)。これらは企業について申告された役割であり、登記による確認ではありません。 |
| `signer.identity_session_id` | 署名者を検証したKYCセッションです。KYBの場合は、主要人物自身のKYCセッションです。検証済みの本人情報がないシンプル署名では存在しません。 |
| `identity_used.session_id` | `signer.identity_session_id`と同じです。検証済みの本人情報がないシンプル署名では`identity_used`が空のため、そのフィールドはいずれも存在しません。 |
| `identity_used.kyc_id` | 氏名の取得元となった本人確認です。 |
| `identity_used.verified` | その本人確認が承認された場合は`true`です。 |
| `identity_used.expected_name` | 署名者が一致する必要があった氏名です。KYBの場合は、主要人物として申告された氏名です。 |

### 書類

| フィールド | 説明 |
| - | - |
| `id`, `uuid` | 書類です。署名済みファイルのダウンロードに使用します。 |
| `title`, `file_name` | アップロードまたは送信されたとおりです。 |
| `pages`, `size_bytes` | 署名者が署名した書類のものです。Wordの場合は、変換後のPDFのものです。 |
| `sha256_original` | 署名者に表示された時点の書類のSHA-256です。 |
| `sha256_signed` | 署名後の、署名済みPDFのSHA-256です。 |
| `status` | `signed`、`declined`、`not_signed`(開封済み、未署名)、または`not_reached`(未開封)です。 |
| `opened_at` | 署名者が最初に開封した日時です。 |
| `read_at`, `read_to_end` | 最後まで読むことを必須にしている場合に、署名者がフィールドのない書類の末尾に到達した日時です。フィールドのある書類では不要です。 |
| `consented_at`, `consent` | 書類ごとの同意を必須にしている場合に署名者がフィールドのない書類に同意した日時、またはフィールドのある書類のフィールド入力を完了した日時です。 |
| `signed_file` | 署名後の、署名済みPDFへのパスです。 |
| `mode` | フィールドのある書類は`fields`、フィールドのない書類は`read_and_agree`です。 |
| `source_format` | `pdf`、またはDiditが変換したWord文書の場合は`docx`です。 |
| `conversion` | PDFの場合は`null`です。Word文書の場合は`{ "from": "docx", "file_name", "sha256", "size_bytes", "converter" }`で、お客様の元のファイル、そのSHA-256とサイズ、コンバーターのバージョンを示します。 |
| `fields` | 書類上の[フィールド](#フィールド)とその値です。フィールドのない書類では空になります。 |

### フィールド

`documents[].fields[]`の各要素は書類の1つのフィールドで、この署名者の書類における値を含みます。

| フィールド | 説明 |
| - | - |
| `key` | フィールドの[キー](https://docs.didit.me/ja/core-technology/electronic-signature/overview.md#書類上のフィールド)です。`sign.field_values`で使用するものと同じです。 |
| `type`、`role`、`label`、`required` | 書類に配置したときの設定です。 |
| `page`、`x`、`y`、`width`、`height` | フィールドの位置です。表示されるページに対する割合で表します。 |
| `value` | `text`、`email`、`full_name`、`date_signed`、`data`フィールドでは文字列、チェックボックスではブール値、適用済みの署名またはイニシャルでは`true`です。フィールドが空の場合は`null`です。 |
| `display_value` | ページに刻印される値です。日付はフィールドの`date_format`の形式、チェックボックスは`Yes`または`No`、署名またはイニシャルは`Signed`になります。 |
| `value_source` | 値の取得元です。`signer`(署名者が入力、チェック、または適用)、`identity`(確認済みの身分証)、`contact`(確認済みのメールアドレスまたは電話番号)、`company`(確認済みの企業)、`session`(セッションの`vendor_data`)、`metadata`(セッションの`metadata`)、`api`(お客様の`sign.field_values`)、`signing_time`(署名日)のいずれかです。 |
| `filled_at` | 値が設定された日時です。 |
| `image_url` | 署名またはイニシャルの場合、適用された画像(PNG)のパスです。[署名画像のダウンロード](https://docs.didit.me/ja/sessions-api/electronic-signature/download-field-image.md)を参照してください。 |
| `value_unavailable_reason` | Diditが入力するフィールドに値がない理由です。`not_verified`(本人情報または連絡先が確認されていない)、`not_applicable`(個人本人の署名における企業フィールド)、`not_provided`(取得元に値がない)、`set_at_confirmation`(署名者が確定する前の署名日)のいずれかです。それ以外の場合は`null`です。 |

## 署名済み書類のダウンロード

`signed_file`と`evidence_file`のパスをAPIキーとともに使用します。各ルートはPDFそのものを返します。

```bash theme={null}
# Signed PDF of one document
curl -L 'https://verification.didit.me/v3/session/{session_id}/signatures/{node_id}/documents/{document_id}/file/' \
  -H 'x-api-key: YOUR_API_KEY' \
  -o agreement-signed.pdf

# Evidence PDF of one signer
curl -L 'https://verification.didit.me/v3/session/{session_id}/signatures/{node_id}/evidence/?signature_id={signature_id}' \
  -H 'x-api-key: YOUR_API_KEY' \
  -o signature-evidence.pdf
```

| ルート | リファレンス |
| - | - |
| `GET .../documents/{document_id}/file/` | [署名済み書類のダウンロード](https://docs.didit.me/ja/sessions-api/electronic-signature/download-signed-document.md) |
| `GET .../evidence/` | [署名の証跡のダウンロード](https://docs.didit.me/ja/sessions-api/electronic-signature/download-evidence.md) |
| `GET .../fields/{field_id}/image/` | [署名画像のダウンロード](https://docs.didit.me/ja/sessions-api/electronic-signature/download-field-image.md) |
| `POST .../validate/` | [署名の検証](https://docs.didit.me/ja/sessions-api/electronic-signature/validate-signatures.md) |

Diditは応答する前に、保存されたファイルを記録済みのSHA-256と照合します。一致しない場合、署名済みPDFと証跡のルートは`409`を、画像のルートは`400`を返し、いずれも`signature_document_changed`を伴います。KYBステップに複数の署名者がいる場合は、証跡のルートに必ず`signature_id`を渡してください。

## 署名済みPDF

署名済みPDFには、次の内容がこの順序で含まれます。

1. 署名者に表示された書類のページ。すべてのフィールド値が、お客様が配置した位置に刻印されています。
2. 証跡ページ。`signature_evidence_page`をオフにした場合は含まれません。
3. Advanced(AES)の場合のみ、PAdES署名。Diditが発行したRFC 3161タイムスタンプと、将来の検証に必要な失効情報を含みます。SimpleのPDFは証跡ページで終わり、デジタル署名、シール、タイムスタンプは含まれません。

Advanced(AES)のPDFでは、署名はそれより前のすべてのバイトを対象とし、フィールド値と証跡ページも含まれます。その後ファイル内の何かを変更すると署名は無効になり、PAdESに対応したバリデーターであればそのことが表示されます。署名の詳細には署名者の名前が記載され、署名の詳細には、署名者の本人確認セッションとコード確認への参照が含まれます。

フィールド値はフォームフィールドではなくページのコンテンツの一部になるため、後から編集することはできず、どのPDFビューアーでも表示されます。チェックされたチェックボックスにはチェックマークが表示され、チェックされていないものは書類に描かれたままになります。高さが24ポイントを超える署名ボックスには、署名の下に小さなキャプションも追加されます。キャプションには`Signed with Didit ·`の後に署名の`id`の最初の8文字が表示されます。

Diditは、署名者に表示された書類のバイトの後ろにフィールド値、証跡ページ、署名を追加します。その書類は署名済みファイルの先頭部分と完全に一致するため、`sha256_original`を署名済みPDFに対して引き続き検証できます。

## 証跡PDF

証跡PDFには、1人の署名者について次の内容が記録されます。

* レベルと形式。
* 署名者の名前、署名者としての立場、KYBの場合は企業。
* 検証済みの本人確認セッション(Advanced(AES)のみ)。
* 確認情報:チャネル、マスクされた送信先、日時(Advanced(AES)のみ)。
* 署名者のIPアドレス。
* 各書類:タイトル、ページ数、元の書類のSHA-256。Word文書の場合は、Wordファイルの名前とSHA-256、コンバーターのバージョン、PDFのSHA-256。
* 採用した署名:入力(手書き風のスタイルを含む)か手描きか、採用された日時、署名とイニシャルの画像。
* 書類ごとの各フィールド:ラベル、ページ、種類、値(署名またはイニシャルの場合は画像)、値の取得元(例:**Typed by the signer**、**Verified ID**、**Your API**)、入力された日時(UTC)、署名者が入力した値の場合はその時点の署名者のIPアドレス。
* 最終同意:署名者が確認画面で同意したテキストとその日時。
* すべての署名済みファイルのSHA-256。Advanced(AES)の場合は、証明書(発行先、発行者、シリアル番号、有効期間)とタイムスタンプ。

各署名済みPDFに付加されるページは、署名が適用される前に追加されるため、証明書のセクションを除いて同じ内容です。

## 署名を再検証する

`POST /v3/session/{session_id}/signatures/{node_id}/validate/`は、ステップのすべての署名済みPDFを読み込み直し、そのSHA-256を確認します。Advanced (AES)署名の場合は、PAdES署名、その証明書、失効情報、タイムスタンプも検証します。Simple署名にはデジタル署名がないため、確認するのはファイルの完全性のみです。結果は`validation`に保存され、更新された`signatures[]`が返されます。特定の署名者だけを確認するには`signature_id`を送信します。`write:sessions`が必要で、コンソールでは**Validate again**ボタンがこれにあたります。保存されている署名済みPDFが`sha256_signed`と一致しなくなった場合は、`signature_document_changed`とともに`400`が返されます。

書類が署名されるまで、`validation`は`null`です。Diditが署名の結果を確認できない場合、`validation`は`{ "valid": null, "reason": "signature_provider_outcome_unknown", "checked_at" }`となり、解決されるまで`status`は`signing`のままです。この状態は未署名として扱ってください。

| `validation.documents[]`のフィールド | 説明 |
| - | - |
| `valid` | 署名とタイムスタンプの両方が有効かつ信頼できる場合に`true`。Simple署名の場合は、ファイルが変更されていなければ`true`。 |
| `integrity` | 署名以降に書類が変更されていない場合に`true`。 |
| `trusted` | 署名証明書が信頼されたルートまで連鎖している場合に`true`。Simple署名では`null`。 |
| `revoked` | 署名証明書が失効している場合に`true`。Simple署名では`null`。 |
| `trusted_list` | AESの場合は`{ "status": "not_applicable", "reason": "aes_not_qualified" }`。EU Trusted Listの確認は適格署名に適用されます。Simple署名では`{ "status": "not_applicable", "reason": "simple_not_sealed" }`が返されます。 |
| `certificate`、`timestamp` | ファイルに記録されているとおりの内容。 |

## PDFレポートでの表示

[PDFレポート](https://docs.didit.me/ja/sessions-api/generate-pdf.md)には、署名者、確認内容、証明書、タイムスタンプ、ハッシュ付きの書類を含む署名セクションが出力されます。書類にフィールドがある場合は、続いて**E-signature · fields**ページが出力され、書類ごとに1つの表に、各フィールドの値、署名とイニシャルの画像、日時、取得元が示されます。署名セクションは、KYCレポートでは銀行口座認証の後に、KYBレポートでは書類の後に配置されます。このセクションのみを出力するには`pages=signature`を指定します。

## 関連情報

* [電子署名の概要](https://docs.didit.me/ja/core-technology/electronic-signature/overview.md)
* [電子署名の警告](https://docs.didit.me/ja/core-technology/electronic-signature/warnings-electronic-signature.md)
* [データモデル: 電子署名](https://docs.didit.me/ja/reference/data-models.md#電子署名)
* [Webhook](https://docs.didit.me/ja/integration/webhooks.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.