curl -X POST \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/share/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"for_application_id": "a5f3bca2-46e2-411e-90ef-a580900a57ee",
"ttl_in_seconds": 7200
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.share(
"11111111-2222-3333-4444-555555555555",
for_application_id="a5f3bca2-46e2-411e-90ef-a580900a57ee",
ttl_in_seconds=7200,
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.share("11111111-2222-3333-4444-555555555555", {
for_application_id: "a5f3bca2-46e2-411e-90ef-a580900a57ee",
ttl_in_seconds: 7200,
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.Share(ctx, "11111111-2222-3333-4444-555555555555", didit.SessionsShareParams{
ForApplicationID: "a5f3bca2-46e2-411e-90ef-a580900a57ee",
TTLInSeconds: didit.Int(7200),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsShareParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().share("11111111-2222-3333-4444-555555555555", SessionsShareParams.builder()
.forApplicationId("a5f3bca2-46e2-411e-90ef-a580900a57ee")
.ttlInSeconds(7200L)
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->share('11111111-2222-3333-4444-555555555555', [
'for_application_id' => 'a5f3bca2-46e2-411e-90ef-a580900a57ee',
'ttl_in_seconds' => 7200,
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.share(
"11111111-2222-3333-4444-555555555555",
for_application_id: "a5f3bca2-46e2-411e-90ef-a580900a57ee",
ttl_in_seconds: 7200
)
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.ShareAsync("11111111-2222-3333-4444-555555555555", new SessionsShareParams
{
ForApplicationId = "a5f3bca2-46e2-411e-90ef-a580900a57ee",
TtlInSeconds = 7200,
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"share_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uX2lkIjoiMjBiYjNjM2ItNjE0Ni00MzlmLTg0YTQtYmQzMGQwMGFjNmEyIiwiZnJvbV9hcHBsaWNhdGlvbl9pZCI6ImRiZDIwZTM0LTQyZTktNGYyYy1iYTkxLWNmMDc2MjAxNmY2NCIsImZvcl9hcHBsaWNhdGlvbl9pZCI6ImE1ZjNiY2EyLTQ2ZTItNDExZS05MGVmLWE1ODA5MDBhNTdlZSIsImlhdCI6MTc1MzYzMDY2NiwiZXhwIjoxNzUzNjM0MjY2fQ.JJ9pNE_hqZsOtbR0XYZIWw4JzidjdEl279iUrsIkhGE",
"for_application_id": "a5f3bca2-46e2-411e-90ef-a580900a57ee",
"session_kind": "user"
}セッション共有API:共有トークンの発行
DiditのPOST /v3/session//share/で、再利用可能なKYC・KYB向けに有効期限付きの共有トークンを発行。JWT署名付きでパートナー連携に対応。従量課金で契約は不要です。
curl -X POST \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/share/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"for_application_id": "a5f3bca2-46e2-411e-90ef-a580900a57ee",
"ttl_in_seconds": 7200
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.share(
"11111111-2222-3333-4444-555555555555",
for_application_id="a5f3bca2-46e2-411e-90ef-a580900a57ee",
ttl_in_seconds=7200,
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.share("11111111-2222-3333-4444-555555555555", {
for_application_id: "a5f3bca2-46e2-411e-90ef-a580900a57ee",
ttl_in_seconds: 7200,
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.Share(ctx, "11111111-2222-3333-4444-555555555555", didit.SessionsShareParams{
ForApplicationID: "a5f3bca2-46e2-411e-90ef-a580900a57ee",
TTLInSeconds: didit.Int(7200),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsShareParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().share("11111111-2222-3333-4444-555555555555", SessionsShareParams.builder()
.forApplicationId("a5f3bca2-46e2-411e-90ef-a580900a57ee")
.ttlInSeconds(7200L)
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->share('11111111-2222-3333-4444-555555555555', [
'for_application_id' => 'a5f3bca2-46e2-411e-90ef-a580900a57ee',
'ttl_in_seconds' => 7200,
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.share(
"11111111-2222-3333-4444-555555555555",
for_application_id: "a5f3bca2-46e2-411e-90ef-a580900a57ee",
ttl_in_seconds: 7200
)
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.ShareAsync("11111111-2222-3333-4444-555555555555", new SessionsShareParams
{
ForApplicationId = "a5f3bca2-46e2-411e-90ef-a580900a57ee",
TtlInSeconds = 7200,
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"share_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uX2lkIjoiMjBiYjNjM2ItNjE0Ni00MzlmLTg0YTQtYmQzMGQwMGFjNmEyIiwiZnJvbV9hcHBsaWNhdGlvbl9pZCI6ImRiZDIwZTM0LTQyZTktNGYyYy1iYTkxLWNmMDc2MjAxNmY2NCIsImZvcl9hcHBsaWNhdGlvbl9pZCI6ImE1ZjNiY2EyLTQ2ZTItNDExZS05MGVmLWE1ODA5MDBhNTdlZSIsImlhdCI6MTc1MzYzMDY2NiwiZXhwIjoxNzUzNjM0MjY2fQ.JJ9pNE_hqZsOtbR0XYZIWw4JzidjdEl279iUrsIkhGE",
"for_application_id": "a5f3bca2-46e2-411e-90ef-a580900a57ee",
"session_kind": "user"
}KYCとKYBのサポート
本人確認(KYC)と法人確認 (KYB)のどちらのセッションにも対応しています。Didit はsession_idに対応するセッションを両方のセッション種別から特定し、次の内容を含むJWT共有トークンを生成します。
{
"session_id": "...",
"session_kind": "user" | "business",
"from_application_id": "...",
"for_application_id": "...",
"iat": ...,
"exp": ...
}
要件
- セッションが完了ステータス(
APPROVED、DECLINED、IN_REVIEW)である必要があります。 write:sessions権限が必要です。for_application_idは有効なDiditアプリケーション(通常はパートナーのアプリケーション)である必要があります。
例
- 本人確認(KYC)セッションを共有する
- 法人確認(KYB)セッションを共有する
curl -X POST https://verification.didit.me/v3/session/4c5c7f3a-.../share/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"for_application_id": "partner-app-uuid",
"ttl_in_seconds": 3600
}'
{
"share_token": "eyJhbGciOiJIUzI1NiJ9...",
"for_application_id": "partner-app-uuid",
"session_kind": "user"
}
curl -X POST https://verification.didit.me/v3/session/bs-01HJX1.../share/ \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"for_application_id": "partner-app-uuid",
"ttl_in_seconds": 7200
}'
{
"share_token": "eyJhbGciOiJIUzI1NiJ9...",
"for_application_id": "partner-app-uuid",
"session_kind": "business"
}
TTLの範囲
| パラメーター | 最小 | 最大 | デフォルト |
|---|---|---|---|
ttl_in_seconds | 60 | 86400 | 3600 |
関連情報
承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
パスパラメータ
トークンを発行する元の検証セッションのUUID。
"11111111-2222-3333-4444-555555555555"
ボディ
トークンを利用するDiditアプリケーションのUUIDです。存在し、削除されておらず、かつ呼び出し元アプリケーションとは異なる必要があります。Business ConsoleのSettings → Applicationで確認できます。
"a5f3bca2-46e2-411e-90ef-a580900a57ee"
トークンの有効期間(秒)。最小は60、最大は86400(24時間)です。デフォルトは3600(1時間)です。
60 <= x <= 864003600
レスポンス
共有トークンが発行されました。
HS256で署名されたJWT。対象のアプリケーションで、POST /v3/session/import-shared/にshare_tokenとしてそのまま渡してください。
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
トークンが紐づく対象アプリケーションのUUIDをそのまま返します。
"a5f3bca2-46e2-411e-90ef-a580900a57ee"
元のセッションがユーザー認証(KYC)セッションか法人確認(KYB)セッションか。
user, business