from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.create_kyb_party_draft(
"33333333-4444-5555-6666-777777777777",
entity_type="person",
first_name="Ana",
last_name="Lopez",
roles=["ubo", "director"],
date_of_birth="1984-06-12",
email="ana.lopez@example.com",
ownership_percent=60.0,
nationality="MEX",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.createKybPartyDraft("33333333-4444-5555-6666-777777777777", {
entity_type: "person",
first_name: "Ana",
last_name: "Lopez",
roles: ["ubo", "director"],
date_of_birth: "1984-06-12",
email: "ana.lopez@example.com",
ownership_percent: 60.0,
nationality: "MEX",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.CreateKYBPartyDraft(ctx, "33333333-4444-5555-6666-777777777777", didit.SessionsCreateKYBPartyDraftParams{
EntityType: "person",
FirstName: didit.String("Ana"),
LastName: didit.String("Lopez"),
Roles: didit.Some([]didit.SessionsCreateKYBPartyDraftParamsRoles{"ubo", "director"}),
DateOfBirth: didit.String("1984-06-12"),
Email: didit.String("ana.lopez@example.com"),
OwnershipPercent: didit.Float(60.0),
Nationality: "MEX",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.SessionsCreateKybPartyDraftParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().createKybPartyDraft("33333333-4444-5555-6666-777777777777", SessionsCreateKybPartyDraftParams.builder()
.entityType(SessionsCreateKybPartyDraftParams.EntityType.of("person"))
.firstName("Ana")
.lastName("Lopez")
.roles(List.of(SessionsCreateKybPartyDraftParams.Roles.of("ubo"), SessionsCreateKybPartyDraftParams.Roles.of("director")))
.dateOfBirth(LocalDate.parse("1984-06-12"))
.email("ana.lopez@example.com")
.ownershipPercent(60.0)
.nationality("MEX")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->createKybPartyDraft('33333333-4444-5555-6666-777777777777', [
'entity_type' => 'person',
'first_name' => 'Ana',
'last_name' => 'Lopez',
'roles' => ['ubo', 'director'],
'date_of_birth' => '1984-06-12',
'email' => 'ana.lopez@example.com',
'ownership_percent' => 60.0,
'nationality' => 'MEX',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.create_kyb_party_draft(
"33333333-4444-5555-6666-777777777777",
entity_type: "person",
first_name: "Ana",
last_name: "Lopez",
roles: ["ubo", "director"],
date_of_birth: "1984-06-12",
email: "ana.lopez@example.com",
ownership_percent: 60.0,
nationality: "MEX"
)
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.CreateKybPartyDraftAsync("33333333-4444-5555-6666-777777777777", new SessionsCreateKybPartyDraftParams
{
EntityType = "person",
FirstName = "Ana",
LastName = "Lopez",
Roles = new SessionsCreateKybPartyDraftParamsRoles[] { "ubo", "director" },
DateOfBirth = "1984-06-12",
Email = "ana.lopez@example.com",
OwnershipPercent = 60.0,
Nationality = "MEX",
});
Console.WriteLine(JsonSerializer.Serialize(result));curl --request POST \
--url https://verification.didit.me/v3/session/{sessionId}/kyb/parties/drafts/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"entity_type": "person",
"first_name": "Ana",
"last_name": "Lopez",
"roles": [
"ubo",
"director"
],
"ownership_percent": 60,
"nationality": "MEX",
"email": "ana.lopez@example.com",
"date_of_birth": "1984-06-12"
}
'{
"draft_id": "5b0d7a52-9d3e-4f0c-8c6a-0e5f3a1b2c4d",
"created_at": "2026-10-31T10:00:00Z",
"updated_at": "2026-10-31T10:00:00Z",
"party": {
"entity_type": "person",
"first_name": "Ana",
"last_name": "Lopez",
"roles": [
"ubo",
"director"
],
"ownership_percent": 60,
"nationality": "MEX",
"email": "ana.lopez@example.com",
"date_of_birth": "1984-06-12"
}
}Создание черновика KYB-участника через API
Didit позволяет добавить лицо или компанию в список ключевых лиц KYB-сессии без её объявления, то есть до того, как сессия объявлена.
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.create_kyb_party_draft(
"33333333-4444-5555-6666-777777777777",
entity_type="person",
first_name="Ana",
last_name="Lopez",
roles=["ubo", "director"],
date_of_birth="1984-06-12",
email="ana.lopez@example.com",
ownership_percent=60.0,
nationality="MEX",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.createKybPartyDraft("33333333-4444-5555-6666-777777777777", {
entity_type: "person",
first_name: "Ana",
last_name: "Lopez",
roles: ["ubo", "director"],
date_of_birth: "1984-06-12",
email: "ana.lopez@example.com",
ownership_percent: 60.0,
nationality: "MEX",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.CreateKYBPartyDraft(ctx, "33333333-4444-5555-6666-777777777777", didit.SessionsCreateKYBPartyDraftParams{
EntityType: "person",
FirstName: didit.String("Ana"),
LastName: didit.String("Lopez"),
Roles: didit.Some([]didit.SessionsCreateKYBPartyDraftParamsRoles{"ubo", "director"}),
DateOfBirth: didit.String("1984-06-12"),
Email: didit.String("ana.lopez@example.com"),
OwnershipPercent: didit.Float(60.0),
Nationality: "MEX",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.time.LocalDate;
import java.util.List;
import me.didit.Didit;
import me.didit.types.SessionsCreateKybPartyDraftParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().createKybPartyDraft("33333333-4444-5555-6666-777777777777", SessionsCreateKybPartyDraftParams.builder()
.entityType(SessionsCreateKybPartyDraftParams.EntityType.of("person"))
.firstName("Ana")
.lastName("Lopez")
.roles(List.of(SessionsCreateKybPartyDraftParams.Roles.of("ubo"), SessionsCreateKybPartyDraftParams.Roles.of("director")))
.dateOfBirth(LocalDate.parse("1984-06-12"))
.email("ana.lopez@example.com")
.ownershipPercent(60.0)
.nationality("MEX")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->createKybPartyDraft('33333333-4444-5555-6666-777777777777', [
'entity_type' => 'person',
'first_name' => 'Ana',
'last_name' => 'Lopez',
'roles' => ['ubo', 'director'],
'date_of_birth' => '1984-06-12',
'email' => 'ana.lopez@example.com',
'ownership_percent' => 60.0,
'nationality' => 'MEX',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.create_kyb_party_draft(
"33333333-4444-5555-6666-777777777777",
entity_type: "person",
first_name: "Ana",
last_name: "Lopez",
roles: ["ubo", "director"],
date_of_birth: "1984-06-12",
email: "ana.lopez@example.com",
ownership_percent: 60.0,
nationality: "MEX"
)
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.CreateKybPartyDraftAsync("33333333-4444-5555-6666-777777777777", new SessionsCreateKybPartyDraftParams
{
EntityType = "person",
FirstName = "Ana",
LastName = "Lopez",
Roles = new SessionsCreateKybPartyDraftParamsRoles[] { "ubo", "director" },
DateOfBirth = "1984-06-12",
Email = "ana.lopez@example.com",
OwnershipPercent = 60.0,
Nationality = "MEX",
});
Console.WriteLine(JsonSerializer.Serialize(result));curl --request POST \
--url https://verification.didit.me/v3/session/{sessionId}/kyb/parties/drafts/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"entity_type": "person",
"first_name": "Ana",
"last_name": "Lopez",
"roles": [
"ubo",
"director"
],
"ownership_percent": 60,
"nationality": "MEX",
"email": "ana.lopez@example.com",
"date_of_birth": "1984-06-12"
}
'{
"draft_id": "5b0d7a52-9d3e-4f0c-8c6a-0e5f3a1b2c4d",
"created_at": "2026-10-31T10:00:00Z",
"updated_at": "2026-10-31T10:00:00Z",
"party": {
"entity_type": "person",
"first_name": "Ana",
"last_name": "Lopez",
"roles": [
"ubo",
"director"
],
"ownership_percent": 60,
"nationality": "MEX",
"email": "ana.lopez@example.com",
"date_of_birth": "1984-06-12"
}
}Авторизации
API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в Business Console. Основной ключ имеет полный доступ. Именованный ключ может иметь ограниченную область действия: без доступа, чтение или запись для каждого ресурса, ограничение определенными сценариями или одобренными сессиями, списком IP-адресов и сроком действия. 401 означает, что ключ неверен, отозван или его срок действия истек; 403 означает, что ключ не был передан, у ключа нет доступа к этому ресурсу или действию, либо запрос поступил с адреса вне его списка IP-адресов; 404 на маршруте сессии означает, что сессия не входит в сценарии или статусы ключа. Ключ без доступа к медиа получает URL изображений, видео и PDF как null, а ключ без прав на запись сессий получает ссылки на сессии и токены как null. См. https://docs.didit.me/console/api-keys.
Параметры пути
UUID сессии Верификации бизнеса (KYB). Он должен принадлежать приложению используемого API-ключа.
"33333333-4444-5555-6666-777777777777"
Параметры запроса
Узел сценария для шага KYB. Требуется, только если в сценарии несколько KYB-узлов; по умолчанию Didit использует собственный узел сессии.
Тело
Является ли сторона физическим лицом или компанией.
person, company Гражданство физического лица или страна регистрации компании. Обязательно для каждой стороны.
100Полное имя человека. Передайте его либо first_name и last_name.
255128128Роль стороны. Взаимозаменяема с roles; если переданы оба параметра, они объединяются.
director, non_executive_director, secretary, chairman, ubo, shareholder, representative, founder, legal_advisor, authorized_signatory, trustee, beneficiary, settlor, protector, company_officer, investor, other Каждая роль, которую занимает сторона. У физического лица должна быть как минимум одна роль (здесь или в role).
director, non_executive_director, secretary, chairman, ubo, shareholder, representative, founder, legal_advisor, authorized_signatory, trustee, beneficiary, settlor, protector, company_officer, investor, other Должность лица.
128Название участника компании. Обязательно, если entity_type имеет значение company.
255Регистрационный номер участника компании.
100Куда отправляется ссылка на верификацию. Обязательно, если стороне необходимо пройти верификацию, что зависит от настроек ролей и порогов структуры владения в сценарии.
Доля в компании, принадлежащая стороне.
32Дополнительные поля, определённые сценарием.
Запросить пропуск верификации этой стороны. Учитывается только тогда, когда роль стороны позволяет пропуск в настройках «Ключевые лица» сценария.