Skip to main content
जब कोई भुगतान विफल होता है, Dodo Payments एक मानकीकृत error_code और मानव-पठनीय error_message प्रदान करता है। यह गाइड दिखाती है कि इन फ़ील्ड को कैसे पढ़ें, पुनः प्रयास करना है या नहीं यह कैसे तय करें, और भुगतान को सुरक्षित रूप से कैसे पुनर्प्राप्त करें।

Dodo Payments विफलता की रिपोर्ट कैसे करता है

हर विफल भुगतान में payment object पर ये फ़ील्ड होते हैं:
error_code और error_message तब तक null रहते हैं, जब तक कोई भुगतान विफल न हो जाए। हमेशा पहले status जाँचें।
error_message Merchant के लिए दिखाई देता है और धोखाधड़ी से जुड़े कारण प्रकट कर सकता है। इसे ग्राहकों को कभी न दिखाएँ। इसके बजाय error_code को ग्राहकों के लिए सुरक्षित भाषा में मैप करें (देखें Surface Errors to Customers Safely)।

payment.failed Webhook

विफलता का पता लगाने के लिए payment.failed webhook सबसे विश्वसनीय तरीका है। यह event पूरे payment object को data में लपेटता है:
payment.failed payload
एक न्यूनतम handler error_code को पढ़ता है और उसके आधार पर route करता है:
Processing से पहले हमेशा webhook signature verify करें। Signature verification और idempotency सहित पूरे setup के लिए Webhooks guide देखें।

तय करें कि Retry करना है या नहीं: Soft बनाम Hard Declines

error_code आपको बताता है कि उसी payment method को retry करना उपयोगी होगा या नहीं। अस्वीकृति के प्रकारों और सुझाई गई कार्रवाइयों की पूरी सूची के लिए Transaction Failures देखें।

Checkout के दौरान बनाम Renewal पर Failures को Handle करना

आप recovery कैसे करेंगे, यह इस बात पर निर्भर करता है कि customer मौजूद है या नहीं।
ग्राहक सक्रिय रूप से checkout कर रहा है। स्पष्ट संदेश दिखाएँ और उसे फिर से प्रयास करने या किसी अन्य card का उपयोग करने दें।
  • requires_payment_method — ग्राहक ने कोई payment method नहीं दिया। यह आमतौर पर checkout drop-off होता है, अस्वीकृति नहीं। भुगतान पूरा करने के लिए ग्राहक से दोबारा संपर्क करें (देखें Abandoned Cart Recovery)।
  • requires_customer_action — अतिरिक्त authentication (जैसे 3DS) आवश्यक है। ग्राहक से इसे पूरा करने के लिए कहें। 3D Secure देखें।

Failed Payment को Retry करना

Subscriptions: Soft declines को अपने-आप recover करने के लिए Subscription Payment Retries सक्षम करें। Schedule का इंतज़ार करने के बजाय तुरंत retry करने के लिए dashboard या API से Manual Payment Retry का उपयोग करें। ग्राहक से Update Payment Method API के माध्यम से अपना payment method अपडेट करवाकर भी recovery trigger कर सकते हैं, जिससे कोई भी बकाया राशि charge हो जाती है। One-time payments: checkout या payment_link फिर से भेजें, ताकि ग्राहक किसी अन्य method से दोबारा प्रयास कर सके। One-time payments के लिए कोई automatic retry नहीं है।
उसी card पर hard declines का पुनः प्रयास न करें। Card networks बार-बार होने वाली अस्वीकृतियों को abusive मानकर flag करते हैं, जिससे आपकी authorization rate प्रभावित होती है।

ग्राहकों को सुरक्षित रूप से त्रुटियाँ दिखाएँ

ग्राहकों को मित्रवत संदेश दिखाएँ, raw error_code या Merchant के लिए दिखाई देने वाले error_message को कभी नहीं।
Dodo Payments-नियंत्रित surfaces (checkout, Customer Portal, dunning emails) पर यह mapping आपके लिए पहले से की गई है, जिसमें fraud-related declines के लिए generic message का fallback भी शामिल है। नीचे दी गई mapping की आवश्यकता केवल तब है, जब आप अपने product में failures render करते हैं।
Customer-facing messaging
STOLEN_CARD, LOST_CARD, PICKUP_CARD या FRAUDULENT का वास्तविक कारण कभी उजागर न करें। इन्हें दिखाने से धोखाधड़ी करने वाले व्यक्ति को सतर्क किया जा सकता है। generic decline message दिखाएँ और विशिष्ट error_code को केवल आंतरिक रूप से log करें।

संबंधित

Transaction Failures

हर decline code, उसका प्रकार और सुझाई गई कार्रवाई।

Error Codes

API और business-logic errors जो card declines नहीं हैं।

Subscription Payment Retries

Subscription renewals पर soft declines की automatic recovery।

Subscription Dunning

Hard declines को recover करने वाले email sequences।

Payment Webhooks

Payment events के लिए पूर्ण payload schema।

Testing Failures

Declines और renewal failures को simulate करने वाले test cards।
अंतिम संशोधन 26 सितंबर 2026