मुख्य सामग्री पर जाएं

छोड़ी गई गाड़ी पुनरुद्धार घटनाएँ

निम्नलिखित वेबहूक घटनाएँ छोड़ी गई गाड़ी पुनरुद्धार जीवनचक्र को ट्रैक करती हैं:
घटनाविवरण
abandoned_checkout.detectedएक छोड़ी गई चेकआउट का पता चला है। भेजा जाता है जब कोई भुगतान छोड़ा हुआ (असफल या अधूरा) पहचाना जाता है और पुनरुद्धार कार्यप्रवाह शुरू होता है।
abandoned_checkout.recoveredग्राहक ने पुनरुद्धार लिंक के माध्यम से भुगतान पूरा किया। recovered_payment_id फ़ील्ड में सफल भुगतान आईडी होती है।

छोड़ी गई चेकआउट पेलोड फ़ील्ड्स

payment_id
string
आवश्यक
मूल भुगतान जो छोड़ दिया गया था। उत्पाद, राशि और मुद्रा विवरण देखने के लिए इसका उपयोग करें।
customer_id
string
आवश्यक
ग्राहक जिसने चेकआउट छोड़ दिया।
abandonment_reason
string
आवश्यक
चेकआउट क्यों छोड़ा गया। इनमें से एक:
  • payment_failed — ग्राहक ने भुगतान का प्रयास किया लेकिन यह असफल रहा
  • checkout_incomplete — ग्राहक ने चेकआउट देखा लेकिन कभी भुगतान का प्रयास नहीं किया
status
string
आवश्यक
इस पुनरुद्धार प्रयास का वर्तमान जीवनचक्र स्थिति। इनमें से एक:
  • abandoned — पहचान हुआ, अभी तक कोई ईमेल नहीं भेजा गया
  • recovering — कम से कम एक पुनरुद्धार ईमेल भेजी गई
  • recovered — ग्राहक ने भुगतान पूरा किया
  • exhausted — सभी ईमेल भेजी गई या नया चेकआउट मिला
  • opted_out — ग्राहक ने अनसब्सक्राइब किया
abandoned_at
string
आवश्यक
जिस समय चेकआउट को छोड़ा हुआ के रूप में पहचाना गया, उसका ISO 8601 टाइमस्टैम्प।
recovered_payment_id
string | null
सफल पुनरुद्धार भुगतान की भुगतान आईडी। null जब तक चेकआउट पुनः प्राप्त न हो।

उदाहरण: ACR वेबहूक्स को हैंडल करना

app.post('/webhooks/dodo', async (req, res) => {
  const event = req.body;

  switch (event.type) {
    case 'abandoned_checkout.detected':
      console.log(`Checkout abandoned: ${event.data.payment_id}`);
      console.log(`Reason: ${event.data.abandonment_reason}`);
      // Track abandonment in your analytics
      await trackAbandonment(event.data);
      break;

    case 'abandoned_checkout.recovered':
      console.log(`Checkout recovered: ${event.data.payment_id}`);
      console.log(`Recovery payment: ${event.data.recovered_payment_id}`);
      // Grant access, update records
      await handleRecovery(event.data);
      break;
  }

  res.json({ received: true });
});

डनिंग घटनाएँ

निम्नलिखित वेबहूक घटनाएँ सब्सक्रिप्शन डनिंग जीवनचक्र को ट्रैक करती हैं:
घटनाविवरण
dunning.startedएक डनिंग प्रयास की जा रही है जो एक सब्सक्रिप्शन के लिए बनाई गई जो on_hold में प्रवेश हुआ या ग्राहक द्वारा रद्द कर दिया गया।
dunning.recoveredग्राहक ने अपनी भुगतान विधि को अपडेट किया और परिणामी भुगतान सफल रहा। payment_id फ़ील्ड में सफल भुगतान आईडी होती है।

डनिंग प्रयास पेलोड फ़ील्ड्स

subscription_id
string
आवश्यक
सब्सक्रिप्शन जिसने डनिंग प्रयास को ट्रिगर किया।
customer_id
string
आवश्यक
ग्राहक जो सब्सक्रिप्शन का मालिक है।
trigger_state
string
आवश्यक
सब्सक्रिप्शन स्थिति जिसने डनिंग को ट्रिगर किया। इनमें से एक:
  • on_hold — भुगतान विफलता के कारण सब्सक्रिप्शन रुका
  • cancelled — ग्राहक पोर्टल से ग्राहक ने रद्द कर दिया
status
string
आवश्यक
इस डनिंग प्रयास की वर्तमान जीवनचक्र स्थिति। इनमें से एक:
  • recovering — डनिंग ईमेल भेजी जा रही हैं
  • recovered — ग्राहक ने भुगतान विधि अपडेट की और भुगतान सफल हुआ
  • exhausted — सभी ईमेल भेजी गई या सब्सक्रिप्शन स्थिति बदल गई
created_at
string
आवश्यक
जिस समय डनिंग प्रयास बनाया गया, उसका ISO 8601 टाइमस्टैम्प।
payment_id
string | null
सफल पुनरुद्धार भुगतान की भुगतान आईडी। null पुनः प्राप्त करते समय।

उदाहरण: डनिंग वेबहूक्स को हैंडल करना

app.post('/webhooks/dodo', async (req, res) => {
  const event = req.body;

  switch (event.type) {
    case 'dunning.started':
      console.log(`Dunning started for subscription: ${event.data.subscription_id}`);
      console.log(`Trigger: ${event.data.trigger_state}`);
      // Track dunning in your system
      await trackDunning(event.data);
      break;

    case 'dunning.recovered':
      console.log(`Subscription recovered: ${event.data.subscription_id}`);
      console.log(`Recovery payment: ${event.data.payment_id}`);
      // Reactivate access, update records
      await handleDunningRecovery(event.data);
      break;
  }

  res.json({ received: true });
});
पूरे डनिंग जीवनचक्र को ट्रैक करने के लिए दोनों dunning.started और dunning.recovered को सब्सक्राइब करें। अपने सिस्टम में नवाज़ेक की अवधि को रोकने या जोखिम में सब्सक्रिप्शन को चिह्नित करने के लिए dunning.started का उपयोग करें।

Abandoned Cart Recovery

ACR ईमेल क्रम और छूट प्रेरणाएँ कॉन्फिगर करें।

Subscription Dunning

लुप्त सब्सक्रिप्शन के लिए डनिंग ईमेल क्रम कॉन्फिगर करें।

Subscription Webhooks

संबंधित सब्सक्रिप्शन जीवनचक्र घटनाएँ जैसे subscription.on_hold और subscription.cancelled

वेबहूक पेलोड स्कीमा

Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered events

abandoned_at
string<date-time>
आवश्यक
abandonment_reason
enum<string>
आवश्यक
उपलब्ध विकल्प:
payment_failed,
checkout_incomplete
customer_id
string
आवश्यक
payment_id
string
आवश्यक
status
enum<string>
आवश्यक
उपलब्ध विकल्प:
abandoned,
recovering,
recovered,
exhausted,
opted_out
recovered_payment_id
string | null
Last modified on April 20, 2026