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

पूर्वापेक्षाएँ

डोडो पेमेंट्स API को एकीकृत करने के लिए, आपको आवश्यकता होगी:
  • एक डोडो पेमेंट्स व्यापारी खाता
  • डैशबोर्ड से API क्रेडेंशियल्स (API कुंजी और वेबहुक गुप्त कुंजी)
पूर्वापेक्षाओं पर अधिक विस्तृत गाइड के लिए, इस अनुभाग की जांच करें।

API एकीकरण

चेकआउट सत्र

Use Checkout Sessions to sell subscription products with a secure, hosted checkout. Pass your subscription product in product_cart and redirect customers to the returned checkout_url.
Mixed Checkout: आप एक ही चेकआउट सत्र में subscription उत्पादों को एक-बार के उत्पादों के साथ मिला सकते हैं। यह सेटअप शुल्क के साथ subscription, हार्डवेयर बंडल्स के साथ SaaS, और अन्य उपयोग-मामलों को सक्षम करता है। उदाहरणों के लिए Checkout Sessions guide देखें।

API प्रतिक्रिया

निम्नलिखित प्रतिक्रिया का एक उदाहरण है:
ग्राहक को checkout_url पर रीडायरेक्ट करें।

Webhooks

सब्सक्रिप्शन को एकीकृत करते समय, आपको सब्सक्रिप्शन जीवनचक्र को ट्रैक करने के लिए वेबहुक प्राप्त होंगे। ये वेबहूक आपको सब्सक्रिप्शन स्थितियों और भुगतान परिदृश्यों को प्रभावी ढंग से प्रबंधित करने में मदद करते हैं। अपना वेबहुक एंडपॉइंट सेट अप करने के लिए, कृपया हमारे विस्तृत इंटीग्रेशन गाइड का पालन करें।

सब्सक्रिप्शन इवेंट प्रकार

निम्नलिखित वेबहूक इवेंट्स सब्सक्रिप्शन स्थिति परिवर्तनों को ट्रैक करते हैं:
  1. subscription.active - सब्सक्रिप्शन सफलतापूर्वक सक्रिय है।
  2. subscription.updated - सब्सक्रिप्शन ऑब्जेक्ट अपडेट किया गया था (किसी भी फ़ील्ड में बदलाव पर फायर होता है)।
  3. subscription.on_hold - असफल रिन्यूअल के कारण सब्सक्रिप्शन होल्ड पर है।
  4. subscription.failed - मैंडेट निर्माण के दौरान सब्सक्रिप्शन निर्माण विफल रहा।
  5. subscription.renewed - अगली बिलिंग अवधि के लिए सब्सक्रिप्शन का नवीनीकरण किया गया।
विश्वसनीय सब्सक्रिप्शन जीवनचक्र प्रबंधन के लिए, हम इन सब्सक्रिप्शन इवेंट्स को ट्रैक करने की सिफारिश करते हैं।
समय पर सब्सक्रिप्शन परिवर्तनों के बारे में सूचनाएं प्राप्त करने के लिए subscription.updated का उपयोग करें, API के बिना पोलिंग के अपने एप्लिकेशन की स्थिति को समकालिक रखने के लिए।

भुगतान परिदृश्य

सफल भुगतान प्रवाह जब एक भुगतान सफल होता है, तो आपको निम्नलिखित वेबहूक प्राप्त होंगे:
  1. subscription.active - सब्सक्रिप्शन सक्रियण को सूचित करता है
  2. payment.succeeded - प्रारंभिक भुगतान की पुष्टि करता है:
    • तत्काल बिलिंग के लिए (0 परीक्षण दिन): 2-10 मिनट के भीतर अपेक्षित
    • परीक्षण दिनों के लिए: जब भी वह समाप्त होता है
  3. subscription.renewed - अगले चक्र के लिए भुगतान कटौती और नवीनीकरण को इंगित करता है। (मूल रूप से, जब भी सब्सक्रिप्शन उत्पादों के लिए भुगतान कटौती होती है, आपको subscription.renewed वेबहूक payment.succeeded के साथ मिल जाएगा)
भुगतान विफलता परिदृश्यों
  1. सब्सक्रिप्शन विफलता
  • subscription.failed - मैंडेट बनाने में असमर्थता के कारण सब्सक्रिप्शन निर्माण विफल।
  • payment.failed - असफल भुगतान बताता है।
  1. सब्सक्रिप्शन होल्ड पर
  • subscription.on_hold - असफल रिन्यूअल भुगतान या प्लान परिवर्तन शुल्क के कारण सब्सक्रिप्शन होल्ड पर है।
  • जब एक सब्सक्रिप्शन होल्ड पर जाता है, तो यह स्वचालित रूप से नवीनीकरण नहीं करेगा जब तक कि भुगतान विधि अपडेट नहीं की जाती।
सर्वोत्तम अभ्यास: कार्यान्वयन को सरल बनाने के लिए, हम सब्सक्रिप्शन जीवनचक्र प्रबंधन के लिए मुख्यतः सब्सक्रिप्शन इवेंट्स को ट्रैक करने की सलाह देते हैं।
error_code/error_message को पढ़ने, पुनः प्रयास कब करें का निर्णय लेने और ग्राहकों को विफलताओं को दर्शाने का पूरा वॉकथ्रू देखने के लिए, भुगतान विफलताओं को संभालें देखें।

subscription.failed बनाम subscription.on_hold

ये दो इवेंट्स भ्रमित करना आसान हैं, लेकिन इन्हें बहुत अलग तरीके से संभालने की आवश्यकता है:
subscription.failed टर्मिनल है — सब्सक्रिप्शन पुनः सक्रिय नहीं किया जा सकता। ग्राहक को एक नया सब्सक्रिप्शन बनाना होगा। जब यह इवेंट फायर होता है, तो कभी भी अधिकार न दें।

होल्ड पर सब्सक्रिप्शन को संभालना

जब कोई सब्सक्रिप्शन on_hold स्थिति में प्रवेश करता है, तो उसे पुनः सक्रिय करने के लिए भुगतान विधि अपडेट करनी होगी। यह खंड निम्नलिखित पर चर्चा करता है कि सब्सक्रिप्शन कब होल्ड पर जाते हैं और उन्हें कैसे संभालें।

सब्सक्रिप्शन कब होल्ड पर जाते हैं

एक सब्सक्रिप्शन होल्ड पर तब जाता है जब:
  • रिन्यूअल भुगतान विफल हो जाता है: अपर्याप्त धनराशि, समाप्त कार्ड, या बैंक अस्वीकृति के कारण स्वत: नवीनीकरण शुल्क विफल हो जाता है
  • प्लान परिवर्तन शुल्क विफल होता है: प्लान अपग्रेड/डाउनग्रेड के दौरान तत्काल शुल्क विफल हो जाता है
  • भुगतान विधि प्राधिकरण विफल होता है: आवर्ती शुल्क के लिए भुगतान विधि को अधिकृत नहीं किया जा सकता
on_hold स्थिति में सब्सक्रिप्शन स्वचालित रूप से नवीनीकरण नहीं करेगा। सब्सक्रिप्शन को पुनः सक्रिय करने के लिए आपको भुगतान विधि को अपडेट करना होगा।

होल्ड से सब्सक्रिप्शन को पुनः सक्रिय करना

on_hold स्थिति से सब्सक्रिप्शन को पुनः सक्रिय करने के लिए, भुगतान विधि अपडेट API का उपयोग करें। यह स्वचालित रूप से:
  1. शेष बकाया के लिए एक शुल्क बनाता है
  2. शुल्क के लिए एक चालान उत्पन्न करता है
  3. नए भुगतान विधि का उपयोग करके भुगतान को संसाधित करता है
  4. सफल भुगतान होने पर सब्सक्रिप्शन को active स्थिति में पुनः सक्रिय करता है
1

Handle subscription.on_hold webhook

जब आपको subscription.on_hold वेबहूक प्राप्त होता है, तो अपने एप्लिकेशन की स्थिति अपडेट करें और ग्राहक को सूचित करें:
2

Update payment method

जब ग्राहक अपनी भुगतान विधि अपडेट करने के लिए तैयार हों, तो भुगतान विधि अपडेट API को कॉल करें:
यदि ग्राहक के पास सहेजी गई भुगतान विधियाँ हैं, तो आप मौजूदा भुगतान विधि आईडी का भी उपयोग कर सकते हैं:
3

Monitor webhook events

भुगतान विधि अपडेट करने के बाद, इन वेबहूक इवेंट्स की निगरानी करें:
  1. payment.succeeded - शेष बकाया के लिए शुल्क सफल रहा
  2. subscription.active - सब्सक्रिप्शन पुनः सक्रिय किया गया है

नमूना सब्सक्रिप्शन इवेंट पेलोड


सब्सक्रिप्शन प्लान बदलना

आप परिवर्तन प्लान API endpoint का उपयोग करके सब्सक्रिप्शन प्लान को अपग्रेड या डाउनग्रेड कर सकते हैं। यह आपको सब्सक्रिप्शन के उत्पाद, मात्रा को संशोधित करने और प्ररेटीकरण को संभालने की अनुमति देता है।

Change Plan API Reference

सब्सक्रिप्शन प्लान बदलने के बारे में विस्तृत जानकारी के लिए, कृपया हमारी चेंज प्लान API डोक्यूमेंटेशन देखें।

प्ररेटीकरण विकल्प

सब्सक्रिप्शन प्लान बदलते समय, आपके पास तात्कालिक शुल्क को संभालने के लिए दो विकल्प हैं:

1. prorated_immediately

  • वर्तमान बिलिंग चक्र में शेष समय के आधार पर प्रोरटेड राशि की गणना करता है
  • पुराने और नए प्लान के बीच केवल अंतर के लिए ग्राहक से शुल्क लेता है
  • परीक्षण अवधि के दौरान, यह उपयोगकर्ता को तुरंत नए प्लान पर स्विच करेगा, ग्राहक से तुरंत शुल्क लेगा

2. full_immediately

  • नए प्लान के लिए ग्राहक से पूरा सब्सक्रिप्शन राशि का शुल्क लेता है
  • पिछले प्लान से शेष समय या क्रेडिट्स को नजरअंदाज करता है
  • जब आप बिलिंग चक्र को रीसेट करना चाहते हैं या प्ररेटीकरण की परवाह किए बिना पूरी राशि चार्ज करना चाहते हैं, तो यह उपयोगी है

3. difference_immediately

  • अपग्रेड करते समय, ग्राहक से तुरंत दोनों प्लान्स की राशि के अंतर का शुल्क लिया जाता है।
  • उदाहरण के लिए, यदि वर्तमान प्लान 30हैऔरग्राहक30 है और ग्राहक 80 में अपग्रेड करता है, तो उनसे तुरंत $50 का शुल्क लिया जाता है।
  • डाउनग्रेड करते समय, वर्तमान प्लान का अप्रयुक्त राशि आंतरिक क्रेडिट के रूप में जोड़ी जाती है और स्वचालित रूप से भविष्य के सब्सक्रिप्शन नवीनीकरणों में लागू होती है।
  • उदाहरण के लिए, यदि वर्तमान प्लान 50हैऔरग्राहक50 है और ग्राहक 20 प्लान पर स्विच करता है, तो शेष $30 क्रेडिट के रूप में सहेजा जाता है और अगले बिलिंग चक्र में लागू होता है।

व्यवहार

  • जब आप इस API का उपयोग करते हैं, तो डोडो पेमेंट्स आपके चयनित प्ररेटीकरण विकल्प के आधार पर तुरंत एक शुल्क आरंभ करता है
  • यदि प्लान परिवर्तन एक डाउनग्रेड है और आप prorated_immediately उपयोग करते हैं, तो क्रेडिट्स स्वचालित रूप से गणना की जाएगी और सब्सक्रिप्शन के क्रेडिट बैलेंस में जोड़ी जाएगी। ये क्रेडिट्स उस सब्सक्रिप्शन के लिए विशिष्ट होते हैं और केवल उसी सब्सक्रिप्शन के भविष्य के आवर्ती भुगतान को ऑफसेट करने के लिए उपयोग किए जाएंगे
  • full_immediately विकल्प क्रेडिट गणनाओं को बायपास करता है और पूरी नई योजना की राशि का शुल्क लेता है
अपने प्ररेटीकरण विकल्प को ध्यान से चुनें: अप्रयुक्त समय को ध्यान में रखते हुए उचित बिलिंग के लिए prorated_immediately का उपयोग करें, या वर्तमान बिलिंग चक्र की परवाह किए बिना पूर्ण नई योजना की राशि चार्ज करने के लिए full_immediately का उपयोग करें।

चार्ज प्रोसेसिंग

  • प्लान परिवर्तन पर आरंभ किया गया तात्कालिक शुल्क सामान्यतः 2 मिनट से कम समय में प्रोसेसिंग पूर्ण कर लेता है
  • यदि यह तत्काल शुल्क किसी कारण असफल होता है, तो सब्सक्रिप्शन को स्वतः होल्ड पर कर दिया जाता है जब तक कि समस्या हल न हो जाए

ऑन-डिमांड सब्सक्रिप्शन

ऑन-डिमांड सब्सक्रिप्शंस आपको ग्राहकों से लचीले तरीके से शुल्क लेने की अनुमति देते हैं, न कि केवल एक निश्चित अनुसूची पर। यह सुविधा सभी खातों के लिए उपलब्ध है।
एक ऑन-डिमांड सब्सक्रिप्शन बनाने के लिए: एक ऑन-डिमांड सब्सक्रिप्शन बनाने के लिए, POST /subscriptions API endpoint का उपयोग करें और अपने अनुरोध बॉडी में on_demand फ़ील्ड शामिल करें। यह आपको बिना तत्काल शुल्क या एक कस्टम शुरुआती मूल्य सेट किए बिना भुगतान विधि को अधिकृत करने की अनुमति देता है। एक ऑन-डिमांड सब्सक्रिप्शन चार्ज करने के लिए: बाद के चार्ज के लिए, POST /subscriptions//charge endpoint का उपयोग करें और उस लेन-देन के लिए ग्राहक से शुल्क लेने की राशि निर्दिष्ट करें।
आवश्यक चरण-दर-चरण गाइड के लिए—जिसमें अनुरोध/प्रतिक्रिया उदाहरण, सुरक्षित पुनः प्रयास नीतियाँ, और वेबहूक हैंडलिंग शामिल हैं— देखें ऑन-डिमांड सब्सक्रिप्शंस गाइड

संबंधित API संदर्श

Create Subscription

सब्सक्रिप्शन उत्पाद बनाने और सब्सक्रिप्शन जीवनचक्र प्रबंधन के लिए API संदर्श

Change Subscription Plan

प्ररेटीकरण विकल्पों के साथ सब्सक्रिप्शन प्लान को अपग्रेड, डाउनग्रेड, या बदलने के लिए API संदर्श

Update Payment Method

होल्ड पर सब्सक्रिप्शंस को पुनः सक्रिय करने के लिए API संदर्श

Patch Subscription

सब्सक्रिप्शन विवरणों और कॉन्फ़िगरेशन को अपडेट करने के लिए API संदर्श
अंतिम संशोधन 9 जुलाई 2026