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");API per generare report PDF KYC e KYB
Genera con Didit report PDF di compliance KYC o KYB tramite GET /v3/session//generate-pdf/. White label, pronti per audit, prezzi a consumo.
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");Supporto KYC e KYB
Funziona sia per le sessioni di Verifica degli utenti (KYC) sia per quelle di Verifica aziendale (KYB). Didit sceglie automaticamente il modello PDF appropriato:- Sessione di Verifica degli utenti (KYC) → report con verifica dell’identità, rilevamento della vitalità, confronto facciale, AML, sezioni POA.
- Sessione di Verifica aziendale (KYB) → report con registro delle imprese, persone chiave (UBO/amministratori), documenti, AML, questionario, telefono, email e sezioni di analisi IP, quando queste funzionalità fanno parte del workflow.
Convenzione per il nome del file
| Tipo | Nome del file |
|---|---|
| Utente | session_<session_id>.pdf |
| Azienda | business_<session_id>.pdf |
Content-Disposition: attachment; filename=....
Requisito di stato
La sessione deve trovarsi inAPPROVED, DECLINED o IN_REVIEW per generare un PDF. Le sessioni in corso o non ancora avviate restituiscono 403.
Esempi
- PDF di Verifica degli utenti (KYC)
- PDF di Verifica aziendale (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
Quando per l’applicazione è attiva la personalizzazione White label, il PDF usa il tuo logo e l’URL dell’informativa sulla privacy. Configurala in Console → Customization.Permesso
Richiederead:sessions. Stessa autorizzazione per entrambi i tipi.
Correlati
- Panoramica delle sessioni
- Recupero della sessione — versione JSON della stessa decisione
- Scarica il PDF della cronologia utente — tutte le sessioni di un utente incluse nei report
- Schema della risposta KYB — campi inclusi nei PDF aziendali
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 degli utenti (KYC) o Verifica aziendale (KYB) da visualizzare — il session_id restituito da POST /v3/session/. Lo stesso percorso funziona per entrambi i tipi di sessione; usa il nome file nell'intestazione Content-Disposition della risposta per verificare quale tipo di report hai ricevuto.
Deve essere un UUID ben formato e in caratteri minuscoli. Il percorso accetta solo UUID validi, quindi un valore non corretto viene rifiutato dal router degli URL prima che venga eseguito il codice dell'applicazione e la risposta è una pagina HTML 404 invece dell'envelope JSON {"detail": ...} mostrato sotto. Il convertitore di UUID del percorso accetta solo il formato canonico in minuscolo — gli UUID esadecimali in maiuscolo vengono rifiutati con l'errore HTML 404.
"11111111-2222-3333-4444-555555555555"
Risposta
Il documento PDF renderizzato, restituito direttamente come binario application/pdf — non sono presenti wrapper JSON né reindirizzamenti tramite URL di download. Il corpo inizia con i byte magici %PDF (PDF 1.7). Salvalo in un file .pdf o trasmettilo in streaming al tuo chiamante.
The response is of type file.