Skip to main content
GET
/
v3
/
session
/
{sessionId}
/
generate-pdf
cURL
curl --fail \
  https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/generate-pdf/ \
  -H 'x-api-key: YOUR_API_KEY' \
  --output report.pdf
"<string>"

KYC and KYB support

Works for both User Verification (KYC) and Business Verification (KYB) sessions. Didit routes to the appropriate PDF template automatically:
  • User Verification (KYC) session → report with ID verification, liveness, face match, AML, POA sections.
  • Business Verification (KYB) session → report with company registry, key people (UBOs/officers), documents, AML, questionnaire, phone, email, and IP analysis sections when those features are part of the workflow.
Both use the same PDF generation pipeline and support white-label customization (logo, privacy policy URL).

Filename convention

KindFilename
Usersession_<session_id>.pdf
Businessbusiness_<session_id>.pdf
Returned via the Content-Disposition: attachment; filename=... header.

Status requirement

The session must be in APPROVED, DECLINED, or IN_REVIEW to generate a PDF. In-progress or not-started sessions return 403.

Examples

curl https://verification.didit.me/v3/session/4c5c7f3a-.../generate-pdf \
  -H "x-api-key: YOUR_API_KEY" \
  -o kyc-report.pdf

White-label

When the application has white-label customization enabled, the PDF uses your logo and privacy-policy URL. Configure at Console → Customization.

Permission

Requires read:sessions. Same scope for both kinds.

Authorizations

x-api-key
string
header
required

Path Parameters

sessionId
string<uuid>
required

UUID of the User Verification (KYC) or Business Verification (KYB) session to render — the session_id returned by POST /v3/session/. The same path works for both session kinds; use the Content-Disposition filename on the response to tell which report type you received.

Must be a well-formed, lowercase UUID. The route only matches valid UUIDs, so a malformed value is rejected by the URL router before any application code runs and the response is a 404 HTML page rather than the JSON {"detail": ...} envelope shown below. The route's UUID converter only matches the canonical lowercase form — uppercase-hex UUIDs are rejected with the HTML 404.

Example:

"11111111-2222-3333-4444-555555555555"

Response

The rendered PDF document, returned directly as binary application/pdf — there is no JSON wrapper and no download-URL indirection. The body starts with the %PDF magic bytes (PDF 1.7). Save it to a .pdf file or stream it through to your caller.

The response is of type file.