curl -X POST 'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/deliveries/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.webhooks.destinations.resend_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.resendDelivery(
"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.ResendDelivery(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().resendDelivery("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->resendDelivery('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.resend_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.ResendDeliveryAsync("11111111-2222-3333-4444-555555555555", "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,
"response_time_ms": 151,
"status": "In Progress",
"webhook_type": "status.updated",
"created_at": "2026-10-16T14:05:42.330981Z",
"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}"
}إعادة إرسال تسليم webhook عبر API
أعد إرسال تسليم webhook سابق إلى نقطة الاستقبال الخاصة بك بتوقيع جديد في Didit، واحصل على المحاولة الجديدة مع رمز حالة HTTP الذي أعادته نقطة الاستقبال.
curl -X POST 'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/deliveries/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.webhooks.destinations.resend_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.resendDelivery(
"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.ResendDelivery(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().resendDelivery("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->resendDelivery('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.resend_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.ResendDeliveryAsync("11111111-2222-3333-4444-555555555555", "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,
"response_time_ms": 151,
"status": "In Progress",
"webhook_type": "status.updated",
"created_at": "2026-10-16T14:05:42.330981Z",
"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}"
}event_id قبل إعادة الإرسال بالجملة، ولا تُعد إرسال إلا التسليمات التي تكون قيمة response_status فيها null أو 400 أو أعلى.التفويضات
مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console. يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير 404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع https://docs.didit.me/console/api-keys.
معلمات المسار
معرّف UUID للوجهة التي تم إرسال عملية التسليم إليها.
معرّف UUID لعملية التسليم المراد إعادة إرسالها: وهو الـ uuid لمدخل تم إرجاعه بواسطة GET /v3/webhook/destinations/{destination_uuid}/deliveries/.
الاستجابة
التسليم الجديد، الذي جرت محاولته بالفعل. تمثل response_status ما أجاب به endpoint الخاص بك هذه المرة (504 انتهاء المهلة، 503 فشل الاتصال). يظل التسليم الأصلي دون تغيير.
محاولة تسليم واحدة إلى وجهة webhook، مع رؤوس وجسم الطلب الفعليين اللذين أرسلتهما Didit تماماً.
معرّف التسليم، لطلبات التفاصيل وإعادة الإرسال.
جلسة التحقق من المستخدمين التي يتعلق بها الحدث. null لأحداث جلسة الشركة، والمستخدم، والشركة، والمعاملة، وTravel Rule، وسير العمل.
رابط URL الذي أُرسل إليه التسليم: رابط URL الخاص بالوجهة عند إنشاء الحدث.
حالة HTTP التي أرجعها الـ endpoint الخاص بك. null طالما أن التسليم في قائمة الانتظار ولم تتم محاولته بعد. عندما لا يتم تلقي أي استجابة HTTP، تسجل Didit حالة خاصة بها: 504 عندما لم يُجب الـ endpoint الخاص بك في غضون 5 ثوانٍ، و503 لفشل الاتصال، و400 عندما تم رفض عنوان URL لعدم أمانه (على سبيل المثال عنوان خاص أو داخلي)، و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 وقت إنشاء التسليم.
نص JSON (سلسلة نصية) لرؤوس الطلب التي أرسلتها Didit: وهي Content-Type وX-Signature وX-Signature-V2 وX-Signature-Simple وX-Timestamp وUser-Agent. قم بتحليله باستخدام محلل JSON. يحتوي على التوقيعات، ولا يحتوي أبداً على سر التوقيع.
نص JSON (سلسلة نصية) للـ payload الدقيق الذي أرسلته Didit، مع فرز المفاتيح، بما في ذلك event_id وtimestamp. قم بتحليله باستخدام محلل JSON؛ راجع شكل الـ Payload. بالنسبة لمفتاح محدد النطاق بدون media: read، تكون عناوين URL للوسائط بداخله null؛ وبدون sessions: write، تكون رموز الجلسات وروابط التحقق المستضافة null. محتوى الطلب الذي تم تغييره بهذه الطريقة لا يعود مطابقاً لتوقيعاته. لا تسجل Didit محتوى الاستجابة الذي أرجعه الـ endpoint الخاص بك.