Skip to main content

अवलोकन

जब भी payment attempt असफल होता है, Dodo Payments failure reason का विस्तृत विवरण लौटाता है। ये reasons सभी payment methods और providers में standardized हैं, इसलिए आप अपने application में consistent handling लागू कर सकते हैं। जब payment fail होता है, तो payment.failed webhook और payment object ये जानकारी उपलब्ध कराते हैं:
  • error_code — नीचे दी गई table से standardized failure reason।
  • error_message — human-readable explanation।
  • retry_attempt — मूल charge के लिए 0, या प्रत्येक scheduled subscription renewal retry के लिए 1 या उससे अधिक।
इन failure reasons को समझने से आप customers को स्पष्ट feedback दे सकते हैं, तय कर सकते हैं कि retry करना उचित है या नहीं, और अधिक revenue recover कर सकते हैं।

Handle Payment Failures

webhooks और API से इन codes को पढ़ने, customers को दिखाने और retry करने का निर्णय लेने के लिए step-by-step developer guide।

Soft बनाम Hard Declines

हर failure code दो categories में से एक में आता है। यह distinction तय करता है कि आपको उसी payment method को retry करना चाहिए या customer से नया method मांगना चाहिए। Subscription renewals के लिए, Dodo Payments इस distinction को automatically लागू करता है: soft declines को Subscription Payment Retries द्वारा फिर से attempt किया जाता है, जबकि hard declines retry chain को तुरंत समाप्त कर देते हैं और उन्हें Subscription Dunning के साथ handle करना बेहतर है।
STOLEN_CARD, LOST_CARD, PICKUP_CARD या FRAUDULENT का वास्तविक reason customer को कभी न बताएं। इन्हें दिखाने से fraudulent actor को संकेत मिल सकता है। Customer को हमेशा generic decline message दिखाएं (उदाहरण के लिए, “Your card was declined. Please contact your bank or use another card.”) और specific code को केवल internally log करें।

Transaction Failure Reasons

नीचे दी गई table में हर failure code, उसका decline type, customer द्वारा उसे resolve किए जा सकने की स्थिति, description और recommended action सूचीबद्ध हैं।
User Error बताता है कि payment decline को customer resolve कर सकता है या नहीं। जब Yes हो, तो customer issue ठीक करने के लिए action ले सकता है (उदाहरण के लिए, सही card details enter करके)। जब No हो, तो decline system-level issues या bank restrictions के कारण है, जिन्हें customer सीधे resolve नहीं कर सकता।
Issuing bank का अपना risk engine cardholder को high-risk customer flag करने पर भी card decline हो सकता है — merchant या transaction details से स्वतंत्र रूप से। ये declines आमतौर पर generic codes जैसे DO_NOT_HONOR, GENERIC_DECLINE, CARD_DECLINED, TRANSACTION_NOT_APPROVED या FRAUDULENT के रूप में दिखाई देते हैं। इन मामलों में bank specific reason share नहीं करता, और न ही Dodo Payments और न ही merchant इस decision को override कर सकते हैं। Customer से flag resolve करने के लिए अपने bank से contact करने, या अलग card अथवा payment method इस्तेमाल करने को कहें।

Programmatically Failures Handle करना

payment.failed webhook या payment object से error_code पढ़ें, उसे ऊपर दिए गए recommended action से map करें और तय करें कि retry करना है या नहीं। Subscription renewals के लिए soft declines automatically आपके लिए retry किए जाते हैं — Subscription Payment Retries देखें। API-level और business-logic errors (जैसे PAYMENT_NOT_SUCCEEDED या REFUND_WINDOW_EXPIRED) के लिए, जो card declines नहीं हैं, Error Codes reference देखें।

संबंधित

Handle Payment Failures

Failed payments को detect, surface और retry करने की end-to-end guide।

Error Codes

Non-decline failures के लिए API और business-logic error codes।

Subscription Payment Retries

Subscription renewals पर soft declines recover करने वाले automatic retries।

Subscription Dunning

Payment method update करने के लिए prompt करके hard declines recover करने वाले email sequences।

Support

Transaction failures या integration issues में additional help के लिए support@dodopayments.com पर हमारी support team से contact करें।
अंतिम संशोधन 31 जुलाई 2026