नई सुविधाएँ
1. प्रॉडक्ट-लेवल एनालिटिक्स
अब प्रत्येक प्रॉडक्ट के लिए समर्पित एनालिटिक्स डैशबोर्ड उपलब्ध है। विस्तृत मेट्रिक्स देखने के लिए Products > [किसी प्रॉडक्ट को चुनें] पर जाएँ; ये मेट्रिक्स पांच टैब में व्यवस्थित हैं:
| टैब | क्या मिलता है |
|---|
| Overview | कुल राजस्व, सफल भुगतानों की संख्या, 30-दिन का राजस्व ट्रेंड चार्ट (दैनिक या संचयी), और फ़िल्टर योग्य लेनदेन तालिका |
| Customers | खर्च के अनुसार शीर्ष 3 ग्राहक पोडियम दृश्य में, साथ ही पूर्ण ग्राहक ब्रेकडाउन तालिका |
| Retention | ग्राहक छूट दर, राजस्व छूट दर, और पैटर्न देखने के लिए एक डुअल-लाइन ट्रेंड चार्ट |
| Subscribers | प्रॉडक्ट की सभी सदस्यताएँ स्थिति, प्रारंभ तिथि, अगली बिलिंग तिथि, और राशि के साथ |
| MRR | New MRR, Expansion MRR, Churned MRR, और Net New MRR ब्रेकडाउन के साथ मासिक आवर्ती राजस्व स्टैक्ड बार चार्ट |
सभी टैब तारीख फ़िल्टर का समर्थन करते हैं (डिफ़ॉल्ट: सभी समय) ताकि आप किसी भी अवधि में गहराई से देखें।
Retention टैब का उपयोग करके आप जल्दी से उच्च छूट वाले प्रॉडक्ट पहचान सकते हैं, और MRR टैब से यह ट्रैक कर सकते हैं कि विस्तार राजस्व माह-दर-माह छूट से आगे है या नहीं।
और जानें: Product-Level Analytics
2. Dodo Payments पर Verifi RDR समर्थन
Dodo Payments अब Verifi द्वारा संचालित Visa Rapid Dispute Resolution (RDR) का समर्थन करता है — एक स्वचालित विवाद रोकथाम उपकरण जो योग्य Visa विवादों को औपचारिक चार्जबैक बनने से पहले हल करता है। जब कार्डहोल्डर विवाद शुरू करता है, तो RDR उसे रोकता है और यदि लेनदेन आपके कॉन्फ़िगर किए गए USD थ्रेशोल्ड के नीचे है तो स्वचालित रूप से धनवापसी करता है।
क्यों यह महत्वपूर्ण है
| लाभ | प्रभाव |
|---|
| कम विवाद दर | RDR से हल होने वाले विवाद Visa की 0.9% सीमा में नहीं गिने जाते |
| कोई विवाद शुल्क नहीं | प्रत्येक विवाद पर 15−25 गैर-रिफंडेबल शुल्क से बचें |
| शून्य संचालनात्मक खर्च | कोई साक्ष्य जमा करना या प्रतिक्रिया की समयसीमा नहीं |
| बेहतर ग्राहक अनुभव | कार्डहोल्डर्स को तुरंत धनवापसी मिलती है |
| खाता सुरक्षा | Visa के Dispute Monitoring Program (VDMP) से बाहर रहें |
Visa की 0.9% विवाद दर या 100 विवाद/माह पार करने से VDMP ट्रिगर हो जाता है, जिसके साथ $50,000+/माह तक बढ़ते जुर्माने लगते हैं। RDR आपको इन सीमाओं से काफी नीचे बनाए रखता है।
यह कैसे काम करता है
- कार्डहोल्डर अपने बैंक से विवाद शुरू करता है
- RDR विवाद को औपचारिक चार्जबैक बनने से पहले रोकता है
- यदि लेनदेन राशि आपके थ्रेशोल्ड के बराबर या कम है, तो स्वचालित रूप से धनवापसी जारी की जाती है
- विवाद तुरंत हल हो जाता है और आपकी विवाद दर में गिना नहीं जाता
RDR के माध्यम से स्वचालित रूप से रिफंड किए गए लेनदेन आपके Dodo Payments डैशबोर्ड में एक हारी हुई विवाद के रूप में दिखते हैं। यह अपेक्षित है — औपचारिक चार्जबैक से बचने के लिए धनवापसी स्वचालित रूप से जारी की गई थी।
अपने खाते पर Verifi RDR सक्षम करने के लिए, अपने थ्रेशोल्ड को कॉन्फ़िगर करने हेतु support@dodopayments.com से संपर्क करें।
और जानें: Visa RDR Documentation
3. DodoPayments CLI
पेश है बिलकुल नया DodoPayments CLI (dodopayments-cli) — पूरी Dodo Payments वर्कफ़्लो को सीधे टर्मिनल से प्रबंधित करें। कमांड लाइन पसंद करने वाले डेवलपर्स के लिए बनाया गया CLI उत्पाद, भुगतान, ग्राहक, छूट, लाइसेंस, ऐडऑन, रिफंड तक प्रबंधन और चेकआउट सत्र तक बनाना बिना संपादक छोड़ने के संभव बनाता है।
स्थापना
npm install -g dodopayments-cli
कुंजी कमांड्स
| कमांड | विवरण |
|---|
dodo login | अपने API की के साथ प्रमाणित करें (ब्राउज़र खुलता है) |
dodo products list | सभी प्रॉडक्ट्स की सूची |
dodo payments list | सभी भुगतानों की सूची |
dodo customers create | नया ग्राहक बनाएं |
dodo checkout new | चेकआउट सत्र बनाएं और URL प्राप्त करें |
dodo wh listen | लाइव टेस्ट वेबहुक्स को WebSocket के जरिए अपने लोकल सर्वर पर अग्रेषित करें |
dodo wh trigger | किसी भी एंडपॉइंट पर मॉक वेबहुक पेलोड भेजें |
वेबहुक परीक्षण
CLI में विकास के लिए दो शक्तिशाली उपकरण शामिल हैं:
dodo wh listen — वास्तविक समय के टेस्ट वेबहुक्स को आपके लोकल सर्वर पर अग्रेषित करने के लिए WebSocket कनेक्शन खोलता है, सिग्नेचर सत्यापन के लिए मूल हेडर्स बनाए रखते हुए
dodo wh trigger — सभी 22 ईवेंट प्रकारों (सब्सक्रिप्शन, भुगतान, रिफंड, विवाद, और लाइसेंस) का समर्थन करते हुए मॉक वेबहुक पेलोड इंटरैक्टिव तरीके से भेजता है
वेबहुक श्रोता केवल टेस्ट मोड API की के साथ काम करता है। dodo wh listen का उपयोग करने से पहले सुनिश्चित करें कि आप टेस्ट मोड की से लॉग इन हैं।
और जानें: CLI Documentation
4. ग्राहक पोर्टल UI रिवैम्प
Customer Portal को पूरी तरह से नए, स्वच्छ और एकीकृत इंटरफेस के साथ फिर से डिज़ाइन किया गया है। नया पोर्टल बाईं साइडबार नेविगेशन और सुव्यवस्थित सेक्शनों के साथ आता है, जिससे ग्राहकों को बेहतर आत्म-सेवा अनुभव मिलता है।
क्या नया है
| सेक्शन | फीचर |
|---|
| Active Subscriptions | योजना विवरण, बिलिंग चक्र, और अगली भुगतान तिथि के साथ सभी सक्रिय सदस्यताएँ देखें |
| Payment Methods | सेव किए गए भुगतान विधियों का प्रबंधन करें, नए कार्ड जोड़ें, और भुगतान विवरण अपडेट करें |
| Billing History | डाउनलोड योग्य PDF रसीदों के साथ पिछले इनवॉइस देखें |
| Billing Information | नाम, ईमेल, फोन नंबर, और बिलिंग पता संपादित करें |
| Subscription Details | विस्तृत सदस्यता जानकारी देखें और योजना रद्द या बदलें |
| Plan Changes | प्रॉडक्ट कलेक्शंस के माध्यम से पोर्टल में सीधे अपग्रेड या डाउनग्रेड करें |
ग्राहक सक्रिय सदस्यताओं के लिए भुगतान विधियाँ अपडेट कर सकते हैं या असफल भुगतानों के कारण होल्ड पर गई सदस्यताओं को पुनः सक्रिय कर सकते हैं — वह भी नए पोर्टल से ही।
नया पोर्टल लाइव मोड के लिए https://customer.dodopayments.com/login/{business_id} पर और टेस्ट मोड के लिए https://test.customer.dodopayments.com/login/{business_id} पर उपलब्ध है।
और जानें: Customer Portal
5. इनलाइन चेकआउट में भुगतान विधि अपडेट
Inline checkout अब सदस्यताओं के लिए भुगतान विधि अपडेट का समर्थन करता है। जब किसी ग्राहक को अपनी भुगतान विधि अपडेट करनी हो (चाहे सक्रिय सदस्यता के लिए या होल्ड पर गई सदस्यता को पुनः सक्रिय करने के लिए), तो अपडेट भुगतान विधि फ़्लो को अब इनलाइन चेकआउट के माध्यम से सीधे आपके पेज लेआउट में रेंडर किया जा सकता है — एक सहज, एम्बेडेड अनुभव प्रदान करता है।
यह कैसे काम करता है
- Update Payment Method API को कॉल करें और
payment_link प्राप्त करें:
const response = await client.subscriptions.updatePaymentMethod('sub_123', {
type: 'new',
return_url: 'https://example.com/return'
});
- प्राप्त
payment_link को इनलाइन चेकआउट में checkoutUrl के रूप में उपयोग करें:
DodoPayments.Checkout.open({
checkoutUrl: response.payment_link,
elementId: "dodo-inline-checkout"
});
इनलाइन फ्रेम केवल भुगतान विधि संग्रह फ़ॉर्म रेंडर करता है, जिससे ग्राहक नए कार्ड विवरण दर्ज कर सकते हैं या बिना पेज छोड़े सेव की गई भुगतान विधि चुन सकते हैं।
ऑन-होल्ड सदस्यताओं के लिए, अपडेट भुगतान विधि फ़्लो स्वतः शेष बकाया राशि का चार्ज बनाता है। पुनः सक्रियता की पुष्टि के लिए payment.succeeded और subscription.active वेबहुक्स पर नज़र रखें।
और जानें: Inline Checkout | Subscription Payment Method Updates
6. चेकआउट सत्रों के लिए टैक्स आईडी प्रीफिल समर्थन
अब आप tax_id पैरामीटर का उपयोग करके चेकआउट सत्र बनाते समय टैक्स आईडी (जैसे VAT नंबर, GST नंबर) प्रीफिल कर सकते हैं। यह B2B लेनदेन के लिए आदर्श है जहाँ आपके पास ग्राहक का टैक्स पहचान संख्या पहले से मौजूद है। जब टैक्स आईडी प्रीफिल की जाती है, तो फ़ॉर्म में वह फ़ील्ड पहले से भरा और लॉक होता है।
const session = await client.checkoutSessions.create({
product_cart: [{ product_id: 'prod_123', quantity: 1 }],
customer: { customer_id: 'cus_123' },
billing_address: { country: 'DE' },
tax_id: 'DE999999999',
return_url: 'https://yoursite.com/return'
});
tax_id पैरामीटर को उस समय billing_address की आवश्यकता होती है जिसमें कम से कम country फ़ील्ड मौजूद हो। टैक्स पात्रता वास्तविक समय में सत्यापित होती है, और योग्य B2B लेनदेन के लिए रिवर्स-चार्ज नियम स्वतः लागू होते हैं।
allow_customer_editing_tax_id फीचर फ़्लैग का उपयोग करके नियंत्रित करें कि क्या ग्राहक प्रीफिल टैक्स आईडी को संशोधित कर सकते हैं, और allow_tax_id से चेकआउट पर टैक्स आईडी दृश्यता टॉगल करें।
और जानें: Checkout Sessions - Tax ID | B2B Payments
7. रिटर्न URL रीडायरेक्ट में लाइसेंस की और ईमेल
जब ग्राहक चेकआउट पूरा करता है, तो Dodo Payments अब आपके return_url रीडायरेक्ट में license_key और email को क्वेरी पैरामीटर के रूप में जोड़ता है, मौजूदा payment_id/subscription_id और status पैरामीटर के अतिरिक्त।
जोड़ दिए गए क्वेरी पैरामीटर
| पैरामीटर | प्रकार | शर्त |
|---|
payment_id | string | एक-बार भुगतान के लिए हमेशा उपस्थित |
subscription_id | string | सदस्यता भुगतानों के लिए हमेशा उपस्थित |
status | string | हमेशा उपस्थित |
license_key | string | यदि प्रॉडक्ट में लाइसेंस की सक्षम हैं तो उपस्थित (कई हों तो कॉमा से अलग) |
email | string | यदि ग्राहक का रिकॉर्ड में ईमेल है तो उपस्थित |
उदाहरण रीडायरेक्ट URL:
# One-time payment with license key
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com
# Subscription with multiple license keys
https://yoursite.com/return?subscription_id=sub_xxx&status=active&license_key=LK-001,LK-002&email=customer%40example.com
इन क्वेरी पैरामीटर का उपयोग लाइसेंस की दिखाने या रिटर्न पेज पर तुरंत पुष्टिकरण ईमेल भेजने के लिए करें, जिससे अतिरिक्त API कॉल की आवश्यकता नहीं पड़ेगी।
और जानें: Checkout Sessions - Return URL | License Keys in Return URL
8. ग्राहक ईमेल अपडेट API
PATCH /customers/{customer_id} एंडपॉइंट अब प्रोग्रामैटिक रूप से ग्राहक ईमेल पतों को अपडेट करने का समर्थन करता है। एक ही API कॉल में ईमेल के साथ नाम, फोन नंबर, और मेटाडाटा भी अपडेट करें।
await client.customers.update('cus_123', {
email: 'newemail@example.com',
name: 'Updated Name'
});
अपडेट करने योग्य फ़ील्ड
| फ़ील्ड | प्रकार | विवरण |
|---|
email | string | null | ग्राहक का ईमेल पता |
name | string | null | ग्राहक का डिस्प्ले नाम |
phone_number | string | null | अंतर्राष्ट्रीय फ़ॉर्मेट में फोन नंबर |
metadata | object | null | कस्टम की-वैल्यू पेयर्स |
ग्राहक ईमेल अपडेट Customer Portal (सेल्फ-सर्विस), डैशबोर्ड, और CLI के माध्यम से dodo customers update से भी उपलब्ध हैं।
और जानें: Customer Update API | Customer Management
9. Bun अडाप्टर रिलीज़
@dodopayments/bun — Bun के मूल सर्वर (Bun.serve()) के लिए समर्पित फ्रेमवर्क अडाप्टर पेश किया गया है। कुछ कोड लाइनों में Bun के साथ चेकआउट, ग्राहक पोर्टल, और वेबहुक्स को एकीकृत करें।
स्थापना
bun add @dodopayments/bun
त्वरित सेटअप
import { Checkout, CustomerPortal, Webhooks } from "@dodopayments/bun";
Bun.serve({
routes: {
"/api/checkout": Checkout({
bearerToken: process.env.DODO_PAYMENTS_API_KEY!,
returnUrl: process.env.DODO_PAYMENTS_RETURN_URL!,
environment: process.env.DODO_PAYMENTS_ENVIRONMENT!,
}),
"/api/customer-portal": CustomerPortal({
bearerToken: process.env.DODO_PAYMENTS_API_KEY!,
environment: process.env.DODO_PAYMENTS_ENVIRONMENT!,
}),
"/api/webhooks": Webhooks({
webhookKey: process.env.DODO_PAYMENTS_WEBHOOK_KEY!,
onPaymentSucceeded: async (payload) => {
console.log("Payment succeeded:", payload.data.payment_id);
},
onSubscriptionActive: async (payload) => {
console.log("Subscription active:", payload.data.subscription_id);
},
}),
},
});
Bun अडाप्टर सभी तीन चेकआउट फ़्लो (स्टैटिक, डायनेमिक, और सत्र-आधारित), ग्राहक पोर्टल सत्र निर्माण, और 22 ईवेंट प्रकारों में सिग्नेचर सत्यापन और Zod वैलिडेशन के साथ सुरक्षित वेबहुक हैंडलिंग का समर्थन करता है।
Bun अडाप्टर हमारे 11 फ्रेमवर्क अडाप्टरों (Next.js, Nuxt, Express, Fastify, Hono, Astro, SvelteKit, Remix, TanStack Start, Better Auth, और Convex) के परिवार में शामिल हुआ है।
और जानें: Bun Adapter Documentation | Framework Adapters Overview