curl --request GET \
--url https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents \
--header 'x-blaaiz-api-key: <api-key>'import requests
url = "https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents"
headers = {"x-blaaiz-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-blaaiz-api-key': '<api-key>'}};
fetch('https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-blaaiz-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-blaaiz-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"message": "Session documents retrieved successfully.",
"data": [
{
"id": "sumsub:901",
"kind": "DOCUMENT",
"document_type": "PASSPORT",
"document_side": "FRONT_SIDE",
"content_type": "image/jpeg",
"available": true,
"unavailable_reason": null
},
{
"id": "sumsub:904",
"kind": "SELFIE",
"document_type": null,
"document_side": null,
"content_type": "image/jpeg",
"available": true,
"unavailable_reason": null
},
{
"id": "sumsub:889",
"kind": "LIVENESS_REFERENCE",
"document_type": null,
"document_side": null,
"content_type": "image/jpeg",
"available": false,
"unavailable_reason": "NOT_RETAINED"
}
]
}{
"message": "Invalid or missing access token"
}{
"message": "The MERCHANT_KYC feature is not enabled for this business."
}{
"message": "Verification session not found."
}{
"message": "This session has not been approved or rejected yet."
}{
"message": "Something went wrong. Quote the request_id in a support ticket."
}List session documents
List the documents captured during one session: identity documents, the selfie, the proof of address, and the liveness reference, in whatever order the provider returns them. Use each item’s id as the documentId on the document download endpoint. The session must be APPROVED or REJECTED; call this only after the session reaches one of those statuses. available: false means the image can no longer be downloaded; unavailable_reason explains why, and is NOT_RETAINED when the storage lifecycle policy already deleted it (liveness reference images are deleted 30 days after capture).
This endpoint needs both the MERCHANT_KYC business entitlement and the compliance-kyc:pii:read scope; a legacy API key carries no scopes, so only the entitlement applies to key-based requests. Every response carries Cache-Control: no-store, and the response body is excluded from your API request logs.
curl --request GET \
--url https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents \
--header 'x-blaaiz-api-key: <api-key>'import requests
url = "https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents"
headers = {"x-blaaiz-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-blaaiz-api-key': '<api-key>'}};
fetch('https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-blaaiz-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-prod.blaaiz.com/api/external/compliance/kyc/sessions/{sessionId}/documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-blaaiz-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"message": "Session documents retrieved successfully.",
"data": [
{
"id": "sumsub:901",
"kind": "DOCUMENT",
"document_type": "PASSPORT",
"document_side": "FRONT_SIDE",
"content_type": "image/jpeg",
"available": true,
"unavailable_reason": null
},
{
"id": "sumsub:904",
"kind": "SELFIE",
"document_type": null,
"document_side": null,
"content_type": "image/jpeg",
"available": true,
"unavailable_reason": null
},
{
"id": "sumsub:889",
"kind": "LIVENESS_REFERENCE",
"document_type": null,
"document_side": null,
"content_type": "image/jpeg",
"available": false,
"unavailable_reason": "NOT_RETAINED"
}
]
}{
"message": "Invalid or missing access token"
}{
"message": "The MERCHANT_KYC feature is not enabled for this business."
}{
"message": "Verification session not found."
}{
"message": "This session has not been approved or rejected yet."
}{
"message": "Something went wrong. Quote the request_id in a support ticket."
}Authorizations
A legacy API key has no scopes, so only the MERCHANT_KYC entitlement gates this endpoint for key-based requests.
Path Parameters
The verification session id returned by the create endpoint.
Was this page helpful?