الانتقال إلى المحتوى الرئيسي
باعتبارك تاجر السجل، تدير ددو بايمنتس عملية النزاع واسترداد المبالغ المدفوعة مع شبكات البطاقات نيابة عنك. تحافظ هذه الويب هوك على مزامنة أنظمتك أثناء انتقال النزاع من خلال دورة حياته حتى تتمكن من إلغاء الوصول وجمع الأدلة وتسوية سجلاتك.

أحداث webhook للنزاع

يبعث النزاع حدثًا في كل مرحلة من مراحل دورة حياته:
الحدثيُشتعل عندماما يعنيه عادةً
dispute.openedيفتح حامل البطاقة نزاعًا على دفعيتم حجز الأموال؛ التحضير للرد
dispute.challengedتم تقديم الأدلة للطعن في النزاعيتم مراجعة النزاع من قبل الشبكة
dispute.acceptedتم قبول النزاع (غير معترض)يتم إرجاع الأموال إلى حامل البطاقة
dispute.cancelledتم سحب النزاع أو إلغاؤهلا حاجة لاتخاذ إجراء إضافي
dispute.expiredانتهت نافذة الرد دون حلعادة ما يُحل ضدك
dispute.wonتم حل النزاع لصالحكيتم الاحتفاظ بالأموال
dispute.lostتم حل النزاع لصالح حامل البطاقةيتم إرجاع الأموال إلى حامل البطاقة
النزاعات التي تم حلها تلقائياً من خلال Visa Rapid Dispute Resolution (RDR) تظهر كـ dispute.lost مع is_resolved_by_rdr: true. هذا متوقع — تم إصدار الاسترداد تلقائيًا لمنع استرداد رسمي.

التعامل مع أحداث النزاع

عندما يُشتعل dispute.opened، يتم حجز المبلغ المتنازع عليه فورًا. استخدم الحدث لتحديث سجلاتك، وإذا كنت تعتزم الطعن، اجمع الأدلة في لوحة التحكم.
Handling dispute events
app.post('/webhooks/dodo', async (req, res) => {
  const event = req.body;

  switch (event.type) {
    case 'dispute.opened': {
      const dispute = event.data;
      // Record the dispute and consider revoking access while it is open
      await recordDispute(dispute.dispute_id, dispute.payment_id, dispute.amount);
      // Gather and submit evidence from the Dodo Payments dashboard (within 4 days)
      break;
    }
    case 'dispute.won': {
      // Funds retained — restore normal state in your records
      await markDisputeResolved(event.data.dispute_id, 'won');
      break;
    }
    case 'dispute.lost': {
      // Funds returned to the cardholder — reconcile and keep access revoked
      await markDisputeResolved(event.data.dispute_id, 'lost');
      break;
    }
  }

  res.json({ received: true });
});
تحقق دائمًا من توقيع الويب هوك قبل المعالجة — انظر دليل الويب هوك للإعداد. تم حذف التحقق في المعالج أعلاه للاختصار.
لديك 4 أيام للرد على النزاع بعد إنشائه. انظر أفضل ممارسات الرد على النزاع للحصول على الأدلة التي يجب جمعها وكيفية تنسيقها.

حالة النزاع والمرحلة

تقرير كائن النزاع تقدمه من خلال حقلين:
حقلقيم
dispute_statusdispute_opened, dispute_expired, dispute_accepted, dispute_cancelled, dispute_challenged, dispute_won, dispute_lost
dispute_stagepre_dispute, dispute, pre_arbitration

ذو صلة

Managing Disputes

كيفية الرد على النزاعات وتقديم الأدلة وكيفية حماية RDR لنسب النزاع الخاصة بك.

Handle Payment Failures

اكتشاف واسترداد المدفوعات الفاشلة قبل أن تصبح نزاعات.

مخطط حمولة الويب هوك

amount
string
مطلوب

The amount involved in the dispute, represented as a string to accommodate precision.

business_id
string
مطلوب

The unique identifier of the business involved in the dispute.

created_at
string<date-time>
مطلوب

The timestamp of when the dispute was created, in UTC.

currency
string
مطلوب

The currency of the disputed amount, represented as an ISO 4217 currency code.

dispute_id
string
مطلوب

The unique identifier of the dispute.

dispute_stage
enum<string>
مطلوب

The current stage of the dispute process.

الخيارات المتاحة:
pre_dispute,
dispute,
pre_arbitration
dispute_status
enum<string>
مطلوب

The current status of the dispute.

الخيارات المتاحة:
dispute_opened,
dispute_expired,
dispute_accepted,
dispute_cancelled,
dispute_challenged,
dispute_won,
dispute_lost
payment_id
string
مطلوب

The unique identifier of the payment associated with the dispute.

is_resolved_by_rdr
boolean | null

Whether the dispute was resolved by Rapid Dispute Resolution

remarks
string | null

Remarks

آخر تعديل في ١٨ يونيو ٢٠٢٦