Skip to main content
Manual Retry, payment के detail page से या API के माध्यम से, आपके अनुरोध करते ही विफल subscription renewal payment को फिर से आज़माता है। यह subscription पर saved payment method से charge करता है और automatic Payment Retries schedule से स्वतंत्र रूप से चलता है।

Manual Retry क्या है?

जब renewal payment विफल होता है, तो subscription on_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 परिणाम की सूचना नहीं देता।
विफल payment का Transaction details page, जिसमें error code और message, Activity Log और Retry Payment Manually button दिख रहे हैं

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 देखें।
उसी card के विरुद्ध hard decline को retry करने से सफलता नहीं मिल सकती और बार-बार declines आपकी authorization rate को नुकसान पहुंचाते हैं। जब reason MANUAL_RETRY_HARD_DECLINE हो, तो customer से अपना payment method update करने के लिए कहें। Subscription Dunning यह अपने-आप करता है।

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।
अंतिम संशोधन 25 सितंबर 2026