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 KYB per creare una bozza di persone chiave
Aggiungi una persona o un’azienda all’elenco delle persone chiave di una sessione KYB senza dichiararla ancora, con Didit.
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"
}
}Autorizzazioni
La chiave API della tua applicazione, da Developers -> API keys nella Business Console. La chiave primaria ha accesso completo. Una chiave con nome può avere un ambito definito: nessuno, lettura o scrittura per risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco di indirizzi IP e a una data di scadenza. 401 indica che la chiave è errata, revocata o scaduta; 403 indica che non è stata inviata alcuna chiave, che la chiave non ha accesso a questa risorsa o azione, oppure che la richiesta proviene da un indirizzo non incluso nel suo elenco IP; 404 su una route di sessione indica che la sessione non rientra nei workflow o negli stati previsti dalla chiave. Una chiave senza accesso ai media riceve gli URL di immagini, video e PDF come null, e una chiave senza permessi di scrittura sulle sessioni riceve link e token di sessione come null. Consulta https://docs.didit.me/console/api-keys.
Parametri del percorso
UUID della sessione di Verifica aziendale (KYB). Deve appartenere all'applicazione della chiave API.
"33333333-4444-5555-6666-777777777777"
Parametri della query
Nodo del workflow del passaggio KYB. Necessario solo quando il workflow contiene più di un nodo KYB; per impostazione predefinita Didit utilizza il nodo della sessione stessa.
Corpo
Indica se la parte è una persona fisica o un'azienda.
person, company Nazionalità di una persona fisica o paese di costituzione di un'azienda. Obbligatorio per ogni parte.
100Nome completo di una persona. Invia questo, oppure first_name e last_name.
255128128Ruolo ricoperto dalla parte. Intercambiabile con roles; quando vengono inviati entrambi, vengono uniti.
director, non_executive_director, secretary, chairman, ubo, shareholder, representative, founder, legal_advisor, authorized_signatory, trustee, beneficiary, settlor, protector, company_officer, investor, other Ogni ruolo ricoperto dal soggetto. Una persona deve avere almeno un ruolo (qui o in role).
director, non_executive_director, secretary, chairman, ubo, shareholder, representative, founder, legal_advisor, authorized_signatory, trustee, beneficiary, settlor, protector, company_officer, investor, other Qualifica professionale di una persona.
128Nome di una parte aziendale. Obbligatorio quando entity_type è company.
255Numero di registrazione di un soggetto aziendale.
100Dove viene inviato il link di verifica. Obbligatorio quando la parte deve completare la verifica, il che dipende dalle impostazioni del ruolo e dalle soglie dell'assetto proprietario del workflow.
Quota dell'azienda posseduta dal soggetto.
32Campi aggiuntivi definiti dal workflow.
Richiedi di saltare la verifica di questa parte. Applicato solo se il ruolo della parte consente di saltarla nelle impostazioni di Persone chiave del workflow.