curl -X PATCH 'https://verification.didit.me/v3/document-ai/11111111-2222-3333-4444-555555555555/documents/44444444-5555-6666-7777-888888888888/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"extracted_data": {"invoice_number": "INV-2026-0042"}, "status": "Approved"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.update_document_ai_data(
"11111111-2222-3333-4444-555555555555",
"44444444-5555-6666-7777-888888888888",
extracted_data={"invoice_number": "INV-2026-0042"},
status="Approved",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.updateDocumentAiData(
"11111111-2222-3333-4444-555555555555",
"44444444-5555-6666-7777-888888888888",
{
extracted_data: { invoice_number: "INV-2026-0042" },
status: "Approved",
},
);
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.UpdateDocumentAiData(ctx, "11111111-2222-3333-4444-555555555555", "44444444-5555-6666-7777-888888888888", didit.SessionsUpdateDocumentAiDataParams{
ExtractedData: didit.Some(map[string]any{"invoice_number": "INV-2026-0042"}),
Status: didit.Some(didit.SessionsUpdateDocumentAiDataParamsStatus("Approved")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.Map;
import me.didit.Didit;
import me.didit.types.SessionsUpdateDocumentAiDataParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().updateDocumentAiData("11111111-2222-3333-4444-555555555555", "44444444-5555-6666-7777-888888888888", SessionsUpdateDocumentAiDataParams.builder()
.extractedData(Map.of("invoice_number", "INV-2026-0042"))
.status(SessionsUpdateDocumentAiDataParams.Status.of("Approved"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->updateDocumentAiData('11111111-2222-3333-4444-555555555555', '44444444-5555-6666-7777-888888888888', [
'extracted_data' => ['invoice_number' => 'INV-2026-0042'],
'status' => 'Approved',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.update_document_ai_data(
"11111111-2222-3333-4444-555555555555",
"44444444-5555-6666-7777-888888888888",
extracted_data: { invoice_number: "INV-2026-0042" },
status: "Approved"
)
puts result.to_husing System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.UpdateDocumentAiDataAsync("11111111-2222-3333-4444-555555555555", "44444444-5555-6666-7777-888888888888", new SessionsUpdateDocumentAiDataParams
{
ExtractedData = new Dictionary<string, object> { ["invoice_number"] = "INV-2026-0042" },
Status = new SessionsUpdateDocumentAiDataParamsStatus("Approved"),
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "44444444-5555-6666-7777-888888888888",
"document_key": "invoice",
"original_filename": "invoice-2026-09.pdf",
"file_url": "document_ai/11111111-2222-3333-4444-555555555555-66666666-7777-8888-9999-000000000000.pdf",
"status": "Approved",
"extracted_data": {
"invoice_number": "INV-2026-0042",
"total_amount": 1250,
"issue_date": "2026-09-01"
}
}تحديث بيانات Document AI API
تصحيح الحقول التي استخرجها Didit من مستند Document AI، أو تعيين حالة مراجعته، داخل جلسة التحقق من نوع KYC أو KYB في Didit.
curl -X PATCH 'https://verification.didit.me/v3/document-ai/11111111-2222-3333-4444-555555555555/documents/44444444-5555-6666-7777-888888888888/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"extracted_data": {"invoice_number": "INV-2026-0042"}, "status": "Approved"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.update_document_ai_data(
"11111111-2222-3333-4444-555555555555",
"44444444-5555-6666-7777-888888888888",
extracted_data={"invoice_number": "INV-2026-0042"},
status="Approved",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.updateDocumentAiData(
"11111111-2222-3333-4444-555555555555",
"44444444-5555-6666-7777-888888888888",
{
extracted_data: { invoice_number: "INV-2026-0042" },
status: "Approved",
},
);
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.UpdateDocumentAiData(ctx, "11111111-2222-3333-4444-555555555555", "44444444-5555-6666-7777-888888888888", didit.SessionsUpdateDocumentAiDataParams{
ExtractedData: didit.Some(map[string]any{"invoice_number": "INV-2026-0042"}),
Status: didit.Some(didit.SessionsUpdateDocumentAiDataParamsStatus("Approved")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.Map;
import me.didit.Didit;
import me.didit.types.SessionsUpdateDocumentAiDataParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().updateDocumentAiData("11111111-2222-3333-4444-555555555555", "44444444-5555-6666-7777-888888888888", SessionsUpdateDocumentAiDataParams.builder()
.extractedData(Map.of("invoice_number", "INV-2026-0042"))
.status(SessionsUpdateDocumentAiDataParams.Status.of("Approved"))
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->updateDocumentAiData('11111111-2222-3333-4444-555555555555', '44444444-5555-6666-7777-888888888888', [
'extracted_data' => ['invoice_number' => 'INV-2026-0042'],
'status' => 'Approved',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.update_document_ai_data(
"11111111-2222-3333-4444-555555555555",
"44444444-5555-6666-7777-888888888888",
extracted_data: { invoice_number: "INV-2026-0042" },
status: "Approved"
)
puts result.to_husing System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.Sessions.UpdateDocumentAiDataAsync("11111111-2222-3333-4444-555555555555", "44444444-5555-6666-7777-888888888888", new SessionsUpdateDocumentAiDataParams
{
ExtractedData = new Dictionary<string, object> { ["invoice_number"] = "INV-2026-0042" },
Status = new SessionsUpdateDocumentAiDataParamsStatus("Approved"),
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "44444444-5555-6666-7777-888888888888",
"document_key": "invoice",
"original_filename": "invoice-2026-09.pdf",
"file_url": "document_ai/11111111-2222-3333-4444-555555555555-66666666-7777-8888-9999-000000000000.pdf",
"status": "Approved",
"extracted_data": {
"invoice_number": "INV-2026-0042",
"total_amount": 1250,
"issue_date": "2026-09-01"
}
}التفويضات
مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console. يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير 404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع https://docs.didit.me/console/api-keys.
معلمات المسار
معرّف UUID لجلسة التحقق (session_id الذي تم إرجاعه بواسطة POST /v3/session/). يقبل معرّفات جلسات التحقق من المستخدمين (KYC) والتحقق من الشركات (KYB): يطابق الخادم المعرّف عبر كلا نوعي الجلسات. يجب أن يكون UUID صالح البنية؛ تؤدي القيمة غير صالحة البنية إلى عدم مطابقة المسار وإرجاع 404 بتنسيق HTML.
"11111111-2222-3333-4444-555555555555"
معرّف UUID لمستند Document AI (document_ai_documents[].items[].uuid في GET /v3/session/{sessionId}/decision/). يجب أن ينتمي إلى الجلسة الموجودة في المسار.
"44444444-5555-6666-7777-888888888888"
الجسم
مفاتيح الحقول (المفاتيح التي قمت بتهيئتها للمستند) وقيمها المصححة. يجب أن تكون كائن JSON؛ وتُدمج مفتاحاً بمفتاح في البيانات المخزنة. لا تُرسلها بدلاً من إرسال null، حيث يؤدي ذلك إلى إرجاع 400.
{ "invoice_number": "INV-2026-0042" }
حالة المراجعة الجديدة للمستند.
Approved, Declined, In Review, Not Finished "Approved"
الاستجابة
تم تحديث المستند. يُرجع المستند بعد الدمج.
معرّف المستند.
المستند المُعَدّ الذي يتوافق معه هذا الرفع.
اسم الملف الذي رُفع به المستند.
مسار تخزين الملف المرفوع. هذا ليس رابط تنزيل: اقرأ file_url الموقّع مسبقاً من قرار الجلسة لتنزيل الملف.
حالة مراجعة المستند.
Not Finished, Approved, Declined, In Review, Resub Requested جميع الحقول المستخرجة بعد الدمج، مفهرسة حسب مفتاح الحقل.