Manual Retry, payment के detail page से या API के माध्यम से, आपके अनुरोध करते ही विफल subscription renewal payment को फिर से आज़माता है। यह subscription पर saved payment method से charge करता है और automatic Payment Retries schedule से स्वतंत्र रूप से चलता है।
Manual Retry क्या है?
जब renewal payment विफल होता है, तो subscriptionon_hold में चला जाता है और Payment Retries back-off schedule पर charge को फिर से आज़माता है। कभी-कभी आपको पता होता है कि payment अभी सफल होगा: customer ने पुष्टि की है कि उसने अपने account में funds add किए हैं, या आपकी support team उससे call पर है। Manual Retry आपको अगली scheduled attempt के लिए घंटों या दिनों तक प्रतीक्षा करने के बजाय तुरंत एक attempt भेजने देता है।
- केवल Renewal payments: Manual Retry subscription renewal invoices पर लागू होता है, जब subscription
on_holdहो। First payments, one-time payments, plan-change charges और on-demand charges इसके लिए eligible नहीं हैं। - Customer action की आवश्यकता नहीं: Charge subscription पर पहले से saved payment method पर भेजा जाता है।
- Automatic retries से स्वतंत्र: Manual retry automatic schedule की कोई attempt consume नहीं करता, अगली scheduled retry को आगे नहीं बढ़ाता और Payment Retries बंद होने पर भी काम करता है।
- Payment नहीं, invoice को retry करता है: विफल payment केवल entry point है। Dodo Payments उसके पीछे मौजूद open renewal invoice को ढूंढकर उस debt को charge करता है, इसलिए invoice पर मौजूद किसी भी विफल payment से retry करने पर कोई फर्क नहीं पड़ता।
Dashboard से Retry करना
1
Open the failed payment
Transactions → Payments पर जाएं और विफल renewal payment पर click करके उसका Transaction details page खोलें।
2
Click Retry Payment Manually
ऊपरी-दाएं कोने में Retry Payment Manually पर click करें। यह button केवल तभी उपलब्ध होता है जब payment eligible हो।
3
Check the result
इस attempt के लिए एक नया payment बनाया जाता है और वह Activity Log में दिखाई देता है। यदि charge सफल होता है, तो subscription
active में लौट आता है और अगली billing date सामान्य रूप से आगे बढ़ती है। यदि payment processor ने अभी तक charge settle नहीं किया है, तो payment in progress के रूप में दिखाई देता है, जब तक कि payment.succeeded या payment.failed webhook परिणाम की सूचना नहीं देता।
Retry Payment Manually on the transaction details page of a failed renewal
Eligibility
Manual retry तभी भेजा जाता है जब नीचे दी गई हर जांच सफल हो। Reason code column वही है जो API लौटाता है:GET /payments/{payment_id}/retry पर reason में और POST /payments/{payment_id}/retry पर error code के रूप में।
एक मामले में Manual Retry, automatic retries से अधिक सीमित है: इसके लिए subscription का
on_hold होना आवश्यक है। Automatic retries अन्य non-active statuses के लिए चलती रहती हैं; Subscription Status Transitions देखें।Retry Limits
हर renewal invoice में 3 manual retries की अनुमति होती है और इनके बीच cooldown होता है:
ये limits test mode और live mode दोनों में लागू होती हैं। जब इस कारण से retry अस्वीकार किया जाता है, तो API
MANUAL_RETRY_LIMIT_REACHED (HTTP 429) लौटाता है। Error body में केवल code और message होते हैं। अगली retry कब उपलब्ध होगी, यह जानने के लिए retry state जांचें और retry_available_at पढ़ें। तीनों खर्च हो जाने पर यह null होता है।
Automatic retries इस limit में नहीं गिनी जातीं और manual retries automatic schedule की 8 attempts में नहीं गिनी जातीं।
Manual बनाम Automatic Retries
API के माध्यम से Retry करना
पहले eligibility जांचें, फिर retry भेजें। दोनों endpoints विफल payment की ID लेते हैं।जांचें कि Payment को Retry किया जा सकता है या नहीं
GET /payments/{payment_id}/retry कभी भी ineligible payment पर fail नहीं होता। इसके बजाय यह can_retry: false को reason code के साथ लौटाता है, ताकि आपका dashboard या support tooling वही state दिखा सके जो Dodo Payments dashboard दिखाता है। इसके लिए Viewer role आवश्यक है।
Response
Manual Retry भेजें
POST /payments/{payment_id}/retry एक नया payment बनाता है और saved payment method से charge करता है। इसके लिए Editor role आवश्यक है।
Response
Error Responses
हर code का विवरण Error Codes reference में दिया गया है।
Webhooks
Manual retry एक सामान्य payment बनाता है, इसलिए वही webhooks fire होते हैं जो किसी भी renewal attempt के लिए होते हैं:
इन events में payment object पर
retry_attempt 1 या उससे अधिक होता है और subscription_id set होता है, ठीक automatic retry की तरह। यदि आपको manual attempt को scheduled attempt से अलग पहचानना हो, तो retry response से payment_id सुरक्षित रखें।
Payment Webhook Payloads
Payment events के full payload schemas।
संबंधित
Subscription Payment Retries
Manual retries के साथ चलने वाला automatic back-off schedule।
Subscription Dunning
Hard decline के बाद customer को अपना payment method update करने के लिए email करें।
Handle Payment Failures
Decline codes पढ़ें और तय करें कि retry कब करना उपयोगी है।
Error Codes
हर
MANUAL_RETRY_* code, उसका trigger और उसका message।