curl -X POST \
https://verification.didit.me/v3/session/3fa85f64-5717-4562-b3fc-2c963f66afa6/decision-email-preview/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"new_status": "Approved", "email_language": "en"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.preview_decision_email(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
new_status="Approved",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.previewDecisionEmail("3fa85f64-5717-4562-b3fc-2c963f66afa6", {
new_status: "Approved",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.PreviewDecisionEmail(ctx, "3fa85f64-5717-4562-b3fc-2c963f66afa6", didit.SessionsPreviewDecisionEmailParams{
NewStatus: "Approved",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsPreviewDecisionEmailParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().previewDecisionEmail("3fa85f64-5717-4562-b3fc-2c963f66afa6", SessionsPreviewDecisionEmailParams.builder()
.newStatus(SessionsPreviewDecisionEmailParams.NewStatus.of("Approved"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->previewDecisionEmail('3fa85f64-5717-4562-b3fc-2c963f66afa6', [
'new_status' => 'Approved',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.preview_decision_email(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
new_status: "Approved"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.PreviewDecisionEmailAsync("3fa85f64-5717-4562-b3fc-2c963f66afa6", new SessionsPreviewDecisionEmailParams
{
NewStatus = "Approved",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"recipient": "person@example.com",
"recipient_source": "email_verification",
"sender": "Example App <no-reply@mail.example.com>",
"sender_name": "Example App",
"sender_email": "no-reply@mail.example.com",
"sender_kind": "customer",
"subject": "Your verification has been approved in Example App",
"html": "<!DOCTYPE html><html><body>...</body></html>",
"language": "en",
"will_be_sent": true,
"not_sent_reason": null,
"preview_token": "eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000"
}判定メールプレビューAPI:承認済み・却下メールを事前確認
DiditのAPIで、セッションのステータスを変更する前に、ユーザーが受け取る承認済みまたは却下のメールを、受信者・送信者・言語とあわせて確認できます。
curl -X POST \
https://verification.didit.me/v3/session/3fa85f64-5717-4562-b3fc-2c963f66afa6/decision-email-preview/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"new_status": "Approved", "email_language": "en"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.preview_decision_email(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
new_status="Approved",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.previewDecisionEmail("3fa85f64-5717-4562-b3fc-2c963f66afa6", {
new_status: "Approved",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.PreviewDecisionEmail(ctx, "3fa85f64-5717-4562-b3fc-2c963f66afa6", didit.SessionsPreviewDecisionEmailParams{
NewStatus: "Approved",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsPreviewDecisionEmailParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().previewDecisionEmail("3fa85f64-5717-4562-b3fc-2c963f66afa6", SessionsPreviewDecisionEmailParams.builder()
.newStatus(SessionsPreviewDecisionEmailParams.NewStatus.of("Approved"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->previewDecisionEmail('3fa85f64-5717-4562-b3fc-2c963f66afa6', [
'new_status' => 'Approved',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.preview_decision_email(
"3fa85f64-5717-4562-b3fc-2c963f66afa6",
new_status: "Approved"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.PreviewDecisionEmailAsync("3fa85f64-5717-4562-b3fc-2c963f66afa6", new SessionsPreviewDecisionEmailParams
{
NewStatus = "Approved",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"recipient": "person@example.com",
"recipient_source": "email_verification",
"sender": "Example App <no-reply@mail.example.com>",
"sender_name": "Example App",
"sender_email": "no-reply@mail.example.com",
"sender_kind": "customer",
"subject": "Your verification has been approved in Example App",
"html": "<!DOCTYPE html><html><body>...</body></html>",
"language": "en",
"will_be_sent": true,
"not_sent_reason": null,
"preview_token": "eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000"
}send_email: trueを指定してセッションをApprovedまたはDeclinedに設定したときに本人が受け取るメールが、そのままの形で表示されます。
あわせて、誰が受け取るのか、誰から送信されるのか、そして確定したときに実際に送信されるかどうかもわかります。
メールの受信者
メールは本人のメールアドレスに送信されます。ワークフローのメールアドレス認証ステップで本人が検証したアドレスがあればそのアドレスに、なければセッション作成時にcontact_detailsで指定されたアドレスに送信されます。
どちらが適用されるかはrecipient_source(email_verificationまたはcontact_details)で示されます。
セッションに本人のアドレスがない場合、recipient、recipient_source、preview_tokenは空文字列になり、メールは送信できません。
ホワイトラベル設定が適用される場合、メールはアプリケーションの検証済み送信ドメインから送信されます(sender_kind: customer)。それ以外の場合はDiditの送信元から送信されます(sender_kind: didit)。
メールが送信されるかどうか
send_email: trueで変更を確定したときにメールが送信される場合、will_be_sentはtrueになります。
falseの場合は、not_sent_reasonにその理由が示されます。
not_sent_reason | 意味 |
|---|---|
status_unchanged | セッションがすでにこのステータスであるため、更新しても何も変更されず、何も送信されません。 |
notification_emails_disabled | セッションがcontact_details.send_notification_emails: trueなしで作成されたため、contact_detailsで指定されたアドレスには判定メールが送信されません。 |
no_recipient | 本人のアドレスが不明です。 |
sandbox | セッションがサンドボックスのセッションであり、受信者がサンドボックスでのメール配信をオプトインしていないため、メールはシミュレーションのみとなります。メールのオプトインを参照してください。 |
判定を確定する
次のフィールドを指定してセッションステータスの更新を呼び出します。| セッションステータスの更新のフィールド | 値 |
|---|---|
new_status | プレビューしたnew_statusと同じ値 |
send_email | true |
email_address | プレビューのrecipient |
email_language | プレビューのlanguage |
email_preview_token | プレビューのpreview_token |
409を返します。
もう一度プレビューし、新しい受領証で確定してください。
関連情報
- セッションステータスの更新: セッションを承認または却下し、メールを送信します。
- 再提出メールのプレビュー: 代わりに再提出用のメールをプレビューします。
- ホワイトラベル: メールで使用される送信元とブランディングです。
承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
パスパラメータ
検証セッションのUUID。ユーザー(KYC)と企業(KYB)の両方のセッションIDを受け付けます。
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
ボディ
レスポンス
プレビューのみです。セッションは変更されず、メールも送信されません。
メールの送信先アドレス。その人物のアドレスが不明な場合は空文字列です。その場合はメールを送信できず、preview_tokenも空になります。確認時にemail_addressとして渡してください。
"person@example.com"
recipientの取得元。email_verification:フローのメールアドレス認証ステップで本人が認証したアドレス。contact_details:セッション作成時にcontact_detailsで指定されたアドレス。アドレスがない場合は空文字列です。
email_verification, contact_details, "email_verification"
メールの送信時に使われるFromヘッダーです。
"Example App <no-reply@mail.example.com>"
senderの表示名の部分です。
"Example App"
senderのアドレス部分。
"no-reply@mail.example.com"
customer: メールはアプリケーションの検証済み送信元ドメインから送信されます(ホワイトラベル)。didit: メールはDidit独自の送信元から送信されます。
customer, didit "customer"
送信されたとおりの件名。
"Your verification has been approved in Example App"
送信されるとおりのメールのHTMLで、ロゴはデータURLとして埋め込まれています。サンドボックス化されたフレーム内でレンダリングし、アプリケーションのDOMに直接レンダリングしないでください。
"<!DOCTYPE html><html><body>...</body></html>"
コンパクトなプレビュー用の、メール本文のプレーンテキストです。本人のメッセージスレッドに保存されている内容と同じです(本人が受け取るメールはHTMLのままです)。
"Verification Approved\n\nYour identity has been successfully verified with Acme Pay. No further action is needed on your part."
メールの記述言語です。指定したemail_languageが提供されていない場合は英語(en)です。
"en"
send_email: trueで変更を確定したときにこのメールが送信されるかどうかです。not_sent_reasonが設定されている場合はfalseです。
true
確定してもメールが送信されない理由、または送信される場合はnull。status_unchanged:セッションはすでにこのステータスであるため、更新しても何も変わらず、何も送信されません。notification_emails_disabled:セッションがcontact_details.send_notification_emails: trueなしで作成されたため、contact_detailsで指定したアドレスに判定メールは送信されません。no_recipient:本人のアドレスが不明です。sandbox:受信者がサンドボックスでのメール配信をオプトインしていないサンドボックスセッションのため、送信はシミュレーションのみです。
status_unchanged, notification_emails_disabled, no_recipient, sandbox, null null
このメールに対する署名付きレシートで、有効期間は15分です。セッションステータスを更新にemail_preview_tokenとして渡してください。受信者がいない場合は空文字列です。
"eyJkaWdlc3QiOiI0ZjJhIn0:1uExAm:Pl3x4mpleS1gnatureValue000000000000000"