# Records an audit-trail note only -- the session's status does NOT change.
curl -s -X POST https://verification.didit.me/v3/sessions/8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d/reviews/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"new_status": "In Review",
"comment": "Flagging for manual document re-check."
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.reviews.create(
"8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d",
new_status="In Review",
comment="Flagging for manual document re-check.",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.reviews.create("8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d", {
new_status: "In Review",
comment: "Flagging for manual document re-check.",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.Reviews.Create(ctx, "8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d", didit.SessionsReviewsCreateParams{
NewStatus: didit.Some(didit.SessionsReviewsCreateParamsNewStatus("In Review")),
Comment: didit.String("Flagging for manual document re-check."),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsReviewsCreateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().reviews().create("8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d", SessionsReviewsCreateParams.builder()
.newStatus(SessionsReviewsCreateParams.NewStatus.of("In Review"))
.comment("Flagging for manual document re-check.")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->reviews->create('8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d', [
'new_status' => 'In Review',
'comment' => 'Flagging for manual document re-check.',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.reviews.create(
"8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d",
new_status: "In Review",
comment: "Flagging for manual document re-check."
)
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.Reviews.CreateAsync("8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d", new SessionsReviewsCreateParams
{
NewStatus = new SessionsReviewsCreateParamsNewStatus("In Review"),
Comment = "Flagging for manual document re-check.",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"user": "Unknown",
"new_status": "In Review",
"comment": "Flagging for manual document re-check.",
"created_at": "2026-06-12T00:18:44.466537Z"
}إنشاء مراجعة الجلسة عبر API: المراجعة اليدوية لـ KYC
أرسل ملاحظة مراجعة يدوية أو تغيير حالة إلى جلسة تحقق في Didit. مراجعة امتثال برمجية وسجل تدقيق، بالدفع لكل استدعاء.
# Records an audit-trail note only -- the session's status does NOT change.
curl -s -X POST https://verification.didit.me/v3/sessions/8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d/reviews/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"new_status": "In Review",
"comment": "Flagging for manual document re-check."
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.reviews.create(
"8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d",
new_status="In Review",
comment="Flagging for manual document re-check.",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.reviews.create("8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d", {
new_status: "In Review",
comment: "Flagging for manual document re-check.",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.Reviews.Create(ctx, "8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d", didit.SessionsReviewsCreateParams{
NewStatus: didit.Some(didit.SessionsReviewsCreateParamsNewStatus("In Review")),
Comment: didit.String("Flagging for manual document re-check."),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.SessionsReviewsCreateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().reviews().create("8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d", SessionsReviewsCreateParams.builder()
.newStatus(SessionsReviewsCreateParams.NewStatus.of("In Review"))
.comment("Flagging for manual document re-check.")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->reviews->create('8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d', [
'new_status' => 'In Review',
'comment' => 'Flagging for manual document re-check.',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.reviews.create(
"8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d",
new_status: "In Review",
comment: "Flagging for manual document re-check."
)
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.Reviews.CreateAsync("8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d", new SessionsReviewsCreateParams
{
NewStatus = new SessionsReviewsCreateParamsNewStatus("In Review"),
Comment = "Flagging for manual document re-check.",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"user": "Unknown",
"new_status": "In Review",
"comment": "Flagging for manual document re-check.",
"created_at": "2026-06-12T00:18:44.466537Z"
}التفويضات
مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console. يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير 404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع https://docs.didit.me/console/api-keys.
الترويسات
يُضبط على application/json عند إرسال نص طلب بتنسيق JSON.
"application/json"
معلمات المسار
معرّف UUID لجلسة التحقق من المستخدمين (KYC). يجب أن تنتمي إلى التطبيق نفسه الخاص بمفتاح API — تُرجع معرّفات UUID من تطبيقات أخرى والجلسات المحذوفة ومعرّفات جلسات التحقق من الشركات (KYB) الرمز 404.
"8c2f3a14-7e9b-4d23-9e83-3f7d5e8a1c6d"
الجسم
تسمية حالة اختيارية لتسجيلها في المدخل. تقبل أي قيمة لحالة الجلسة، وهي حساسة لحالة الأحرف (يتم رفض "approved" برمز 400). تسجيل حالة هنا لا يغير الحالة الفعلية للجلسة — استخدم endpoint تحديث الحالة لذلك.
Not Started, In Progress, Approved, Declined, In Review, Expired, Abandoned, Kyc Expired, Resubmitted, Awaiting User "In Review"
ملاحظة اختيارية بنص حر (بدون حد مفروض للطول). يتم تخزينها حرفياً؛ لا تتم معالجة إشارات @email على هذا الـ endpoint.
"Flagging for manual document re-check."
الاستجابة
مُدخل مسجل في مسار التدقيق الخاص بالجلسة. تظل الجلسة نفسها دون تغيير — وتحتفظ status بقيمتها السابقة ولا يتم إرسال أي webhook. يظهر المُدخل الجديد أيضاً في أعلى GET …/reviews/ (مع actor_display: "Unknown").
اسم العرض لمؤلف الإدخال. دائماً "Unknown" للإدخالات التي تم إنشاؤها عبر هذا الـ endpoint، لأنه لا يسجل إسناد الإدخال إلى فاعل.
"Unknown"
تسمية الحالة المسجلة في المدخل، أو null إذا لم يتم إرسال أي منها. لا تتأثر الحالة الفعلية للجلسة.
Not Started, In Progress, Approved, Declined, In Review, Expired, Abandoned, Kyc Expired, Resubmitted, Awaiting User "In Review"
الملاحظة المسجّلة على المدخلة، أو null إذا لم يتم إرسال أي ملاحظة.
"Flagging for manual document re-check."
وقت كتابة المُدخل، بتنسيق ISO 8601 UTC.
"2026-06-12T00:18:44.466537Z"