> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# v1.70.0 (24 दिसंबर, 2025)

> इनलाइन चेकआउट समर्थन, तात्कालिक चेकआउट के लिए मौजूदा भुगतान विधियों का उपयोग करें, डैशबोर्ड से सदस्यता योजनाओं का प्रबंधन करें, संक्षिप्त भुगतान लिंक उत्पन्न करें, सफलताओं के पृष्ठों को तुरंत पुनर्निर्देशित करें, और सभी व्यवसायों के लिए ऑन-डिमांड सदस्यताएँ सक्षम करें

## नई विशेषताएँ 🚀

1. **इनलाइन चेकआउट - पूरी तरह से एम्बेडेड चेकआउट अनुभव (बीटा)**

   अपने वेबसाइट में डोडो पेमेंट्स चेकआउट को सीधे एम्बेड करें ताकि एक सहज, ब्रांडेड भुगतान अनुभव मिल सके। ओवरले चेकआउट के विपरीत, जो एक मोडल के रूप में खुलता है, इनलाइन चेकआउट भुगतान फॉर्म को सीधे आपके पृष्ठ लेआउट में एम्बेड करता है।

   <Frame>
     <img src="https://mintcdn.com/dodopayments/HpxJAc8zNlxzewa_/images/inline-checkout/cover.png?fit=max&auto=format&n=HpxJAc8zNlxzewa_&q=85&s=99c1a92ef01680248a421d3f057b02cd" alt="इनलाइन चेकआउट कवर छवि" style={{ maxHeight: '500px', width: 'auto' }} width="839" height="565" data-path="images/inline-checkout/cover.png" />
   </Frame>

   ### लाभ

   * **पूर्ण रूप से एकीकृत**: ऐसे चेकआउट अनुभव बनाएं जो आपकी वेबसाइट के साथ सहजता से मिश्रित हों
   * **कस्टम ऑर्डर सारांश**: वास्तविक समय में चेकआउट के साथ समन्वयित कस्टम UI बनाएं
   * **अधिकतम नियंत्रण**: चेकआउट लेआउट और डिज़ाइन पर पूर्ण नियंत्रण
   * **PCI अनुपालन**: डोडो पेमेंट्स सभी संवेदनशील भुगतान जानकारी को सुरक्षित रूप से संभालता है
   * **वास्तविक समय समन्वय**: चेकआउट स्थिति के साथ अपने UI को समन्वयित रखने के लिए SDK घटनाओं का उपयोग करें

   ### यह कैसे काम करता है

   SDK को `displayType: 'inline'` के साथ इनिशियलाइज़ करें और चेकआउट को एक कंटेनर एлемент में एम्बेड करें:

   ```typescript theme={null}
   import { DodoPayments } from "dodopayments-checkout";

   // Initialize the SDK for inline mode
   DodoPayments.Initialize({
     mode: "test",
     displayType: "inline",
     onEvent: (event) => {
       if (event.event_type === "checkout.breakdown") {
         // Update your UI with real-time tax and total calculations
         const breakdown = event.data?.message;
       }
     },
   });

   // Open checkout in a specific container
   DodoPayments.Checkout.open({
     checkoutUrl: "https://test.checkout.dodopayments.com/session/cks_123",
     elementId: "dodo-inline-checkout" // ID of the container element
   });
   ```

   ### प्रमुख विशेषताएँ

   * **रियल-टाइम ब्रेकडाउन इवेंट्स**: ग्राहक जब विवरण दर्ज करें तो `checkout.breakdown` इवेंट्स प्राप्त करें
   * **कस्टम ऑर्डर सारांश**: अपनी स्वयं की प्राइसिंग डिस्प्ले बनाएं जो रियल-टाइम में अपडेट होती है
   * **समृद्ध एकीकरण**: चेकआउट फ़्रेम भुगतान संग्रह को संभालता है जबकि आप लेआउट पर नियंत्रण रखते हैं
   * **SDK मेथड्स**: `open()`, `close()`, और `isOpen()` का उपयोग करके प्रोग्रामेटिक रूप से चेकआउट को नियंत्रित करें

   <Check>
     परिणाम: पूरी तरह से एकीकृत चेकआउट अनुभव जो आपके ब्रांड से मेल खाते हैं और पेमेंट फ्लो पर अधिकतम नियंत्रण प्रदान करते हैं।
   </Check>

   <Tip>
     जब आप चेकआउट डिज़ाइन पर अधिकतम नियंत्रण चाहते हैं तो इनलाइन चेकआउट का उपयोग करें। मौजूदा पृष्ठों में न्यूनतम परिवर्तन के लिए [overlay checkout](/developer-resources/overlay-checkout) का उपयोग करें।
   </Tip>

   अधिक जानें: [इनलाइन चेकआउट गाइड](/developer-resources/inline-checkout)

2. **मौजूदा भुगतान विधियों का उपयोग करके पेमेंट्स, सब्सक्रिप्शन और चेकआउट बनाएं**\
   सहेजी गई भुगतान विधियों का उपयोग करके चेकआउट फ्लो को सरल बनाएं। नया `payment_method_id` पैरामीटर आपको ग्राहक की पहले से सहेजी गई भुगतान विधि का उपयोग करके पेमेंट, सब्सक्रिप्शन या चेकआउट सत्र बनाने की अनुमति देता है।

   ### लाभ

   * **तेज चेकआउट**: लौटने वाले ग्राहकों के लिए भुगतान विधि संग्रह को छोड़ें
   * **एक-क्लिक खरीदारी**: सहेजे गए भुगतान विधियों के साथ तात्कालिक खरीदारी सक्षम करें
   * **सदस्यता प्रबंधन**: मौजूदा भुगतान विधियों का उपयोग करके आसानी से सदस्यताएँ बनाएं
   * **सुधरी हुई रूपांतरण**: दोहराने वाले ग्राहकों के लिए चेकआउट में रुकावट को कम करें

   ### यह कैसे काम करता है

   चेकआउट सत्र, पेमेंट या सब्सक्रिप्शन बनाते समय `payment_method_id` का उपयोग करें:

   <Tabs>
     <Tab title="Checkout Sessions">
       ```javascript theme={null}
       const session = await client.checkoutSessions.create({
         product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
         customer: {
           customer_id: 'cus_123'
         },
         payment_method_id: 'pm_abc123',
         confirm: true
       });
       ```
     </Tab>

     <Tab title="One-Time Payments">
       ```javascript theme={null}
       const payment = await client.payments.create({
         product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
         customer: { customer_id: 'cus_123' },
         billing: { country: 'US' },
         payment_method_id: 'pm_abc123'
       });
       ```
     </Tab>

     <Tab title="Subscriptions">
       ```javascript theme={null}
       const subscription = await client.subscriptions.create({
         customer: { customer_id: 'cus_123' },
         billing: { country: 'US' },
         product_id: 'pdt_subscription',
         quantity: 1,
         payment_method_id: 'pm_abc123'
       });
       ```
     </Tab>
   </Tabs>

   <Warning>
     जब चेकआउट सत्रों में `payment_method_id` का उपयोग होता है, तो `confirm` को `true` पर सेट करना आवश्यक है, और एक मौजूदा `customer_id` प्रदान किया जाना चाहिए। भुगतान विधि को भुगतान की मुद्रा के साथ पात्रता के लिए मान्य किया जाएगा।
   </Warning>

   <Info>
     भुगतान विधि ग्राहक की होनी चाहिए और भुगतान मुद्रा के साथ संगत होनी चाहिए। यदि मान्यता विफल होती है, तो अनुरोध एक त्रुटि लौटाएगा।
   </Info>

3. **डैशबोर्ड में सदस्यता योजना परिवर्तन और अगली बिलिंग तिथि अपडेट**

   डैशबोर्ड से सीधे सदस्यता योजनाओं का प्रबंधन करें और बेहतर नियंत्रण प्राप्त करें। आप अब एक ही क्रिया में सदस्यता योजनाओं को बदल सकते हैं और अगली बिलिंग तिथि को अपडेट कर सकते हैं, जिससे आपको सदस्यता प्रबंधन पर पूर्ण लचीलापन मिलता है।

   <Frame>
     <img src="https://mintcdn.com/dodopayments/vqwKWj9TjLp0w5lS/images/changelog/subscription-plan-changes.png?fit=max&auto=format&n=vqwKWj9TjLp0w5lS&q=85&s=23d2cf888e9d70316e3a110c10bb77c6" alt="डैशबोर्ड में सब्सक्रिप्शन योजना में परिवर्तन" style={{ maxHeight: '500px', width: 'auto' }} width="1909" height="962" data-path="images/changelog/subscription-plan-changes.png" />
   </Frame>

   ### डैशबोर्ड विशेषताएँ

   * **योजना परिवर्तन**: एक क्लिक में सदस्यताओं को अपग्रेड या डाउनग्रेड करें
   * **बिलिंग तिथि नियंत्रण**: योजनाएँ बदलते समय अगली बिलिंग तिथि को अपडेट करें
   * **प्रोरेशन विकल्प**: योजनाएँ बदलते समय प्रोरेशन को संभालने के तरीके का चयन करें
   * **दृश्य पूर्वावलोकन**: पुष्टि करने से पहले यह देखें कि योजना परिवर्तन बिलिंग को कैसे प्रभावित करते हैं

   ### उपयोग के मामले

   * **ग्राहक समर्थन**: ग्राहक अनुरोधों के लिए सदस्यता योजनाओं को जल्दी समायोजित करें
   * **प्रचारात्मक अपग्रेड**: विशिष्ट बिलिंग तिथियों के साथ ग्राहकों को अस्थायी रूप से अपग्रेड करें
   * **योजना माइग्रेशन**: ग्राहकों को सदस्यता स्तरों के बीच सुचारू रूप से स्थानांतरित करें
   * **बिलिंग संरेखण**: कई सदस्यताओं के बीच बिलिंग तिथियों को संरेखित करें

   <Check>
     परिणाम: डैशबोर्ड से पूर्ण सब्सक्रिप्शन प्रबंधन नियंत्रण, सामान्य सब्सक्रिप्शन समायोजनों के लिए API कॉल की आवश्यकता को कम करता है।
   </Check>

   <Tip>
     त्वरित सब्सक्रिप्शन प्लान परिवर्तनों के लिए डैशबोर्ड का उपयोग करें, और अपने एप्लिकेशन में प्रोग्रामेटिक सब्सक्रिप्शन प्रबंधन के लिए API का उपयोग करें।
   </Tip>

4. **भुगतान URLs के लिए संक्षिप्त लिंक**\
   हमारे नए संक्षिप्त लिंक फीचर के साथ साफ, अधिक साझा करने योग्य भुगतान लिंक उत्पन्न करें। संक्षिप्त लिंक कस्टम स्लग के साथ संक्षिप्त चेकआउट URLs प्रदान करते हैं, जिससे उन्हें ग्राहकों के साथ साझा करना या आपकी वेबसाइट पर एम्बेड करना आसान हो जाता है।

   <Frame>
     <img src="https://mintcdn.com/dodopayments/vqwKWj9TjLp0w5lS/images/changelog/short-links.png?fit=max&auto=format&n=vqwKWj9TjLp0w5lS&q=85&s=c5361cb37520128513ed5e3b1111fbb1" alt="भुगतान URLs के लिए शॉर्ट लिंक सुविधा" style={{ maxHeight: '500px', width: 'auto' }} width="1915" height="962" data-path="images/changelog/short-links.png" />
   </Frame>

   ### लाभ

   * **साफ URLs**: लंबे भुगतान URLs को संक्षिप्त, ब्रांडेड लिंक से बदलें
   * **बेहतर विश्वास**: पेशेवर दिखने वाले लिंक जो ग्राहक विश्वास को बढ़ाते हैं
   * **आसान साझा करना**: SMS, ईमेल, या सोशल मीडिया के लिए आदर्श सरल URLs
   * **कस्टम स्लग**: अपने उत्पादों के लिए यादगार, ब्रांडेड संक्षिप्त लिंक बनाएं

   ### यह कैसे काम करता है

   चेकआउट सत्रों या भुगतान लिंक बनाते समय संक्षिप्त लिंक सक्षम करें:

   <Tabs>
     <Tab title="Checkout Sessions">
       ```javascript theme={null}
       const session = await client.checkoutSessions.create({
         product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
         short_link: true,
         return_url: 'https://yourapp.com/success'
       });
       ```
     </Tab>

     <Tab title="Payment Links">
       ```javascript theme={null}
       const payment = await client.payments.create({
         product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
         short_link: true,
         return_url: 'https://yourapp.com/success'
       });
       ```
     </Tab>
   </Tabs>

   <Check>
     परिणाम: एक छोटा भुगतान लिंक जो साझा करने में अधिक आसान और अधिक पेशेवर दिखता है, जिससे रूपांतरण दर और ग्राहक विश्वास में सुधार होता है।
   </Check>

   <Info>
     शॉर्ट लिंक आपके डैशबोर्ड में प्रबंधित होते हैं और इन्हें [List Short Links API](/api-reference/products/get-products-short-links) के माध्यम से देखा जा सकता है।
   </Info>

5. **`redirect_immediately` फ़्लैग - भुगतान सफलता पृष्ठ को स्किप करें**\
   नए `redirect_immediately` फ़्लैग के साथ चेकआउट फ्लो को नियंत्रित करें। जब इसे सक्षम किया जाता है, तो ग्राहक भुगतान पूर्ण होने के बाद तुरंत पुनर्निर्देशित किए जाते हैं, डिफ़ॉल्ट सफलता पेज को बाईपास करके एक तेज़, अधिक सुव्यवस्थित अनुभव के लिए।

   ### उपयोग के मामले

   * **तेज चेकआउट प्रवाह**: मध्यवर्ती पृष्ठों को छोड़कर रुकावट को कम करें
   * **कस्टम सफलता पृष्ठ**: सीधे अपने ब्रांडेड सफलता पृष्ठ पर पुनर्निर्देशित करें
   * **मोबाइल ऑप्टिमाइजेशन**: तात्कालिक पुनर्निर्देशनों के साथ मोबाइल चेकआउट अनुभव में सुधार करें
   * **एम्बेडेड चेकआउट**: ओवरले या एम्बेडेड चेकआउट प्रवाह के साथ सहजता से एकीकृत करें

   ### यह कैसे काम करता है

   चेकआउट सत्रों, भुगतानों, या सदस्यताओं में तात्कालिक पुनर्निर्देशनों को सक्षम करें:

<Tabs>
  <Tab title="Checkout Sessions">
    ```javascript theme={null}
    const session = await client.checkoutSessions.create({
      product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
      feature_flags: {
        redirect_immediately: true
      },
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Tab>

  <Tab title="One-Time Payments">
    ```javascript theme={null}
    const payment = await client.payments.create({
      product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
      redirect_immediately: true,
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Tab>

  <Tab title="Subscriptions">
    ```javascript theme={null}
    const subscription = await client.subscriptions.create({
      customer: { customer_id: 'cus_123' },
      billing: { country: 'US' },
      product_id: 'pdt_subscription',
      quantity: 1,
      redirect_immediately: true,
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Tab>
</Tabs>

<Tip>
  जब आपकी अपनी कस्टम सफलता पेज हो जो डिफ़ॉल्ट भुगतान सफलता पेज से बेहतर उपयोगकर्ता अनुभव प्रदान करता हो, तो `redirect_immediately: true` का उपयोग करें।
</Tip>

<Note>
  जब `redirect_immediately` सक्षम होता है, तो ग्राहक भुगतान पूर्ण होने के तुरंत बाद आपके `return_url` पर पुनर्निर्देशित किए जाते हैं, डिफ़ॉल्ट सफलता पेज को पूरी तरह से छोड़ते हुए।
</Note>

6. **ऑन-डिमांड सदस्यताएँ - सभी व्यवसायों के लिए उपलब्ध**\
   ऑन-डिमांड सदस्यताएँ अब सभी व्यवसायों के लिए सक्षम हैं, जिससे आपको उपयोग-आधारित और मीटर किए गए सेवाओं के लिए लचीला बिलिंग नियंत्रण मिलता है।

   ### यह क्या सक्षम करता है

   * **उपयोग-आधारित बिलिंग**: सदस्यताएँ बनाएं और ग्राहकों को वास्तविक उपयोग के आधार पर चार्ज करें
   * **लचीले बिलिंग चक्र**: ग्राहकों को निश्चित अंतराल के बजाय ऑन-डिमांड चार्ज करें
   * **मीटर किए गए सेवाएँ**: API उपयोग, भंडारण, कंप्यूट समय, और अन्य मीटर किए गए संसाधनों के लिए आदर्श
   * **मैनुअल चार्ज नियंत्रण**: जब आवश्यक हो, चार्ज मैन्युअल रूप से बनाएं, जिससे आपको बिलिंग समय पर पूर्ण नियंत्रण मिलता है

   ### यह कैसे काम करता है

   एक ऑन-डिमांड सदस्यता बनाएं और आवश्यकतानुसार ग्राहकों को चार्ज करें:

   ```javascript theme={null}
   // Create an on-demand subscription
   const subscription = await client.subscriptions.create({
     customer: { customer_id: 'cus_123' },
     billing: { country: 'US' },
     product_id: 'pdt_api_access',
     quantity: 1,
     on_demand: { mandate_only: true }
   });

   // Charge the customer when usage occurs
   await client.subscriptions.charge(subscription.subscription_id, {
     product_price: 4900,
     product_currency: 'USD',
     product_description: 'API usage for September: 1,000 requests'
   });
   ```

   <Check>
     परिणाम: ग्राहकों को कब और कितना शुल्क लेना है इस पर पूर्ण नियंत्रण, उपयोग आधारित बिज़नेस मॉडल के लिए एकदम सही।
   </Check>

   अधिक जानें: [ऑन-डिमांड सदस्यताएँ](/developer-resources/ondemand-subscriptions)

7. **सामान्य बग फिक्स और सुधार**\
   इस रिलीज़ में प्रदर्शन सुधार, UI पॉलिश, और एक अधिक विश्वसनीय, सुव्यवस्थित अनुभव के लिए छोटे बगों को हल किया गया है.
