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
Исправьте поля, которые 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-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в Business Console. Основной ключ имеет полный доступ. Именованный ключ может иметь ограниченную область действия: без доступа, чтение или запись для каждого ресурса, ограничение определенными сценариями или одобренными сессиями, списком IP-адресов и сроком действия. 401 означает, что ключ неверен, отозван или его срок действия истек; 403 означает, что ключ не был передан, у ключа нет доступа к этому ресурсу или действию, либо запрос поступил с адреса вне его списка IP-адресов; 404 на маршруте сессии означает, что сессия не входит в сценарии или статусы ключа. Ключ без доступа к медиа получает URL изображений, видео и PDF как null, а ключ без прав на запись сессий получает ссылки на сессии и токены как null. См. https://docs.didit.me/console/api-keys.
Параметры пути
UUID сессии верификации (session_id, возвращённый POST /v3/session/). Принимает ID сессий как Проверки пользователей (KYC), так и Верификации бизнеса (KYB): сервер сопоставляет ID для обоих типов сессий. Должен быть корректным UUID; некорректное значение не соответствует маршруту и возвращает HTML 404.
"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 Все извлечённые поля после объединения, с ключами, соответствующими ключам полей.