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

# Salesforce本人確認アプリ：KYC・KYB

> DiditのSalesforce管理パッケージで本人確認・KYC・KYBをすぐに導入できます。ノーコードで設定でき、フルKYCチェックは1件$0.33から。毎月$10分が無料で、契約は不要です。

Diditのマネージドパッケージを使うと、Salesforce Sales Cloud/Service CloudにDiditの本人確認を追加できます。コンポーネントは取引先責任者とリードのレコードページに配置できます。セッションはApex経由で組織から作成されるため、DiditのAPIキーはSalesforceの外に出ません。結果はレコードの標準フィールドに書き戻され、FlowやReportで活用できます。組み込みの**Invocable Action**を使えば、新しいリードの作成時などに、Flow Builderから本人確認を自動でトリガーできます。

## 前提条件

* Salesforce組織(Enterprise Edition以上。テストにはDeveloper Edition)
* ワークフローが設定済みの[Didit Console](https://business.didit.me)アカウント
* Setupでマネージドパッケージをインストールし、Sitesを作成する権限

***

### ステップ1:アプリをインストールする

以下のリンクから、リリース済みの**DiditVerifyManaged 1.0.0.2**パッケージをインストールします。
パッケージのインストールは、マーケットプレイスへの掲載承認とは別の手続きです。

1. インストールリンクを開きます:[[https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU](https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU)](https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU)
2. 連携の設定とテストを行う間は、**Install for Admins Only**を選択します。
   設定を検証した後で、対象のユーザーにアクセス権を付与してください。

![SalesforceにDiditアプリをインストールする](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/install-package.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=8758cc01110ca562d2e88b7cb76a9ab5)

3. **Install**をクリックします

***

### ステップ2:Diditの認証情報を取得する

#### APIキーを取得する(APIモードの場合)

1. [Didit Business Console](https://business.didit.me)にログインします
2. 左側のサイドバーで**API & Webhooks**に移動します
3. APIキーをコピーします

![Didit Business ConsoleでAPIキーを取得する方法](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-api-key.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=9027ca685cc296a400e78d320a566453)

#### ワークフローIDを取得する

1. Didit Business Consoleで**Workflows**に移動します
2. 使用するワークフローを選択します(または新規に作成します)
3. **ワークフロー ID**(`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`のようなUUID)をコピーします

![Didit Business ConsoleでワークフローIDを取得する方法](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-workflow-id.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=529dc681169efc0a6cdc96d6c0e0a605)

***

### ステップ3:Didit Settingsを設定する

1. **App Launcher**(左上のグリッドアイコン)をクリックし、**"Didit"**を検索します

![Diditアプリを開く方法](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/app-launcher-search-didit.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=1a2fb9eee64fa9735b29e4d64a20e56e)

2. **Didit**アプリを開くと、**Didit Settings**タブが表示されます
3. 認証情報と各種設定を入力します:

| フィールド | 説明 | デフォルト |
| - | - | - |
| **Mode** | `api`(推奨)または`unilink` | `api` |
| **Didit API Key** | DiditのAPIキー(APIモードのみ) | なし |
| **ワークフロー ID** | DiditのワークフローID(APIモードのみ) | なし |
| **Webhook Secret** | Didit Console→API & WebhooksのHMACシークレット。認証のリアルタイム更新を受け取るために必須です。空欄のままにすると、受信するWebhookはすべて拒否されます。 | なし |
| **UniLink URL** | 固定の認証URL(UniLinkモードのみ) | なし |
| **Display Mode** | `modal`(ポップアップ)または`embedded`(インライン) | `embedded` |
| **Vendor Data** | `record_id`、`record_email`、`custom prefix + record id`、または`none` | `record_id` |
| **Language** | 言語コード(例:`en`、`es`、`fr`) | `Auto detect by browser` |
| **Auto Send Contact Data** | レコードのデータを認証画面に事前入力します | `true` |
| **Show Close Button** | モーダルにXボタンを表示します | `true` |
| **Exit Confirmation** | モーダルを閉じる前に確認します | `true` |
| **Auto-close on Complete** | 完了後にモーダルを自動で閉じます | `false` |
| **Debug Logging** | ブラウザのコンソールへのログ出力を有効にします | `false` |
| **Button Text** | 認証ボタンのラベル | `Verify Identity` |
| **Button Success Text** | 認証後のラベル | `Identity Verified` |
| **Button Color** | ボタンの背景色(16進数カラー) | `#2667ff` |

4. **Save Settings**をクリックします

### ステップ4:レコードページにコンポーネントを追加する

1. **Contact**または**Lead**のレコードに移動します

![連絡先ページの表示](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/contact-page-1.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=0a5d3676ade4b7d2e4334df2305ae050)

2. **歯車アイコン→Edit Page**をクリックします(またはSetup→Object Manager→Contact/Lead→Lightning Record Pages)

![連絡先の詳細表示](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/contact-page-2.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=68b8d16948761de61d5ee8a4c5dcc0f2)

3. Lightning App Builderで、Componentsパネルから**Didit Identity Verification**をドラッグします

![Diditコンポーネントをドラッグする](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/drag-didit-component.gif?s=f34880744041ffa63271a683a641b3ba)

4. **Save**をクリックしてページを**Activate**し、有効化の際に"Assign as Org Default"を選択します。動画を参照してください:

![Diditコンポーネントを追加したページを保存して有効化する](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/save-and-activate.gif?s=2f9f3fffb2fed482ea524236b5ad910d)

5. 上の例ではContactのレコードページを使用していますが、リードのレコードページでも手順は同じです。

## 仕組み

### APIモード(推奨)

1. ユーザーが取引先責任者またはリードのレコードで**Verify Identity**をクリックします
2. ApexがDidit API経由でセッションを作成します(APIキーはサーバー側に保持されます)
3. Didit SDKが検証フローを開きます。Display Modeの設定に応じて、モーダルオーバーレイまたはインライン埋め込みビューで表示されます
4. 完了すると、レコードが自動的に更新されます。
   * `Verification Status` → セッションの結果(`Approved`、`Declined`、`In Review`など)
   * `Identity Verified` → 承認済みの場合は`true`、却下の場合は`false`
   * `Verified At`のタイムスタンプと`Didit Session ID`
   * `Verified Document Type`、`Document Expiry Date`、`AML Check Status`(Webhook経由で入力されます。下記を参照)
5. コンポーネントには、検証ステータス、書類の種類、有効期限、AMLの結果がインラインで表示されます。ページレイアウトの設定は不要です

### UniLinkモード

1. ユーザーが**Verify Identity**をクリックします
2. 固定のUniLink URLがモーダルまたはiframeで開きます(API呼び出しは不要です)
3. 完了すると、結果がレコードに保存されます

### 検証結果の自動更新(Webhook)

検証セッションが完了すると(担当者がページを見ているかどうかにかかわらず)、DiditはSalesforce組織にWebhookを送信し、取引先責任者またはリードのレコードを自動的に更新します。これには、Salesforceサイトの初回設定が1回だけ必要です。

#### なぜ必要なのか

Salesforceは、公開エンドポイントがない限り、外部サービスからのHTTPリクエストを受け付けません。Salesforceサイトを作成するとこのエンドポイントが用意され、Diditが検証結果をリアルタイムで組織に直接送信できるようになります。

#### ステップ1: Setup > Sitesに移動する

Salesforceで**gear icon > Setup**をクリックします。クイック検索ボックスに**Sites**と入力し、**Sites and Domains**の下に表示される項目をクリックします。

![ステップ1 - Sitesの検索](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step1-sites-search.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=07d8ca3804316538de6d15b6ccb39caf)

初めて利用する場合は、**"I have read and accepted the Salesforce Site Terms of Use"**にチェックを入れ、**Register My Salesforce Site Domain**をクリックします。

![ステップ1 - ドメイン登録済みのSitesページ](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step1-sites-registered.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=9a89d50c21cfc4911cf707a111f963ad)

#### ステップ2: 新しいサイトを作成する

サイト一覧で**New**ボタンをクリックし、次のとおり入力します。

* **Site Label**: `DiditWebhook`
* **Site Name**: `DiditWebhook`が自動入力されます
* **Default Web Address**: `didit`
* **Active**: チェックを入れる
* **Active Site Home Page**: `InMaintenance`

その他のフィールドはすべてデフォルトのままにして、**Save**をクリックします。

![ステップ2 - 新規サイトのフォーム](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step2-new-site-form.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=d5869ff430f4050ebde176ff6020c260)

#### ステップ3: サイトが作成されたことを確認する

保存すると、サイトの詳細ページが表示されます。**Site URL**を控えておいてください。`https://your-org.develop.my.salesforce-sites.com/didit`のような形式で、後で必要になります。

![ステップ3 - 作成されたサイト](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step3-site-created.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=daa8ed30fedd1369d33abe13828ddb12)

#### ステップ4: ゲストユーザーにWebhookクラスへのアクセスを許可する

サイトの詳細ページで**Public Access Settings**をクリックすると、ゲストユーザーのプロファイルが開きます。下にスクロールして**Enabled Apex Class Access**の**Edit**をクリックします。Availableリストから**DiditWebhookReceiver**を選択し、**Add**をクリックしてEnabledリストに移動します。**Save**をクリックします。

![ステップ4 - Apexクラスへのアクセス](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step4-apex-class-access.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=8bcfbece75a5a7864e8e1ab8fc07db9d)

#### ステップ5: Didit ConsoleでWebhookを設定する

1. [business.didit.me](https://business.didit.me) > **API & Webhooks**に移動します
2. **Webhook URL**を次のように設定します: `https://your-org.develop.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/`

> **注:** 正確なドメイン形式は組織の種類によって異なります。Developer Editionの組織ではURLに`.develop`が含まれます。本番環境の組織では`https://your-org.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/`を使用します。確実を期すため、必ずサイトの詳細ページ(ステップ3)からURLをコピーしてください。

3. **Webhook Secret Key**をコピーします
4. Salesforceで**Didit Settings**に移動し、シークレットを**Webhook Secret**フィールドに貼り付けます
5. **Save Settings**をクリックします

設定は以上です。今後は、誰もSalesforceのページを開いていなくても、検証結果を受信するたびに取引先責任者またはリードのレコードが自動的に更新されます。

#### Webhookで保存される内容

DiditがWebhookを送信すると、取引先責任者またはリードが自動的に更新されます。

**ワークフローの種類にかかわらず常に更新される項目:**

| フィールド | 保存される内容 |
| - | - |
| **Verification Status** | `Approved`、`Declined`、`In Review`、`In Progress`、`Abandoned` |
| **Identity Verified** | 承認済みの場合は`true`、却下または放棄の場合は`false` |
| **Verified At** | 承認済みの結果のタイムスタンプ |
| **Didit Session ID** | セッションのUUID |

**該当する機能がワークフローに含まれている場合にのみ更新される項目:**

| フィールド | 必要な条件 |
| - | - |
| **Verified Document Type** | ワークフローに本人確認が含まれていること |
| **Document Expiry Date** | ワークフローに本人確認が含まれていること |
| **AML Check Status** | ワークフローにAMLスクリーニングが含まれていること |
| **Verification Decline Reasons** | ワークフローに本人確認が含まれていること |

Diditのワークフローで機能が有効になっていない場合、対応するフィールドは空欄のままになるだけで、不具合は発生しません。

また、セッションごとに**Didit Verification**の子レコード(`Didit_Verification__c`)が作成され、追加の詳細情報(書類番号、発行国、書類上の氏名、生年月日、顔一致スコア、ライブネススコア、AMLのヒット件数)を含む完全な監査証跡が得られます。ここでも、ワークフローに含まれる機能に関する情報のみが記録されます。

取引先責任者またはリードのページレイアウトに**Didit Verifications**関連リストを追加すると、履歴を確認できます。

### フローの自動化(呼び出し可能なアクション)

このプラグインには、Salesforceフローから呼び出して検証を自動的にトリガーできる、呼び出し可能なApexアクションが含まれています。

1. フロービルダーで**Action**要素を追加します
2. **"Create Didit Verification Session"**を検索します
3. 取引先責任者またはリードのレコードIDを渡します
4. アクションは`url`、`sessionId`、`success`、`error`を返します
5. **Send Email**または**Send Notification**アクションでこのURLを使用し、顧客に送信します

**ユースケースの例:**

* **リードの作成時**: すべての新規リードに認証リンクを自動送信します
* **書類の有効期限の監視**: 毎日実行されるスケジュール済みフローを作成し、`Document Expiry Date ≤ TODAY + 90 days`に該当するすべての取引先責任者を抽出して、再検証のリンクを送信します。Webhookによって入力される`Document Expiry Date`フィールドを使うため、追加設定なしでそのまま機能します

## トラブルシューティング

### ボタンをクリックしても何も起こらない

* Didit SettingsでAPIキーとワークフローIDを保存したことを確認してください
* ワークフローIDがAPIキーと同じアプリケーションに属していることを確認してください
* Didit Settingsで**Debug Logging**を有効にし、ブラウザのコンソールでエラーを確認してください

### "Received a non-JSON response from the Didit API"というエラーが表示される

* `https://verification.didit.me`のRemote Site Settingが有効になっていることを確認してください。Setup → Remote Site Settingsで確認できます
* [Didit Business Console](https://business.didit.me)で、APIキーが有効で期限切れになっていないことを確認してください

### Webhookが401を返す "Webhook secret not configured"

* **Didit Settings**を開き、Webhookシークレットキー(Didit Console → API & Webhooksからコピーしたもの)を**Webhook Secret**フィールドに貼り付けてから、**Save Settings**をクリックしてください

### Webhookが401を返す "Invalid signature" または "Request timestamp is stale"

* Invalid signature: Didit SettingsのWebhook SecretがDidit Consoleのものと完全に一致していることを確認してください。余分なスペースや文字が含まれていてはいけません
* Stale timestamp: Webhookは送信から5分以内に到着する必要があります。Salesforce組織の時計がずれていると誤検知の原因になることがありますが、これはごくまれです

### 認証ウィンドウが開かない(ブラウザのコンソールにCSPエラーが表示される)

* `https://verify.didit.me`のCSP Trusted Siteはマネージドパッケージに含まれており、自動的にデプロイされます。ソースからデプロイする場合は、`cspTrustedSites/Didit_Verify_Frontend.cspTrustedSite-meta.xml`がデプロイに含まれていることを確認してください

## サポート (24時間365日)

導入から運用開始まで、私たちのチームがサポートします。

> [card] [メール](mailto:hello@didit.me)
>
> [hello@didit.me](mailto:hello@didit.me)までメールでお問い合わせください。


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