curl -X POST 'https://verification.didit.me/v3/session/22222222-3333-4444-5555-666666666666/webhook/66666666-7777-8888-9999-000000000001/resend' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.webhooks.resend(
"22222222-3333-4444-5555-666666666666",
"66666666-7777-8888-9999-000000000001",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.webhooks.resend(
"22222222-3333-4444-5555-666666666666",
"66666666-7777-8888-9999-000000000001",
);
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.Webhooks.Resend(ctx, "22222222-3333-4444-5555-666666666666", "66666666-7777-8888-9999-000000000001")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().webhooks().resend("22222222-3333-4444-5555-666666666666", "66666666-7777-8888-9999-000000000001");
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->webhooks->resend('22222222-3333-4444-5555-666666666666', '66666666-7777-8888-9999-000000000001');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.webhooks.resend(
"22222222-3333-4444-5555-666666666666",
"66666666-7777-8888-9999-000000000001"
)
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.Webhooks.ResendAsync("22222222-3333-4444-5555-666666666666", "66666666-7777-8888-9999-000000000001");
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "66666666-7777-8888-9999-000000000004",
"session_id": "22222222-3333-4444-5555-666666666666",
"request_url": "https://yourapp.com/webhooks/didit",
"response_status": 200,
"status": "In Progress",
"webhook_type": "status.updated",
"request_header": "{\"Content-Type\": \"application/json\", \"X-Signature\": \"b8eb1e376517ee0cad8ba98ff7f8fd35fc72eca231000963a96a335f82328835\", \"X-Signature-V2\": \"9efd2ce9ed1303e1d05273ef9608a59363ed9789a05253db4748b3e8e50cb109\", \"X-Signature-Simple\": \"bf3a9dc04b2c20ab539203b0cd5cca2a10f630bf62d8feb6d68d82af80f64774\", \"X-Timestamp\": \"1792159542\", \"User-Agent\": \"DiditWebhook/2.0 +https://didit.me\"}",
"request_body": "{\"application_id\":\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\"created_at\":1792056057,\"environment\":\"live\",\"event_id\":\"33333333-4444-5555-6666-777777777777\",\"sandbox_scenario\":null,\"session_id\":\"22222222-3333-4444-5555-666666666666\",\"status\":\"In Progress\",\"timestamp\":1792159542,\"vendor_data\":\"user-123\",\"webhook_type\":\"status.updated\",\"workflow_id\":\"44444444-5555-6666-7777-888888888888\",\"workflow_version\":3}",
"created_at": "2026-10-16T14:05:42.330981Z"
}सत्र webhook डिलीवरी दोबारा भेजें API
Didit में रिकॉर्ड किया गया सत्र webhook उसी URL पर नए सिग्नेचर के साथ फिर से भेजें और नई डिलीवरी में अपने endpoint का रिस्पॉन्स पाएँ।
curl -X POST 'https://verification.didit.me/v3/session/22222222-3333-4444-5555-666666666666/webhook/66666666-7777-8888-9999-000000000001/resend' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.sessions.webhooks.resend(
"22222222-3333-4444-5555-666666666666",
"66666666-7777-8888-9999-000000000001",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.sessions.webhooks.resend(
"22222222-3333-4444-5555-666666666666",
"66666666-7777-8888-9999-000000000001",
);
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Sessions.Webhooks.Resend(ctx, "22222222-3333-4444-5555-666666666666", "66666666-7777-8888-9999-000000000001")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.sessions().webhooks().resend("22222222-3333-4444-5555-666666666666", "66666666-7777-8888-9999-000000000001");
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->sessions->webhooks->resend('22222222-3333-4444-5555-666666666666', '66666666-7777-8888-9999-000000000001');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.sessions.webhooks.resend(
"22222222-3333-4444-5555-666666666666",
"66666666-7777-8888-9999-000000000001"
)
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.Webhooks.ResendAsync("22222222-3333-4444-5555-666666666666", "66666666-7777-8888-9999-000000000001");
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "66666666-7777-8888-9999-000000000004",
"session_id": "22222222-3333-4444-5555-666666666666",
"request_url": "https://yourapp.com/webhooks/didit",
"response_status": 200,
"status": "In Progress",
"webhook_type": "status.updated",
"request_header": "{\"Content-Type\": \"application/json\", \"X-Signature\": \"b8eb1e376517ee0cad8ba98ff7f8fd35fc72eca231000963a96a335f82328835\", \"X-Signature-V2\": \"9efd2ce9ed1303e1d05273ef9608a59363ed9789a05253db4748b3e8e50cb109\", \"X-Signature-Simple\": \"bf3a9dc04b2c20ab539203b0cd5cca2a10f630bf62d8feb6d68d82af80f64774\", \"X-Timestamp\": \"1792159542\", \"User-Agent\": \"DiditWebhook/2.0 +https://didit.me\"}",
"request_body": "{\"application_id\":\"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee\",\"created_at\":1792056057,\"environment\":\"live\",\"event_id\":\"33333333-4444-5555-6666-777777777777\",\"sandbox_scenario\":null,\"session_id\":\"22222222-3333-4444-5555-666666666666\",\"status\":\"In Progress\",\"timestamp\":1792159542,\"vendor_data\":\"user-123\",\"webhook_type\":\"status.updated\",\"workflow_id\":\"44444444-5555-6666-7777-888888888888\",\"workflow_version\":3}",
"created_at": "2026-10-16T14:05:42.330981Z"
}event_id बनाए रखता है, इसलिए जो प्राप्तकर्ता event_id पर डुप्लिकेट हटाता है, वह पुनः भेजे गए इवेंट को उस इवेंट के रूप में लेता है जिसे वह पहले से जानता है।प्राधिकरण
आपकी एप्लिकेशन की API कुंजी, Business Console में Developers -> API keys से। प्राथमिक कुंजी के पास पूर्ण एक्सेस होता है। एक नामित कुंजी को स्कोप किया जा सकता है: प्रति संसाधन none, read या write, कुछ वर्कफ़्लो या स्वीकृत सत्रों तक सीमित, IP पतों की सूची तक सीमित, और समाप्ति तिथि तक सीमित। 401 का अर्थ है कि कुंजी गलत है, निरस्त कर दी गई है या उसकी समय-सीमा समाप्त हो गई है; 403 का अर्थ है कि कोई कुंजी नहीं भेजी गई थी, कुंजी के पास इस संसाधन या कार्रवाई का एक्सेस नहीं है, या अनुरोध उसकी IP सूची से बाहर के पते से आया था; सत्र रूट पर 404 का अर्थ है कि सत्र कुंजी के वर्कफ़्लो या स्थितियों से बाहर है। मीडिया एक्सेस के बिना एक कुंजी को छवि, वीडियो और PDF URL null के रूप में प्राप्त होते हैं, और सत्र write के बिना एक कुंजी को सत्र लिंक और token null के रूप में प्राप्त होते हैं। देखें https://docs.didit.me/console/api-keys।
पथ पैरामीटर
सत्यापन सत्र का UUID, उपयोगकर्ता (KYC) या व्यवसाय (KYB): POST /v3/session/ द्वारा लौटाया गया session_id। सर्वर इसे दोनों सत्र प्रकारों में रिज़ॉल्व करता है।
एक मान्य UUID होना चाहिए। यह रूट केवल सही प्रारूप वाले UUID से मेल खाता है, इसलिए किसी भी एप्लिकेशन कोड के चलने से पहले URL राउटर द्वारा गलत प्रारूप वाले मान को अस्वीकार कर दिया जाता है और रिस्पॉन्स नीचे दिखाए गए JSON {"detail": ...} एनवलप के बजाय 404 HTML पेज होता है।
पुनः भेजी जाने वाली डिलीवरी का UUID: GET /v3/session/{sessionId}/webhooks/ द्वारा लौटाई गई किसी प्रविष्टि का uuid। यह पाथ के सत्र से संबंधित होना चाहिए।
प्रतिक्रिया
नई डिलीवरी, जिसका पहले ही प्रयास किया जा चुका है। response_status वह है जो आपके endpoint ने इस बार उत्तर दिया। मूल डिलीवरी अपरिवर्तित रहती है।
सत्यापन सत्र के लिए रिकॉर्ड किया गया एक webhook डिलीवरी प्रयास, जिसमें Didit द्वारा भेजे गए सटीक अनुरोध हेडर और बॉडी शामिल हैं।
डिलीवरी ID। इस डिलीवरी को प्राप्त करने या पुनः भेजने के लिए इसे {webhook_uuid} के रूप में उपयोग करें।
वह सत्र जिससे डिलीवरी संबंधित है (पाथ में दिया गया सत्र)।
वह URL जिस पर डिलीवरी भेजी गई थी।
आपके endpoint द्वारा लौटाया गया HTTP स्टेटस। जब डिलीवरी कतार में हो और अभी तक प्रयास न किया गया हो तो null। जब कोई HTTP उत्तर प्राप्त नहीं हुआ, तो Didit अपनी स्वयं की स्थिति दर्ज करता है: जब आपके endpoint ने 5 सेकंड के भीतर उत्तर नहीं दिया तो 504, कनेक्शन विफलता के लिए 503, जब URL को असुरक्षित (उदाहरण के लिए एक निजी या आंतरिक पता) के रूप में अस्वीकार कर दिया गया था तो 400, और किसी भी अन्य अनुरोध त्रुटि के लिए 404। 400 या उससे अधिक को विफल डिलीवरी माना जाता है।
इवेंट जनरेट होने पर सत्र की स्थिति, उदाहरण के लिए In Progress, Approved या Declined।
समर्थित webhook इवेंट का नाम। subscribed_events में इन सटीक स्ट्रिंग्स का उपयोग करें; असमर्थित मान अस्वीकृत कर दिए जाते हैं।
status.updated, data.updated, user.status.updated, user.data.updated, business.status.updated, business.data.updated, activity.created, transaction.created, transaction.status.updated, travel_rule.status.updated, workflow.compliance_changed, transaction_rule_suggestions.created, auth.signup, auth.login, auth.login_failed, auth.password_reset_requested, auth.password_reset_completed, auth.mfa_changed, auth.new_device, auth.account_locked, investigator.report.ready, investigator.decision.automated, investigator.decision.overridden, investigator.decision.contested, investigator.question.raised, investigator.automation.paused, investigator.rfi.answered, investigator.rfi.overdue, investigator.drift.detected, investigator.sla.breached, investigator.qa.failed, investigator.external.report.ready Didit द्वारा भेजे गए अनुरोध हेडर का JSON टेक्स्ट (एक स्ट्रिंग): Content-Type, X-Signature, X-Signature-V2, X-Signature-Simple, X-Timestamp और User-Agent। इसे JSON पार्सर से पार्स करें। इसमें हस्ताक्षर होते हैं, लेकिन साइनिंग सीक्रेट कभी नहीं होता।
Didit द्वारा भेजे गए सटीक payload का JSON टेक्स्ट (एक स्ट्रिंग), कुंजियाँ सॉर्ट की गई हैं, जिसमें event_id और timestamp शामिल हैं। इसे JSON पार्सर से पार्स करें; Payload shape देखें। बिना media: read वाली स्कोप्ड कुंजी के लिए, इसके अंदर मीडिया URL null होते हैं; बिना sessions: write के, सत्र token और होस्टेड सत्यापन लिंक null होते हैं। इस तरह बदली गई बॉडी अब अपने हस्ताक्षरों से मेल नहीं खाती है। Didit आपके endpoint द्वारा लौटाए गए रिस्पॉन्स बॉडी को रिकॉर्ड नहीं करता है।
जब डिलीवरी बनाई गई थी।