> ## 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.

# Management API v3：ワークフローと請求の管理

> DiditのManagement API v3なら、ワークフロー、質問票、ユーザー、請求、ブロックリストをAPIキーで設定できます。エージェントネイティブでMCP対応。従量課金制で契約は不要です。

## 認証

すべての管理APIエンドポイントでは、アプリケーションのAPIキーを使用します。URLに組織やアプリのUUIDを含める必要はありません。アプリケーションはキーから識別されます。

```bash theme={null}
curl -H "x-api-key: YOUR_API_KEY" https://verification.didit.me/v3/...
```

まだAPIキーをお持ちでない場合は、[2回のAPI呼び出しでプログラムで登録できます](https://docs.didit.me/ja/integration/programmatic-registration.md)。

***

## ワークフロー

ワークフローは、ユーザーが行う検証ステップ(身分証のスキャン、ライブネス検知、顔照合、AMLスクリーニングなど)を定義します。各ワークフローは、セッションに紐付けて再利用できる設定です。

**GET /v3/workflows/** `GET`

アプリケーションのすべてのワークフローを一覧表示します。各ワークフローの機能、しきい値、デフォルトかどうかを返します。

**POST /v3/workflows/** `POST`

新しいワークフローを作成します。有効にする検証機能の指定、しきい値の設定、受け付ける書類の種類の設定などを行えます。

**GET /v3/workflows/\{uuid}/** `GET`

特定のワークフローについて、すべての機能設定としきい値を含む詳細を取得します。

**PATCH /v3/workflows/\{uuid}/** `PATCH`

ワークフローの設定を更新します。任意の機能設定、しきい値、受け付ける書類を変更できます。

**DELETE /v3/workflows/\{uuid}/** `DELETE`

ワークフローを削除します。すでにこのワークフローを使用しているセッションには影響しません。

> [!WARNING]
>
> ワークフローの作成と設定には、**Business Console**の使用を強く推奨します。ビジュアルワークフロービルダーでは、テンプレート、ドラッグ&ドロップによる機能設定、書類の設定、しきい値の調整、プレビューを、コードを書かずにすべて利用できます。APIは、ワークフローの自動化やプログラムによる管理にのみ使用してください。

### 簡単な例: ワークフローの作成

`workflow_type`によって基本となる機能セットが決まります。その上で、個々の機能を`is_*_enabled`フラグで切り替えます。

```bash theme={null}
curl -X POST https://verification.didit.me/v3/workflows/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_label": "Standard KYC",
    "workflow_type": "kyc",
    "is_default": true,
    "is_face_match_enabled": true,
    "is_liveness_enabled": true,
    "is_aml_enabled": false
  }'
```

指定できる`workflow_type`の値: `kyc`、`kyb`、`adaptive_age_verification`、`biometric_authentication`、`address_verification`、`questionnaire_verification`、`email_verification`、`phone_verification`。

`kyc`ワークフローでは本人確認が自動的に含まれるため、そのための個別のフラグは不要です。`is_*_enabled`フラグを使用して、顔照合、ライブネス検知、AML、NFC、電話番号認証、メールアドレス認証、住所証明、デバイス・IP分析などのオプション機能を追加または削除します。

次に、セッションを作成する際にそのワークフローを使用します。

```bash theme={null}
curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "callback_url": "https://myapp.com/callback",
    "workflow_id": "WORKFLOW_UUID_FROM_ABOVE"
  }'
```

***

## アンケート

ユーザーから追加情報を収集するために、検証ワークフローに追加できるカスタムフォームです。

**GET /v3/questionnaires/** `GET`

すべてのアンケートを一覧表示します。

**POST /v3/questionnaires/** `POST`

カスタムの質問、分岐ロジック、翻訳を含む新しいアンケートを作成します。

**GET /v3/questionnaires/\{uuid}/** `GET`

すべての質問とフォーム構造を含むアンケートの詳細を取得します。

**PATCH /v3/questionnaires/\{uuid}/** `PATCH`

アンケートを更新します。

**DELETE /v3/questionnaires/\{uuid}/** `DELETE`

アンケートを削除します。

***

## ユーザー

アプリケーション内の検証済みの個人(ユーザー)を管理します。各ユーザーは、セッション作成時に指定する`vendor_data`文字列で識別されます。

**GET /v3/users/** `GET`

アプリケーションのすべてのユーザーを、検証ステータスとセッション履歴を含めて一覧表示します。

**GET /v3/users/\{vendor\_data}/** `GET`

vendor\_data識別子でユーザーの詳細を取得します。

**PATCH /v3/users/\{vendor\_data}/** `PATCH`

ユーザーのメタデータを更新します。

**POST /v3/users/delete/** `POST`

ユーザーを一括削除します。ボディ: `{"vendor_data_list": ["user-1", "user-2"]}`または`{"delete_all": true}`。対象ユーザーについて保持されているすべての生体認証テンプレートも完全に削除されます。

***

## 生体認証テンプレート

オプトインしたアプリケーションがセッション削除後も保持する、画像を含まない顔の生体認証テンプレートです。[生体認証テンプレート](https://docs.didit.me/ja/management-api/biometric-templates/overview.md)を参照してください。

**GET /v3/biometric-templates/** `GET`

フィルター(`vendor_data`、`vendor_user_uuid`、`status`、`source_type`、`retained_from`、`retained_to`、`ordering`)付きのページ分割された一覧です。

**GET /v3/biometric-templates/count/** `GET`

同じフィルターを使用した件数です。

**GET /v3/biometric-templates/\{template\_uuid}/** `GET`

1件のテンプレート: 所有するユーザー、取得元の参照、有効期限、指示、ステータス。

**DELETE /v3/biometric-templates/\{template\_uuid}/** `DELETE`

1件のテンプレートを完全に削除します。`{"uuid": "...", "outcome": "purged" | "already_purged"}`を返します。

**POST /v3/biometric-templates/delete/** `POST`

一括で完全に削除します。ボディ: `{"template_uuids": [...]}`または`{"delete_all": true}`に、任意でフィルターを追加します。

***

## セッション操作

**POST /v3/sessions/delete/** `POST`

セッションを一括削除します。`delete:sessions`が必要です。ボディ: `{"session_numbers": ["1", "2", "3"]}`または`{"delete_all": true}`(`delete_all`の対象は、`filter_status`のように`filter_`を接頭辞に付けたList Sessionsのフィルターで絞り込めます)に、任意で`retain_face_embeddings`、`face_retention_days`、`face_retention_deadline`、`deletion_instruction`、`instruction_id`を追加します。該当するセッションが20件以下の場合はセッション1件あたりの`face_retention_outcome`とともに`200`を返し、それを超える場合は削除ジョブとともに`202`を返します。

**GET /v3/sessions/delete/\{job\_id}/** `GET`

`202`を返したセッション一括削除の進捗と結果別の件数です。

**GET /v3/sessions/\{uuid}/reviews/** `GET`

セッションのレビューとアクティビティログを一覧表示します。

**POST /v3/sessions/\{uuid}/reviews/** `POST`

セッションにレビューメモまたはステータス変更を追加します。

***

## 請求

**GET /v3/billing/balance/** `GET`

現在のクレジット残高と自動チャージ設定を取得します。

```json theme={null}
{
  "balance": "142.5000",
  "auto_refill_enabled": true,
  "auto_refill_amount": "100.0000",
  "auto_refill_threshold": "10.0000"
}
```

**POST /v3/billing/top-up/** `POST`

クレジットをチャージするためのStripeチェックアウトセッションを作成します。1回のチャージ額は\$50から\$10,000で、額面どおりに加算されます。

```json theme={null}
{
  "amount_in_dollars": 100,
  "success_url": "https://myapp.com/billing/success",
  "cancel_url": "https://myapp.com/billing/cancel"
}
```

***

## リスト (ブロックリスト・許可リスト・カスタムリスト)

ブロックリスト、許可リスト、ワークフローのカスタム条件に使う型付きリストを管理します。詳しくは[Lists APIドキュメント](https://docs.didit.me/ja/management-api/lists/overview.md)を参照してください。

**GET /v3/lists/** `GET`

アプリケーションのすべてのリスト(ブロックリスト、許可リスト、カスタムリスト)を一覧表示します。

**POST /v3/lists/\{list\_uuid}/entries/** `POST`

リストにエントリーを追加します。`reference_session_id`を指定するとセッションからデータを自動抽出でき、`reference_object_uuid`を指定すると取引・ユーザー・企業へのトレーサビリティを確保できます。

**DELETE /v3/lists/\{list\_uuid}/entries/\{entry\_uuid}/** `DELETE`

リストからエントリーを削除します。

**POST /v3/lists/\{list\_uuid}/entries/face-upload/** `POST`

顔のブロックリストに顔画像(base64)をアップロードします。

***

## Webhook設定

**GET /v3/webhook/** `GET`

URL、バージョン、Webhook署名の検証に使うシークレットキー、アプリケーションのデータ保持ポリシーと生体認証テンプレートの保持ポリシーを含む、現在のWebhook設定を取得します。
レスポンスには`allowed_domains`も含まれます。詳細は後述の`PATCH /v3/webhook/`を参照してください。

```json theme={null}
{
  "webhook_url": "https://myapp.com/webhooks/didit",
  "webhook_version": "v3",
  "secret_shared_key": "whsec_a1b2c3d4e5f6...",
  "capture_method": "both",
  "data_retention_months": null,
  "face_retention_policy": "delete_with_session",
  "face_retention_days": null,
  "allowed_return_hosts": ["app.example.com"],
  "allowed_domains": ["https://app.example.com"]
}
```

**PATCH /v3/webhook/** `PATCH`

Webhook URLやバージョンを更新するか、シークレットキーをローテーションします。`rotate_secret_key: true`を指定すると新しいWebhookシークレットが生成されます(古いシークレットは直ちに無効になります)。アプリケーションの保持ポリシーもここで設定します。設定項目は`data_retention_months`と`face_retention_policy`(デフォルトは`delete_with_session`、または`retain_until_user_deleted`)で、保持を有効にする場合は`face_retention_days`(1〜3650)の指定が必須です。[生体認証テンプレートの保持](https://docs.didit.me/ja/console/data-retention.md#生体認証テンプレートの保持)を参照してください。また、`allowed_return_hosts`も登録します。これは、[Digital ID wallet API](https://docs.didit.me/ja/standalone-apis/digital-id-wallets.md#戻り先を登録する)による認証でHTTPSを介して本人を戻せるホスト名を最大20個(例: `app.example.com`。スキーム、ポート、パス、ワイルドカードは含めません)です。新しいリストを送ると登録済みのリストが置き換えられます。アプリケーションのホワイトラベルドメインは常に許可されます。

`allowed_domains`もここで設定します。これは、ホスト型検証フローを埋め込めるウェブオリジン、およびセッションの`callback`でユーザーを戻せるウェブオリジンを最大50個まで指定するものです(例: `https://app.example.com`)。
各エントリーはスキーム、ホスト、任意のポートで構成し、パス、クエリ、ワイルドカードは含めません。
`https`を使用してください。`http`は`localhost`、`127.0.0.1`、`::1`の場合にのみ受け付けます。
Didit は各オリジンを小文字に変換し、デフォルトポートを除いて保存したうえで、そのリストを`allowed_domains`で返します。
無効なエントリーがある場合、`allowed_domains`に対して400エラーが返されます。
新しいリストを送ると登録済みのリストが置き換えられ、空のリストを送ると制限が解除されます。
リストが空でない間は、[`POST /v3/session/`](https://docs.didit.me/ja/sessions-api/create-session)はリストに含まれないウェブ`callback`を400エラーで拒否します。また、ホスト型フローは、リストに含まれない保存済みのコールバックやワークフローのデフォルトコールバックにユーザーをリダイレクトしません。
カスタムURLスキーム(アプリのディープリンク)とサーバー間のAPI呼び出しは影響を受けません。

`endpoints`を送信すると、そのリストに含まれないWebhookの送信先はすべて、署名シークレットおよび配信ログ全体とともに完全に削除されます。これは[`DELETE /v3/webhook/destinations/{destination_uuid}/`](https://docs.didit.me/ja/management-api/webhook/delete-destination)とまったく同じ動作です。
この操作は元に戻せません。
送信先を1件ずつ管理する場合は、代わりに[Webhookの送信先エンドポイント](https://docs.didit.me/ja/management-api/webhook/list-destinations.md)を使用してください。

```json theme={null}
{
  "webhook_url": "https://myapp.com/webhooks/didit",
  "webhook_version": "v3",
  "allowed_domains": ["https://app.example.com"]
}
```

***

## APIエンドポイント一覧

| エンドポイント | メソッド | 説明 |
| - | - | - |
| `/v3/session/` | POST | 認証セッションを作成 |
| `/v3/sessions/` | GET | すべてのセッションを一覧表示 |
| `/v3/session/{id}/decision/` | GET | セッションの認証結果を取得 |
| `/v3/session/{id}/update-status/` | PATCH | セッションを承認または却下 |
| `/v3/session/{id}/delete/` | DELETE | 単一のセッションを削除 |
| `/v3/sessions/delete/` | POST | セッションを一括削除 |
| `/v3/sessions/delete/{job_id}/` | GET | セッション一括削除ジョブのステータス |
| `/v3/sessions/{id}/reviews/` | GET, POST | セッションのアクティビティ/レビュー |
| `/v3/workflows/` | GET, POST | ワークフローの一覧表示/作成 |
| `/v3/workflows/{id}/` | GET, PATCH, DELETE | ワークフローの詳細/更新/削除 |
| `/v3/questionnaires/` | GET, POST | アンケートの一覧表示/作成 |
| `/v3/questionnaires/{id}/` | GET, PATCH, DELETE | アンケートの詳細 |
| `/v3/users/` | GET | 認証済みユーザーを一覧表示 |
| `/v3/users/{vendor_data}/` | GET, PATCH | ユーザーの詳細/更新 |
| `/v3/users/delete/` | POST | ユーザーを一括削除(保持されている生体認証テンプレートも消去) |
| `/v3/biometric-templates/` | GET | 保持されている生体認証テンプレートを一覧表示 |
| `/v3/biometric-templates/count/` | GET | 保持されている生体認証テンプレートの件数を取得 |
| `/v3/biometric-templates/{id}/` | GET, DELETE | テンプレートの詳細/消去 |
| `/v3/biometric-templates/delete/` | POST | テンプレートを一括消去 |
| `/v3/lists/` | GET, POST | すべてのリストを一覧表示/リストを作成 |
| `/v3/lists/{id}/` | GET, PATCH, DELETE | リストの詳細/更新/削除 |
| `/v3/lists/{id}/entries/` | GET, POST | エントリーを一覧表示/エントリーを追加 |
| `/v3/lists/{id}/entries/{eid}/` | DELETE | エントリーを削除 |
| `/v3/lists/{id}/entries/face-upload/` | POST | ブロックリストに顔をアップロード |
| `/v3/webhook/` | GET, PATCH | Webhook設定(URL、シークレット、バージョン)、保持ポリシー、ウォレットの戻り先ホスト |
| `/v3/billing/balance/` | GET | クレジット残高を確認 |
| `/v3/billing/top-up/` | POST | クレジットをチャージ |


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