curl
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:生成共享 token
Didit 提供 POST /v3/session//share/ 接口,可生成有时效的共享 token,用于可复用 KYC 或 KYB。JWT 签名,适合合作方,按次计费,无需合同。
POST
/
v3
/
session
/
{sessionId}
/
share
/
curl
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 分享 token,其中包括:
{
"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 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
要为其生成 token 的源验证会话的 UUID。
示例:
"11111111-2222-3333-4444-555555555555"
请求体
application/json
响应
已铸造共享 token。
HS256 签名的 JWT。将其原样作为 share_token 传递给目标应用上的 POST /v3/session/import-shared/。
示例:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
回显该 token 绑定的目标应用 UUID。
示例:
"a5f3bca2-46e2-411e-90ef-a580900a57ee"
源会话是用户验证(KYC)还是企业验证(KYB)会话。
可用选项:
user, business 最后修改于 2026年11月7日