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 para gerar PDF: relatórios de conformidade KYC e KYB
Use GET /v3/session//generate-pdf/ da Didit para baixar relatórios PDF de conformidade de sessões KYC ou KYB, white-label e auditáveis.
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");Suporte a KYC e KYB
Funciona tanto para sessões de Verificação de Usuário (KYC) quanto de Verificação de Empresas (KYB). A Didit direciona automaticamente cada sessão ao modelo de PDF adequado:- Sessão de Verificação de Usuário (KYC) → relatório com seções de verificação de identidade, prova de vida, correspondência facial, AML e comprovante de endereço.
- Sessão de Verificação de Empresas (KYB) → relatório com seções de registro de empresas, pessoas-chave (UBOs/administradores), documentos, AML, questionário, telefone, e-mail e análise de IP, quando esses recursos fazem parte do fluxo de verificação (workflow).
Convenção de nomes de arquivo
| Tipo | Nome do arquivo |
|---|---|
| Usuário | session_<session_id>.pdf |
| Empresa | business_<session_id>.pdf |
Content-Disposition: attachment; filename=....
Requisito de status
A sessão precisa estar emAPPROVED, DECLINED ou IN_REVIEW para gerar um PDF. Sessões em andamento ou não iniciadas retornam 403.
Exemplos
- PDF de Verificação de Usuário (KYC)
- PDF de Verificação de Empresas (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
Marca própria
Quando a aplicação tem a personalização de marca própria ativada, o PDF usa o seu logotipo e a URL da sua política de privacidade. Configure em Console → Customization.Permissão
Requerread:sessions. O mesmo escopo para os dois tipos.
Relacionados
- Visão geral das sessões
- Obter sessão: versão em JSON da mesma decisão
- Baixar PDF do histórico do usuário: todas as sessões reportáveis de um usuário em um único arquivo
- Esquema de resposta KYB: campos incluídos nos PDFs de empresas
Autorizações
Chave de API da sua aplicação, em Developers -> API keys no Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está errada, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que a requisição veio de um endereço fora da sua lista de IPs; 404 em uma rota de sessão significa que a sessão está fora dos fluxos ou status da chave. Uma chave sem acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave sem permissão de escrita em sessões recebe links e tokens de sessão como null. Consulte https://docs.didit.me/console/api-keys.
Parâmetros de caminho
UUID da sessão de Verificação de usuários (KYC) ou de Verificação de empresas (KYB) a ser renderizada: o session_id retornado por POST /v3/session/. O mesmo caminho funciona para os dois tipos de sessão; use o nome de arquivo do Content-Disposition na resposta para saber qual tipo de relatório você recebeu.
Deve ser um UUID bem formado e em letras minúsculas. A rota só corresponde a UUIDs válidos, então um valor malformado é rejeitado pelo roteador de URLs antes de qualquer código da aplicação ser executado, e a resposta é uma página HTML de 404 em vez do envelope JSON {"detail": ...} mostrado abaixo. O conversor de UUID da rota só corresponde à forma canônica em minúsculas: UUIDs com hexadecimais em maiúsculas são rejeitados com o 404 em HTML.
"11111111-2222-3333-4444-555555555555"
Resposta
O documento PDF renderizado, retornado diretamente como binário application/pdf: não há wrapper JSON nem indireção por URL de download. O corpo começa com os bytes mágicos %PDF (PDF 1.7). Salve-o em um arquivo .pdf ou transmita-o diretamente para quem fez a chamada.
The response is of type file.