curl --fail \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/generate-pdf/ \
-H 'x-api-key: YOUR_API_KEY' \
--output report.pdffrom didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
content = client.sessions.generate_pdf(
"11111111-2222-3333-4444-555555555555",
)
with open("download.pdf", "wb") as file:
file.write(content)import { writeFile } from "node:fs/promises";
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const content = await didit.sessions.generatePdf("11111111-2222-3333-4444-555555555555");
await writeFile("download.pdf", Buffer.from(await content.arrayBuffer()));ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
resp, err := client.Sessions.GeneratePDF(ctx, "11111111-2222-3333-4444-555555555555")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
file, err := os.Create("download.pdf")
if err != nil {
log.Fatal(err)
}
defer file.Close()
if _, err := io.Copy(file, resp.Body); err != nil {
log.Fatal(err)
}import java.nio.file.Path;
import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
client.sessions().generatePdf("11111111-2222-3333-4444-555555555555")
.writeTo(Path.of("download.pdf"));<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$content = $didit->sessions->generatePdf('11111111-2222-3333-4444-555555555555');
$content->saveTo('download.pdf');require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
content = didit.sessions.generate_pdf("11111111-2222-3333-4444-555555555555")
File.binwrite("download.pdf", content)using System;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var content = await client.Sessions.GeneratePdfAsync("11111111-2222-3333-4444-555555555555");
await content.SaveToAsync("download.pdf");PDF 报告生成 API:KYC 与 KYB 合规报告
通过 GET /v3/session//generate-pdf/ 下载 Didit 为 KYC 或 KYB 会话生成的品牌化合规报告。支持白标、可供审计,按次付费。
curl --fail \
https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/generate-pdf/ \
-H 'x-api-key: YOUR_API_KEY' \
--output report.pdffrom didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
content = client.sessions.generate_pdf(
"11111111-2222-3333-4444-555555555555",
)
with open("download.pdf", "wb") as file:
file.write(content)import { writeFile } from "node:fs/promises";
import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const content = await didit.sessions.generatePdf("11111111-2222-3333-4444-555555555555");
await writeFile("download.pdf", Buffer.from(await content.arrayBuffer()));ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
resp, err := client.Sessions.GeneratePDF(ctx, "11111111-2222-3333-4444-555555555555")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
file, err := os.Create("download.pdf")
if err != nil {
log.Fatal(err)
}
defer file.Close()
if _, err := io.Copy(file, resp.Body); err != nil {
log.Fatal(err)
}import java.nio.file.Path;
import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
client.sessions().generatePdf("11111111-2222-3333-4444-555555555555")
.writeTo(Path.of("download.pdf"));<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$content = $didit->sessions->generatePdf('11111111-2222-3333-4444-555555555555');
$content->saveTo('download.pdf');require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
content = didit.sessions.generate_pdf("11111111-2222-3333-4444-555555555555")
File.binwrite("download.pdf", content)using System;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var content = await client.Sessions.GeneratePdfAsync("11111111-2222-3333-4444-555555555555");
await content.SaveToAsync("download.pdf");KYC 与 KYB 支持
同时适用于用户验证(KYC)和企业验证(KYB)会话。Didit 会自动匹配对应的 PDF 模板:- 用户验证(KYC)会话 → 报告包含身份证件验证、活体检测、人脸比对、AML 与地址证明(POA)部分。
- 企业验证(KYB)会话 → 报告包含公司登记、关键人员(UBO 与高管)、证件、AML、问卷、电话、邮箱和 IP 分析部分(前提是这些功能属于工作流的一部分)。
文件名规则
| 类型 | 文件名 |
|---|---|
| 用户 | session_<session_id>.pdf |
| 企业 | business_<session_id>.pdf |
Content-Disposition: attachment; filename=... 响应头返回。
状态要求
会话必须处于APPROVED、DECLINED 或 IN_REVIEW 状态才能生成 PDF。进行中或未开始的会话将返回 403。
示例
- 用户验证(KYC)PDF
- 企业验证(KYB)PDF
curl https://verification.didit.me/v3/session/4c5c7f3a-.../generate-pdf/ \
-H "x-api-key: YOUR_API_KEY" \
-o kyc-report.pdf
curl https://verification.didit.me/v3/session/bs-01HJX1.../generate-pdf/ \
-H "x-api-key: YOUR_API_KEY" \
-o kyb-report.pdf
白标
当应用启用白标定制后,PDF 将使用您的徽标和隐私政策 URL。请在 控制台 → 定制 中进行配置。权限
需要read:sessions 权限。两种类型使用相同的权限范围。
相关内容
- 会话概览
- 获取会话:JSON 格式的同一决策结果
- 下载用户历史 PDF:将某个用户所有可生成报告的会话合并在一个文件中
- KYB 响应结构:企业 PDF 中包含的字段
授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
路径参数
要渲染的用户验证(KYC)或企业验证(KYB)会话的 UUID — 即 POST /v3/session/ 返回的 session_id。同一路径适用于两种会话类型;可通过响应中的 Content-Disposition 文件名区分您收到的报告类型。
必须是格式规范的小写 UUID。 该路由仅匹配有效 UUID,因此格式错误的值在任何应用代码运行之前就会被 URL 路由器拒绝,且响应为 404 HTML 页面,而不是如下所示的 JSON {"detail": ...} 信封。路由的 UUID 转换器仅匹配标准规范小写格式 — 大写十六进制 UUID 会被拒绝并返回 HTML 404。
"11111111-2222-3333-4444-555555555555"
响应
渲染生成的 PDF 文档,直接以二进制 application/pdf 形式返回,没有 JSON 包装,也没有下载 URL 重定向。正文以 %PDF 魔数开头(PDF 1.7)。可将其保存为 .pdf 文件或直接流式传输给您的调用方。
The response is of type file.