curl -X POST https://verification.didit.me/v3/email/send/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"email": "alice@example.com",
"options": { "code_size": 6, "locale": "en" },
"vendor_data": "user-1234"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.email.send_code(
email="alice@example.com",
options={
"locale": "en",
},
vendor_data="user-1234",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.email.sendCode({
email: "alice@example.com",
options: {
locale: "en",
},
vendor_data: "user-1234",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Email.SendCode(ctx, didit.EmailSendCodeParams{
Email: "alice@example.com",
Options: didit.Some(didit.EmailSendCodeParamsOptions{
Locale: didit.Some(didit.EmailSendCodeParamsOptionsLocale("en")),
}),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.EmailSendCodeParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.email().sendCode(EmailSendCodeParams.builder()
.email("alice@example.com")
.options(EmailSendCodeParams.Options.builder()
.locale(EmailSendCodeParams.Options.Locale.of("en"))
.build())
.vendorData("user-1234")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->email->sendCode([
'email' => 'alice@example.com',
'options' => [
'locale' => 'en',
],
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.email.send_code(
email: "alice@example.com",
options: {
locale: "en",
},
vendor_data: "user-1234"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Email.SendCodeAsync(new EmailSendCodeParams
{
Email = "alice@example.com",
Options = new EmailSendCodeParamsOptions
{
Locale = new EmailSendCodeParamsOptionsLocale("en"),
},
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"request_id": "e39cb057-92fc-4b59-b84e-02fec29a0f24",
"status": "Success",
"reason": null,
"vendor_data": "user-1234",
"metadata": null
}メールOTP送信API:メール認証コードを送信
DiditのPOST /v3/email/send/でワンタイム認証コードを送信。配信不能時は自動再試行、有効期限5分、従量課金で月額最低料金なし。
curl -X POST https://verification.didit.me/v3/email/send/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"email": "alice@example.com",
"options": { "code_size": 6, "locale": "en" },
"vendor_data": "user-1234"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.email.send_code(
email="alice@example.com",
options={
"locale": "en",
},
vendor_data="user-1234",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.email.sendCode({
email: "alice@example.com",
options: {
locale: "en",
},
vendor_data: "user-1234",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Email.SendCode(ctx, didit.EmailSendCodeParams{
Email: "alice@example.com",
Options: didit.Some(didit.EmailSendCodeParamsOptions{
Locale: didit.Some(didit.EmailSendCodeParamsOptionsLocale("en")),
}),
VendorData: didit.String("user-1234"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.EmailSendCodeParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.email().sendCode(EmailSendCodeParams.builder()
.email("alice@example.com")
.options(EmailSendCodeParams.Options.builder()
.locale(EmailSendCodeParams.Options.Locale.of("en"))
.build())
.vendorData("user-1234")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->email->sendCode([
'email' => 'alice@example.com',
'options' => [
'locale' => 'en',
],
'vendor_data' => 'user-1234',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.email.send_code(
email: "alice@example.com",
options: {
locale: "en",
},
vendor_data: "user-1234"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Email.SendCodeAsync(new EmailSendCodeParams
{
Email = "alice@example.com",
Options = new EmailSendCodeParamsOptions
{
Locale = new EmailSendCodeParamsOptionsLocale("en"),
},
VendorData = "user-1234",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"request_id": "e39cb057-92fc-4b59-b84e-02fec29a0f24",
"status": "Success",
"reason": null,
"vendor_data": "user-1234",
"metadata": null
}承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
ボディ
受信者のメールアドレス。形式が不正なアドレスは400を返します。構文上は有効でもメールを受信できないアドレス(DNS/MX検証に失敗したもの)は、status: "Undeliverable"とともに200を返します。
"alice@example.com"
OTPの形式、ローカライズ、ブランディングのオプション。すべてのフィールドは任意です。
Show child attributes
Show child attributes
エンドユーザーに関するデバイスおよびネットワークの任意のシグナルで、不正利用や自動化されたトラフィックの検出精度を高めるために不正対策レイヤーへ転送されます。すべてのフィールドは任意です。
Show child attributes
Show child attributes
呼び出し側が管理する任意の識別子(社内のユーザーid、メールアドレス、UUIDなど)です。セッションに保存され、送信レスポンス、対応するチェックレスポンス、Webhook、Business Consoleでそのまま返されます。Diditのrequest_idを自社のユーザーレコードと関連付けるために使用してください。
セッションに保存される任意の自由形式のJSONオブジェクトです。送信レスポンス、対応するチェックのレスポンス、Webhook、Business Consoleでそのまま返されます。
レスポンス
送信を受け付けました。statusを確認してください。SuccessとRetryはコードが送信中であることを示し、Undeliverableはそのアドレスがメールを受信できず、認証がすでにDeclinedとして確定済みであることを示します。request_idは永続化されたセッションIDです(Retryの場合も同じIDです)。
認証のセッションID。Retryによる送信では、元の送信と同じrequest_idが返されます。このIDはBusiness Consoleに表示され、確定済みのPOST /v3/email/check/でも再度返され、GET /v3/session/{sessionId}/decision/に渡すことができます。
Success:新しい認証にOTPをメールで送信しました(課金対象)。Retry:以前の送信で作成された保留中の認証に対して、新しいOTPをメールで送信しました(無料)。Undeliverable:メールアドレスが配信可能性の検証に失敗したか、メッセージを送信できませんでした。認証は直ちにDeclinedとして確定し、課金は発生しません。
Success, Retry, Undeliverable statusがUndeliverableの場合はemail_can_not_be_delivered、それ以外の場合はnull。
email_can_not_be_delivered, null セッションに保存されているvendor_data(最初の送信時のもの)のエコー。
セッションに保存されているmetadata(最初の送信時のもの)のエコー。