> ## 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.

# छूट

> परिवर्तनों को बढ़ावा देने, अभियान चलाने, और ग्राहकों को एक बार की और सब्सक्रिप्शन खरीदारी पर प्रतिशत छूट के साथ पुरस्कृत करने के लिए प्रचार कोड बनाएं।

<Frame>
  <img src="https://mintcdn.com/dodopayments/mOQO5ej_lx0yH9p-/images/discount-codes/discount-code-cover.png?fit=max&auto=format&n=mOQO5ej_lx0yH9p-&q=85&s=57f1a644801ddc5efc506b50541eaaba" alt="छूट कोड अवलोकन कवर" style={{ maxHeight: '500px', width: 'auto' }} width="1200" height="630" data-path="images/discount-codes/discount-code-cover.png" />
</Frame>

छूट कोड आपको लक्षित प्रचार और प्रोत्साहन चलाने देते हैं। प्रतिशत-आधारित छूट बनाएं, सीमाएँ और समाप्ति निर्धारित करें, उत्पादों तक सीमित करें, और इन्हें चेकआउट में निर्बाध रूप से लागू करें।

<CardGroup cols={2}>
  <Card title="Checkout Sessions" icon="cart-shopping" href="/developer-resources/checkout-session">
    होस्टेड चेकआउट के दौरान इनलाइन कोड <code>`discount_codes`</code> और UI नियंत्रण के साथ एक या अधिक स्टैक्ड कोड लागू करें।
  </Card>

  <Card title="Validate Discount" icon="code" href="/api-reference/discounts/validate-discount">
    किसी डिस्काउंट की वैधता उसकी ID से जांचें।
  </Card>

  <Card title="Get Discount by Code" icon="tag" href="/api-reference/discounts/get-discount-by-code">
    कोड नाम (जैसे, "SAVE20") का उपयोग करके किसी डिस्काउंट को खोजें और सत्यापित करें।
  </Card>

  <Card title="Create Discount (API)" icon="code" href="/api-reference/discounts/create-discount">
    प्रोग्राम द्वारा नए डिस्काउंट कोड बनाएं।
  </Card>

  <Card title="List & Update Discounts" icon="code" href="/api-reference/discounts/list-discounts">
    मौजूदा डिस्काउंट ब्राउज़ करें और प्रबंधित करें; आवश्यकतानुसार अपडेट या हटाएं।
  </Card>

  <Card title="Plan Change Discounts" icon="arrows-rotate" href="/api-reference/subscriptions/change-plan">
    सब्सक्रिप्शन योजनाओं को अपग्रेड या डाउंग्रेड करते समय डिस्काउंट कोड लागू करें।
  </Card>
</CardGroup>

## डिस्काउंट कोड क्या हैं?

डिस्काउंट कोड प्रचार टोकन हैं जो चेकआउट पर ऑर्डर टोटल को कम करते हैं। ये निम्नलिखित के लिए आदर्श हैं:

* **सीज़नल अभियान**: ब्लैक फ्राइडे, उत्पाद लॉन्च, या वर्षगाँठ
* **अधिग्रहण ऑफ़र**: पहली खरीद प्रोत्साहन या रेफरल रिवॉर्ड्स
* **रिटेंशन**: मौजूदा ग्राहकों के लिए फिर से जीतने या वफादारी रिवॉर्ड्स
* **बी2बी डील्स**: निजी कोड के माध्यम से अनुबंधित या वार्ता मूल्य निर्धारण

## प्रमुख लाभ

* **लचीली छूटें**: प्रतिशत-आधारित छूटें
* **स्टेबल कोड**: चेकआउट, भुगतान, या सब्सक्रिप्शन पर 20 कोड तक लागू करें — अभियानों को जोड़ें (जैसे `WELCOME10` + `BLACKFRIDAY20`) बिना खास कोड बनाए
* **लक्षित नियंत्रण**: उत्पाद और सब्सक्रिप्शन चक्रों द्वारा प्रतिबंधित करें
* **अभियान संचालन**: समाप्ति तिथियाँ और उपयोग सीमाएं
* **निर्बाध चेकआउट**: चेकआउट सत्रों के माध्यम से UI फ़ील्ड और API समर्थन

## डिस्काउंट कोड बनाना

अपने डोडो पेमेंट्स डैशबोर्ड में डिस्काउंट कोड बनाएं, फिर उन्हें होस्टेड चेकआउट या एपीआई के माध्यम से लागू करें।

### डैशबोर्ड सेटअप

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

<Tip>
  उपरोक्त मूल्य निर्धारण के लिए सब्सक्रिप्शन पर चक्र सीमाएँ उपयोग करें (उदाहरण के लिए, "3 महीनों के लिए 50% छूट").
</Tip>

## चेकआउट अनुभव

1. खरीदार चेकआउट फ़ील्ड में कोड दर्ज करते हैं।
2. योग्य छूट लागू होती है और टोटल तुरंत अपडेट हो जाता है।

<Info>
  चेकआउट सत्रों में, एक या अधिक कोड पूर्व-लागू करने के लिए <code>`discount_codes`</code> (एक ऐरे) पास करें और इनपुट फ़ील्ड दिखाने के लिए <code>`feature_flags.allow_discount_code`</code> सेट करें। कोड ऐरे क्रम में लागू किए जाते हैं, अधिकतम 20 तक।
</Info>

## छूट कोड स्टैक करना

चेकआउट सत्र, भुगतान, और सब्सक्रिप्शन <code>`discount_codes`</code> ऐरे के माध्यम से **20 स्टैक्ड कोड तक** स्वीकार करते हैं (अधिकतम 20 प्रविष्टियां)। कोड **ऐरे क्रम में** लागू होते हैं, इसलिए पहला योग्य कोड मूल मूल्य को पहले कम करता है, अगला कोड पहले से छूट प्राप्त मूल्य को कम करता है, और इसी तरह। लागू छूट का पूरा सेट प्रतिक्रिया में दिया जाता है <code>`discount_ids`</code> (भुगतान/सब्सक्रिप्शन) के अंतर्गत और <code>`discounts`</code> (स्थिति और शेष सब्सक्रिप्शन चक्र सहित प्रत्येक छूट का अधिक विस्तृत विवरण) के अंतर्गत।

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
  discount_codes: ['WELCOME10', 'BLACKFRIDAY20'], // applied in this order
  customer: { email: 'user@example.com' },
  return_url: 'https://yoursite.com/return'
});
```

<Info>
  एकवचन <code>`discount_code`</code> फ़ील्ड **अप्रचलित** है लेकिन पिछड़ी संगतता के लिए अभी भी पूरी तरह से समर्थित है — मौजूदा एकीकरण बिना किसी परिवर्तन के काम करते रहते हैं। इसे उसी अनुरोध में <code>`discount_codes`</code> के साथ जोड़ा नहीं जा सकता है। हम अनुशंसा करते हैं कि सुविधाजनक होने पर <code>`discount_codes`</code> (ऐरे रूप) पर माइग्रेट करें, यहां तक कि एकल कोड के लिए, स्टैक और अधिक समृद्ध प्रतिक्रिया आकार का लाभ उठाने के लिए।
</Info>

## एपीआई प्रबंधन

<AccordionGroup>
  <Accordion title="Create discounts">
    प्रकार और राशि के साथ प्रोग्रामेटिक रूप से छूट कोड बनाएं।

    <Card title="API Reference" icon="code" href="/api-reference/discounts/create-discount">
      छूट एपीआई बनाना देखें।
    </Card>
  </Accordion>

  <Accordion title="List and retrieve">
    प्रबंधन और अंकेक्षण के लिए सभी छूटों की सूची बनाएं या विवरण प्राप्त करें।

    <Card title="API Reference" icon="code" href="/api-reference/discounts/list-discounts">
      लिस्टिंग और पुनर्प्राप्ति एपीआई ब्राउज़ करें।
    </Card>
  </Accordion>

  <Accordion title="Get discount by code">
    आंतरिक आईडी के बजाय इसके मानव-पठनीय कोड (उदा. "SAVE20") का उपयोग करके छूट की जांच करें।

    <Card title="API Reference" icon="code" href="/api-reference/discounts/get-discount-by-code">
      कोड नाम से छूट पुनः प्राप्त करें।
    </Card>
  </Accordion>

  <Accordion title="Update discounts">
    राशि, समाप्ति, या प्रतिबंध जैसे छूट विन्यास संशोधित करें।

    <Card title="API Reference" icon="code" href="/api-reference/discounts/update-discount">
      छूट विवरण अपडेट करने का तरीका जानें।
    </Card>
  </Accordion>

  <Accordion title="Validate discounts">
    लागू करने से पहले यह जांचें कि छूट मान्य और लागू है या नहीं।

    <Card title="API Reference" icon="code" href="/api-reference/discounts/validate-discount">
      छूट उपयोग का परीक्षण करें।
    </Card>
  </Accordion>

  <Accordion title="Delete discounts">
    ऐसी छूट को निष्क्रिय या हटा दें जिसकी अब आवश्यकता नहीं है।

    <Card title="API Reference" icon="code" href="/api-reference/discounts/delete-discount">
      छूट हटाएँ।
    </Card>
  </Accordion>
</AccordionGroup>

## सामान्य उपयोग के मामले

* **इंट्रो ऑफर**: नए उत्पादों के लिए सीमित समय का लॉन्च प्रमोशन
* **थोक या B2B**: चयनित उत्पाद सेटों के लिए ठेके द्वारा दी जाने वाली छूट
* **रिटेंशन प्ले**: ग्राहक छोड़ने की रोकथाम में वापस जीतने वाले कोड
* **मौसमी अभियान**: अवकाश या घटना-आधारित प्रमोशन

## एकीकरण उदाहरण

### मेटाडेटा के साथ छूट बनाएं

आंतरिक ट्रैकिंग के लिए कस्टम कुंजी-मूल्य जोड़े संलग्न करें।

```typescript theme={null}
const discount = await client.discounts.create({
  type: 'percentage',
  amount: 1500, // 15%
  code: 'SUMMER2025',
  metadata: {
    campaign: 'summer_promo',
    source: 'email_blast'
  }
});
```

<Tip>
  उपयोग का पुनःमिलान करने और बाद में निवेश पर रिटर्न मापने के लिए अभियानों, स्रोत या आंतरिक संदर्भ आईडी द्वारा छूट को टैग करने के लिए मेटाडेटा का उपयोग करें।
</Tip>

### चेकआउट सत्रों में छूट लागू करें

एक या अधिक स्टैक्ड छूट पूर्व-लागू करें और कोड इनपुट UI दिखाएं।

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  discount_codes: ['BLACKFRIDAY2024', 'NEWUSER5'], // stacked in array order
  customer: { email: 'user@example.com', name: 'Jane Doe' },
  return_url: 'https://yoursite.com/return'
});
```

### योजना परिवर्तनों के दौरान छूट लागू करें

जब ग्राहक अपने सब्सक्रिप्शन को अपग्रेड या डाउनग्रेड करते हैं, तो प्रचार मूल्य निर्धारण की पेशकश करें।

```typescript theme={null}
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_pro',
  quantity: 1,
  proration_billing_mode: 'prorated_immediately',
  discount_codes: ['UPGRADE20']
});
```

| <code>`discount_codes`</code> मान                                     | योजना परिवर्तन पर व्यवहार                                                                                    |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| <code>`undefined`</code> / <code>`null`</code> (प्रदान नहीं किया गया) | यदि नए उत्पाद पर लागू होता है तो <code>`preserve_on_plan_change=true`</code> के साथ मौजूदा छूट संरक्षित हैं। |
| <code>`[]`</code> (खाली ऐरे)                                          | **सभी** मौजूदा छूटें सब्सक्रिप्शन से हटा दी जाती हैं।                                                        |
| <code>`['CODE_A', 'CODE_B', ...]`</code>                              | इस स्टैक्ड सेट के साथ किसी भी मौजूदा छूट को प्रतिस्थापित करता है, जो ऐरे क्रम में लागू होता है।              |

<Info>
  सदस्यता प्रतिक्रिया पर नए <code>`discounts`</code> ऐरे के माध्यम से सभी लागू छूटों को पढ़ें। प्रत्येक प्रविष्टि में <code>`discount_id`</code>, <code>`position`</code>, <code>`cycles_remaining`</code> (सदस्यता के लिए), और मूल कोड शामिल हैं।
</Info>

### पूर्व-लागू किए बिना छूट प्रविष्टि सक्षम करें

ग्राहकों को बिना अग्रिम में कोई कोड पास किए चेकआउट पर एक कोड दर्ज करने दें।

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  feature_flags: {
    allow_discount_code: true
  },
  return_url: 'https://yoursite.com/return'
});
```

## सर्वोत्तम प्रथाएँ

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

<Info>
  छूट कोड अधिग्रहण और प्रतिधारण के लिए शक्तिशाली लीवर हैं। सरल, अच्छी तरह से नामांकित प्रस्तावों के साथ शुरू करें, पूरी तरह से मान्य करें, और प्रदर्शन के आधार पर दोहराएं।
</Info>
