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

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

हर विफल भुगतान — चाहे एक बार का चेकआउट हो या सदस्यता नवीकरण — भुगतान ऑब्जेक्ट पर समान विफलता फ़ील्ड्स ले जाता है:
error_code और error_message null हैं जब तक कि वास्तव में कोई भुगतान विफल नहीं होता है। हमेशा पहले status की जाँच करें, फिर त्रुटि फ़ील्ड पढ़ें।
Merchant API से प्राप्त error_message merchant-facing copy है। इसमें decline का वास्तविक कारण, जिसमें fraud-related कारण भी शामिल हैं, बताया जा सकता है, इसलिए इसे कभी भी सीधे customer को render न करें। इसके बजाय error_code को अपने customer-safe wording में map करें, जैसा कि Surface Errors to Customers Safely में दिखाया गया है।

payment.failed Webhook

Failure का पता लगाने का सबसे विश्वसनीय तरीका payment.failed webhook है। यह event पूरे payment object को data में wrap करता है:
payment.failed payload
एक minimal 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 reference हर error_code के लिए decline type और recommended action की सूची देती है।

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

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

Failed Payment को Retry करना

  • Subscriptions: बिना किसी integration work के soft declines recover करने के लिए Subscription Payment Retries enable करें। Customer से Update Payment Method API के माध्यम से अपना payment method update करवाकर भी recovery trigger कर सकते हैं; इससे कोई भी outstanding dues charge हो जाते हैं।
  • One-time payments: checkout या payment_link फिर से भेजें, ताकि customer किसी अलग method से दोबारा प्रयास कर सके। One-time payments के लिए कोई automatic retry नहीं है।
उसी card पर hard declines को retry न करें। Card networks repeated declines को abusive के रूप में flag कर सकते हैं, जिससे आपकी authorization rate प्रभावित होती है।

Customers को Errors सुरक्षित रूप से दिखाना

Customers को friendly message दिखाएं — कभी भी raw error_code नहीं और merchant-facing 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 का वास्तविक कारण कभी उजागर न करें। इन्हें दिखाने से किसी fraudulent actor को संकेत मिल सकता है। Generic decline message दिखाएं और specific error_code को केवल internally log करें।

संबंधित

Transaction Failures

हर decline code, उसका type और recommended action।

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 के लिए full payload schema।

Testing Failures

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