curl -X GET 'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/deliveries/66666666-7777-8888-9999-000000000001/' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.webhooks.destinations.retrieve_delivery(
"11111111-2222-3333-4444-555555555555",
"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.webhooks.destinations.retrieveDelivery(
"11111111-2222-3333-4444-555555555555",
"66666666-7777-8888-9999-000000000001",
);
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Webhooks.Destinations.RetrieveDelivery(ctx, "11111111-2222-3333-4444-555555555555", "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.webhooks().destinations().retrieveDelivery("11111111-2222-3333-4444-555555555555", "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->webhooks->destinations->retrieveDelivery('11111111-2222-3333-4444-555555555555', '66666666-7777-8888-9999-000000000001');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.webhooks.destinations.retrieve_delivery(
"11111111-2222-3333-4444-555555555555",
"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.Webhooks.Destinations.RetrieveDeliveryAsync("11111111-2222-3333-4444-555555555555", "66666666-7777-8888-9999-000000000001");
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "66666666-7777-8888-9999-000000000001",
"session_id": "22222222-3333-4444-5555-666666666666",
"request_url": "https://yourapp.com/webhooks/didit",
"response_status": 503,
"response_time_ms": 412,
"status": "In Progress",
"webhook_type": "status.updated",
"created_at": "2026-10-15T09:21:18.412345Z",
"request_header": "{\"Content-Type\": \"application/json\", \"X-Signature\": \"a5e02a03404e1337a0198e6be15d34abbd053c658a0e51e5d0e78554213ef29b\", \"X-Signature-V2\": \"927e7cb770c94ce745939bff73f04aa200015f3bc64795ba46c2aaf78a6cedc5\", \"X-Signature-Simple\": \"e37b0d4c716c72bb5ae7127b9cc455d28ab4686e9e22312b4ec2327409a73302\", \"X-Timestamp\": \"1792056078\", \"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\":1792056078,\"vendor_data\":\"user-123\",\"webhook_type\":\"status.updated\",\"workflow_id\":\"44444444-5555-6666-7777-888888888888\",\"workflow_version\":3}"
}webhook डिलीवरी प्राप्त करें API
Didit द्वारा भेजे गए सटीक signature headers और JSON payload के साथ एक webhook डिलीवरी प्रयास पढ़ें, साथ में आपके endpoint द्वारा लौटाया गया status code भी।
curl -X GET 'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/deliveries/66666666-7777-8888-9999-000000000001/' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.webhooks.destinations.retrieve_delivery(
"11111111-2222-3333-4444-555555555555",
"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.webhooks.destinations.retrieveDelivery(
"11111111-2222-3333-4444-555555555555",
"66666666-7777-8888-9999-000000000001",
);
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Webhooks.Destinations.RetrieveDelivery(ctx, "11111111-2222-3333-4444-555555555555", "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.webhooks().destinations().retrieveDelivery("11111111-2222-3333-4444-555555555555", "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->webhooks->destinations->retrieveDelivery('11111111-2222-3333-4444-555555555555', '66666666-7777-8888-9999-000000000001');
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.webhooks.destinations.retrieve_delivery(
"11111111-2222-3333-4444-555555555555",
"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.Webhooks.Destinations.RetrieveDeliveryAsync("11111111-2222-3333-4444-555555555555", "66666666-7777-8888-9999-000000000001");
Console.WriteLine(JsonSerializer.Serialize(result));{
"uuid": "66666666-7777-8888-9999-000000000001",
"session_id": "22222222-3333-4444-5555-666666666666",
"request_url": "https://yourapp.com/webhooks/didit",
"response_status": 503,
"response_time_ms": 412,
"status": "In Progress",
"webhook_type": "status.updated",
"created_at": "2026-10-15T09:21:18.412345Z",
"request_header": "{\"Content-Type\": \"application/json\", \"X-Signature\": \"a5e02a03404e1337a0198e6be15d34abbd053c658a0e51e5d0e78554213ef29b\", \"X-Signature-V2\": \"927e7cb770c94ce745939bff73f04aa200015f3bc64795ba46c2aaf78a6cedc5\", \"X-Signature-Simple\": \"e37b0d4c716c72bb5ae7127b9cc455d28ab4686e9e22312b4ec2327409a73302\", \"X-Timestamp\": \"1792056078\", \"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\":1792056078,\"vendor_data\":\"user-123\",\"webhook_type\":\"status.updated\",\"workflow_id\":\"44444444-5555-6666-7777-888888888888\",\"workflow_version\":3}"
}request_body से X-Signature-V2 को webhook गंतव्य के secret_shared_key के साथ दोबारा कंप्यूट करें। इसके लिए पूरी पहुँच वाली कुंजी का उपयोग करें: छिपाए गए मान वाली body अब अपने हस्ताक्षरों से मेल नहीं खाती।
डिलीवरी को फिर से भेजने के लिए, webhook गंतव्य की डिलीवरी फिर से भेजें को कॉल करें।प्राधिकरण
आपकी एप्लिकेशन की 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 जिस पर डिलीवरी भेजी गई थी।
डिलीवरी का UUID: GET /v3/webhook/destinations/{destination_uuid}/deliveries/ द्वारा लौटाई गई किसी प्रविष्टि का uuid।
प्रतिक्रिया
डिलीवरी, उसके अनुरोध हेडर और बॉडी के साथ।
एक webhook गंतव्य पर एक डिलीवरी प्रयास, सटीक अनुरोध हेडर और मुख्य भाग के साथ जो Didit ने भेजा था।
डिलीवरी ID, विवरण और पुनः भेजने के कॉल के लिए।
उपयोगकर्ता सत्यापन सत्र जिससे यह इवेंट संबंधित है। व्यवसाय सत्र, उपयोगकर्ता, व्यवसाय, लेन-देन, Travel Rule और वर्कफ़्लो इवेंट के लिए null।
वह URL जिस पर डिलीवरी भेजी गई थी: इवेंट जनरेट होने के समय गंतव्य का URL।
आपके endpoint द्वारा लौटाया गया HTTP स्टेटस। जब डिलीवरी कतार में हो और अभी तक प्रयास न किया गया हो तो null। जब कोई HTTP उत्तर प्राप्त नहीं हुआ, तो Didit अपनी स्वयं की स्थिति दर्ज करता है: जब आपके endpoint ने 5 सेकंड के भीतर उत्तर नहीं दिया तो 504, कनेक्शन विफलता के लिए 503, जब URL को असुरक्षित (उदाहरण के लिए एक निजी या आंतरिक पता) के रूप में अस्वीकार कर दिया गया था तो 400, और किसी भी अन्य अनुरोध त्रुटि के लिए 404। 400 या उससे अधिक को विफल डिलीवरी माना जाता है।
प्रयास में लगा समय, मिलीसेकंड में। जब तक डिलीवरी कतार में है तब तक null।
x >= 0इवेंट जनरेट होने पर उसके द्वारा रिपोर्ट किया गया स्टेटस: सत्र इवेंट के लिए सत्र स्टेटस (उदाहरण के लिए Approved या In Review), उपयोगकर्ता और व्यवसाय इवेंट के लिए व्यक्ति या कंपनी का स्टेटस, और लेन-देन इवेंट के लिए लेन-देन का स्टेटस। बिना किसी स्टेटस वाले इवेंट के लिए null।
समर्थित 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 द्वारा लौटाए गए रिस्पॉन्स बॉडी को रिकॉर्ड नहीं करता है।