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");"<string>"API генерации PDF: отчёты KYC и KYB для комплаенса
Didit: GET /v3/session//generate-pdf/ скачивает брендированный KYC- или KYB-отчёт. White label, готов к аудиту, оплата за использование.
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");"<string>"Поддержка 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=....
Требование к статусу
Чтобы сгенерировать PDF, сессия должна находиться в статусеAPPROVED, DECLINED или IN_REVIEW. Сессии в процессе выполнения или ещё не начатые возвращают 403.
Примеры
- PDF проверки пользователей (KYC)
- PDF верификации бизнеса (KYB)
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
White label
Если для приложения включена кастомизация White label, в PDF используются ваш логотип и URL политики конфиденциальности. Настраивается в Console → Customization.Разрешение
Требуетсяread:sessions. Для обоих типов используется одна и та же область доступа.
Связанные материалы
- Обзор сессий
- Получение сессии: JSON-версия того же решения
- Скачать PDF истории пользователя: все подлежащие отчёту сессии одного пользователя в одном файле
- Схема ответа KYB: поля, включённые в PDF для бизнеса
Авторизации
API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в Business Console. Основной ключ имеет полный доступ. Именованный ключ может иметь ограниченную область действия: без доступа, чтение или запись для каждого ресурса, ограничение определенными сценариями или одобренными сессиями, списком IP-адресов и сроком действия. 401 означает, что ключ неверен, отозван или его срок действия истек; 403 означает, что ключ не был передан, у ключа нет доступа к этому ресурсу или действию, либо запрос поступил с адреса вне его списка IP-адресов; 404 на маршруте сессии означает, что сессия не входит в сценарии или статусы ключа. Ключ без доступа к медиа получает URL изображений, видео и PDF как null, а ключ без прав на запись сессий получает ссылки на сессии и токены как null. См. https://docs.didit.me/console/api-keys.
Параметры пути
UUID сессии Проверки пользователей (KYC) или Верификации бизнеса (KYB) для отображения — session_id, возвращаемый методом POST /v3/session/. Один и тот же путь подходит для обоих типов сессий; используйте имя файла в заголовке Content-Disposition ответа, чтобы определить полученный тип отчёта.
Должен быть корректно сформированным UUID в нижнем регистре. Маршрут сопоставляется только с валидными UUID, поэтому некорректное значение отклоняется маршрутизатором URL ещё до выполнения кода приложения, и ответом будет HTML-страница 404, а не оболочка 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.