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"
}
}Mettre à jour les données Document AI via l'API
Corrigez les champs extraits par Didit d’un document Document AI, ou définissez son statut de revue, sur une session de vérification KYC ou KYB.
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"
}
}Autorisations
La clé API de votre application, issue de Développeurs -> Clés API dans la Business Console. La clé principale dispose d'un accès complet. Une clé nommée peut être restreinte : aucun, lecture ou écriture par ressource, limitée à certains workflows ou aux sessions approuvées, à une liste d'adresses IP et à une date d'expiration. 401 signifie que la clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a été envoyée, que la clé n'a pas accès à cette ressource ou action, ou que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur une route de session signifie que la session est hors des workflows ou des statuts de la clé. Une clé sans accès aux médias reçoit les URL d'images, de vidéos et de PDF à null, et une clé sans accès en écriture aux sessions reçoit les liens et tokens de session à null. Voir https://docs.didit.me/console/api-keys.
Paramètres de chemin
UUID de la session de vérification (le session_id renvoyé par POST /v3/session/). Accepte les identifiants de session de Vérification des utilisateurs (KYC) et de Vérification d'entreprise (KYB) : le serveur résout l'identifiant pour les deux types de session. Doit être un UUID bien formé ; une valeur malformée ne correspond pas à la route et renvoie une erreur HTML 404.
"11111111-2222-3333-4444-555555555555"
UUID du document Document AI (document_ai_documents[].items[].uuid dans GET /v3/session/{sessionId}/decision/). Il doit appartenir à la session présente dans le chemin.
"44444444-5555-6666-7777-888888888888"
Corps
Clés de champ (les clés que vous avez configurées pour le document) et leurs valeurs corrigées. Doit être un objet JSON ; fusionné clé par clé dans les données stockées. Omettez-le plutôt que d'envoyer null, qui renvoie un code 400.
{ "invoice_number": "INV-2026-0042" }
Nouveau statut d'examen du document.
Approved, Declined, In Review, Not Finished "Approved"
Réponse
Document mis à jour. Renvoie le document après la fusion.
Identifiant du document.
Le document configuré auquel correspond ce téléversement.
Nom de fichier avec lequel le document a été téléversé.
Chemin de stockage du fichier téléversé. Il ne s'agit pas d'un lien de téléchargement : lisez l'URL pré-signée file_url depuis la décision de session pour télécharger le fichier.
Statut d'examen du document.
Not Finished, Approved, Declined, In Review, Resub Requested Tous les champs extraits après la fusion, indexés par clé de champ.