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

# परिचय

> लाइसेंस कुंजियाँ, डाउनलोड योग्य फ़ाइलें, और ग्राहकों के भुगतान करने पर Discord, GitHub, Telegram, Framer, और Notion जैसे प्लेटफार्मों तक पहुंच अपने आप वितरित करें।

<Info>
  Entitlements सफल भुगतान या सक्रिय सब्सक्रिप्शन को वास्तविक पहुंच में बदल देते हैं: आपके ग्राहक के इनबॉक्स में एक लाइसेंस कुंजी, एक Discord भूमिका, एक GitHub रिपॉजिटरी, एक Notion टेम्पलेट, एक Framer रिमिक्स लिंक, एक Telegram चैट इनवाइट, या एक डाउनलोड करने योग्य फ़ाइल बंडल। भुगतान जीवनचक्र में बदलाव के साथ Dodo Payments स्वचालित रूप से उस पहुंच को जारी करता है, ट्रैक करता है, और वापस ले लेता है।
</Info>

<Frame caption="The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.">
  <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=12a326205f64d1e71485bce46114d296" alt="Entitlements डैशबोर्ड जिसमें बाईं ओर Entitlements की सूची और दाईं ओर अनुदान गतिविधि है" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1195" data-path="images/entitlements/list.png" />
</Frame>

## Entitlements क्या हैं?

एक **entitlement** वह पुनः उपयोग योग्य परिभाषा है जिसे आप ग्राहक को वितरित करते हैं: एक प्रो लाइसेंस कुंजी, एक "Patrons" Discord भूमिका, आपके निजी GitHub रिपॉजिटरी का एक्सेस, डाउनलोड करने योग्य e-book बंडल। आप Entitlements को उत्पादों से संलग्न करते हैं, और Dodo Payments बाकी काम संभालता है।

जब कोई ग्राहक उत्पाद खरीदता है, तो Dodo Payments एक **grant** बनाता है, जो कि उस entitlement की ग्राहक की एकल जारीगी होती है। ग्रांट्स कुछ स्थिति के सेट के माध्यम से चलते हैं: `pending` जब डिलीवरी प्रगति पर होती है, `delivered` एक बार जब ग्राहक को पहुंच प्राप्त हो जाती है, `failed` यदि डिलीवरी पूरी नहीं हो सकी, और `revoked` जब पहुंच वापस ले ली जाती है।

<Tip>
  Entitlements **fulfillment** को गेट करते हैं (क्या ग्राहक को पहुंच है?)। क्रेडिट **consumption** को गेट करते हैं (वे कितनी मात्रा में इसका उपयोग कर सकते हैं?)। दोनों को एक ही उत्पाद से जोड़ा जा सकता है। क्रेडिट्स के लिए [Credit-Based Billing](/features/credit-based-billing) देखें।
</Tip>

## उपलब्ध इंटीग्रेशन

Dodo Payments प्रत्येक entitlement को समर्पित इंटीग्रेशन के माध्यम से वितरित करता है। उस इंटीग्रेशन को चुनें जो आपके बेच के सामान के साथ मेल खाता है।

<CardGroup cols={2}>
  <Card title="License Keys" icon="key" href="/features/license-keys">
    सक्रियन सीमा और समाप्ति के साथ अद्वितीय लाइसेंस कुंजियाँ उत्पन्न करें। सॉफ़्टवेयर, प्लगइन्स, और CLIs के लिए सबसे अच्छा।
  </Card>

  <Card title="Digital Files" icon="download" href="/features/digital-product-delivery">
    डाउनलोड करने योग्य फाइलें (e-books, टेम्पलेट्स, मीडिया) प्रीसाइनिंग डाउनलोड URLs और वैकल्पिक निर्देशों के साथ वितरित करें।
  </Card>

  <Card title="Discord" icon="discord" href="/features/entitlements/discord">
    जब वे खरीदारी करें तो एक ग्राहक को आपके Discord सर्वर में एक भूमिका प्रदान करें। रद्द करने पर स्वचालित रूप से रद्द करें।
  </Card>

  <Card title="GitHub" icon="github" href="/features/entitlements/github">
    आपके द्वारा चुने गए अनुमति स्तर पर एक निजी रिपॉजिटरी में ग्राहकों को सहयोगी के रूप में जोड़ें।
  </Card>

  <Card title="Telegram" icon="telegram" href="/features/entitlements/telegram">
    खरीदारी के बाद ग्राहकों को एक निजी Telegram चैट या चैनल में जोड़ें।
  </Card>

  <Card title="Framer" icon="puzzle-piece" href="/features/entitlements/framer">
    भुगतान करने वाले ग्राहकों के लिए एक Framer टेम्पलेट रिमिक्स लिंक अनलॉक करें।
  </Card>

  <Card title="Notion" icon="book" href="/features/entitlements/notion">
    क्रय पर ग्राहक के कार्यस्थल में एक Notion टेम्पलेट को डुप्लिकेट करें।
  </Card>
</CardGroup>

***

## ग्रांट्स कैसे काम करते हैं

ग्रांट्स उन्हीं भुगतान और सब्सक्रिप्शन घटनाओं द्वारा संचालित होते हैं जिन्हें आप पहले ही वेबहुक्स के रूप में प्राप्त कर चुके हैं। आपको खुद खरीद के लिए ग्रांट API कॉल करने की जरूरत नहीं है। Dodo Payments भुगतान जीवनचक्र के आधार पर स्वचालित रूप से ग्रांट्स बनाता और रद्द करता है।

### ग्रांट जीवनचक्र

<Steps>
  <Step title="Created">
    एक ग्रांट तब बनाया जाता है जब भुगतान पूरा होता है या सब्सक्रिप्शन सक्रिय हो जाता है। लाइसेंस कुंजियाँ सीधे `delivered` पर जाती हैं। हर अन्य इंटीग्रेशन `pending` में शुरू होता है। OAuth-आधारित इंटीग्रेशन (Discord, GitHub, Notion) एक `oauth_url` शामिल करते हैं जिसे ग्राहक को सहमति पूरी करने के लिए जाना पड़ता है। प्लेटफॉर्म-सीधे इंटीग्रेशन (Telegram, Framer, Digital Files) थोड़े समय के लिए `pending` में रहते हैं जबकि डिलीवरी प्रदान की जाती है, फिर `delivered` में ट्रांजिशन करते हैं।
  </Step>

  <Step title="Delivered">
    एक बार जब डिलीवरी पूरी हो जाती है (लाइसेंस कुंजी उत्पन्न होती है, भूमिका असाइन की जाती है, रिपॉजिटरी एक्सेस प्रदान किया जाता है, फ़ाइल लिंक हल किए जाते हैं, OAuth पूरा होता है), तो ग्रांट `delivered` में चला जाता है और `delivered_at` सेट होता है।
  </Step>

  <Step title="Failed">
    यदि इंटीग्रेशन कॉल एक गैर-पुनः प्रयास योग्य त्रुटि लौटाता है (रद्द Oauth टोकन, डिनाइड परमिशन, फ़ाइल अब मौजूद नहीं है), तो ग्रांट `failed` पर चला जाता है। `error_code` और `error_message` फ़ील्ड्स कारण को कैप्चर करते हैं।
  </Step>

  <Step title="Revoked">
    जब पहुंच को वापस ले लिया जाता है (सब्सक्रिप्शन रद्द कर दिया गया, रिफंड जारी किया गया, या मर्चेंट द्वारा शुरू किया गया रद्द), तो ग्रांट `revoked` पर चला जाता है। `revocation_reason` फ़ील्ड ट्रिगर को रिकॉर्ड करता है।
  </Step>
</Steps>

### इवेंट द्वारा ग्रांट व्यवहार

| इवेंट                                            | व्यवहार                                                                                                                                                                |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `payment.succeeded` (वन-टाइम भुगतान)             | संलग्न प्रत्येक entitlement के लिए एक ग्रांट जारी करें।                                                                                                                |
| `payment.succeeded` (सब्सक्रिप्शन-लिंक्ड भुगतान) | नो-ऑप। ग्रांट्स नीचे दिए गए सब्सक्रिप्शन इवेंट द्वारा संचालित होते हैं।                                                                                                |
| `subscription.active`                            | उन किसी भी संलग्न Entitlements के लिए ग्रांट्स जारी करें जिनके पास पहले से एक नहीं है। अगर वही सब्सक्रिप्शन के लिए पहले रद्द ग्रांट्स हों तो उन्हें फिर से अनुदान दें। |
| `subscription.renewed`                           | नो-ऑप। मौजूदा ग्रांट्स नवीनीकरण के दौरान बरकरार रहते हैं।                                                                                                              |
| `subscription.on_hold`                           | सभी वितरित और लंबित ग्रांट्स को रद्द करें। `revocation_reason: subscription_on_hold`।                                                                                  |
| `subscription.cancelled`                         | सभी रद्द करें। `revocation_reason: subscription_cancelled`।                                                                                                            |
| `subscription.expired`                           | सभी रद्द करें। `revocation_reason: subscription_expired`।                                                                                                              |
| `subscription.plan_changed`                      | वर्तमान ग्रांट्स को रद्द करें, फिर नए योजना की Entitlements के लिए ग्रांट्स जारी करें। `revocation_reason: plan_changed`।                                              |
| `refund.succeeded` (वन-टाइम भुगतान)              | उस भुगतान के लिए ग्रांट्स को रद्द करें। `revocation_reason: refund`।                                                                                                   |
| मैनुअल API रद्द करें                             | `revocation_reason: manual` के साथ रद्द करें। मै                                                                                                                       |

नुअल रद्दियां सब्सक्रिप्शन नवीनीकरण पर स्वत: पुन:अनुदानित नहीं होती हैं। |
\| लाइसेंस कुंजी अक्षम है | लाइसेंस-कुंजी ग्रांट्स के लिए, अक्षम कुंजी ग्रांट को `revocation_reason: license_key_disabled` के साथ रद्द करता है। अगर कुंजी को पुनः सक्षम किया जाता है तो ग्रांट स्वत: पुनः सक्रिय हो जाता है। |
\| प्लेटफ़ॉर्म बहाव का पता चला | अगर किसी इंटीग्रेशन का प्लेटफॉर्म हिस्सा सिंक से बाहर हो जाता है (एक Discord भूमिका को मैन्युअली हटा दिया गया, GitHub ऐप ने रिपॉजिटरी एक्सेस खो दी, या एक समन्वयन पास एक गायब लक्ष्य का पता लगाता है), तो ग्रांट को `revocation_reason: platform_external` के साथ रद्द किया जाता है। प्लेटफार्म मुद्दे के हल होने तक सब्सक्रिप्शन नवीनीकरण पर स्वतः पुन:अनुदानित नहीं होता। |

<Note>
  सब्सक्रिप्शन-द्वारा संचालित ग्रांट्स `(entitlement, customer, subscription)` पर नामांकन होते हैं; नवीनीकरण और पुनःसक्रियण डुप्लिकेट ग्रांट्स नहीं बनाते। वन-टाइम ग्रांट्स `(entitlement, customer, payment)` पर नामांकन होते हैं।
</Note>

***

## अपना पहला Entitlement बनाएं

<Steps>
  <Step title="Open Entitlements">
    अपने Dodo Payments डैशबोर्ड में **Entitlements** पर जाएं और एक नया entitlement बनाने के लिए **+** पर क्लिक करें।
  </Step>

  <Step title="Pick an integration">
    इंटीग्रेशन प्रकार चुनें: लाइसेंस कुंजी, डिजिटल फ़ाइलें, Discord, GitHub, Telegram, Framer, या Notion। प्लेटफार्म इंटीग्रेशन के लिए, पहले अपना खाता कनेक्ट करें अगर आपने पहले से नहीं किया है।
  </Step>

  <Step title="Configure delivery">
    इंटीग्रेशन-विशिष्ट फ़ील्ड भरें। उदाहरण के लिए, GitHub एक रिपॉजिटरी और एक अनुमति स्तर पूछता है; Discord एक सर्वर और एक वैकल्पिक भूमिका पूछता है; लाइसेंस कुंजी सक्रियता सीमा और समाप्ति पूछती है।

    <Frame caption="Creating a GitHub entitlement. Each integration shows the fields it needs.">
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=722e925ec5158a5d16c58213132ccb9d" alt="नई Entitlement फॉर्म जिसमें इंटीग्रेशन चयनकर्ता और कॉन्फिगरेशन फ़ील्ड्स हैं" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1130" data-path="images/entitlements/github/create.png" />
    </Frame>
  </Step>

  <Step title="Save">
    Entitlement को सेव करें। अब आप इसे किसी भी उत्पाद से संलग्न कर सकते हैं।
  </Step>
</Steps>

## उत्पादों से Entitlements संलग्न करें

किसी उत्पाद को खोलें, **Advanced Settings → Entitlements & Credits** को बढ़ाएं, और उन entitlements का चयन करें जिन्हें उत्पाद खरीदने पर वितरित किया जाना चाहिए। एकल उत्पाद एक बार में कई entitlements वितरित कर सकता है। उदाहरण के लिए, एक प्रो योजना में लाइसेंस कुंजी, GitHub एक्सेस, और एक Discord भूमिका शामिल हो सकती है।

<Frame caption="Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.">
  <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/attach-to-product.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=965ad78262791fa8dbb712b4fdf89538" alt="उत्पाद Entitlement चयन पैनल दिखा रहा है जिसमें हर उपलब्ध Entitlement के लिए चेकबॉक्स हैं" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1197" data-path="images/entitlements/attach-to-product.png" />
</Frame>

***

## ग्राहक अनुभव

### ईमेल और ग्राहक पोर्टल

ग्राहकों को खरीदारी के बाद एक वितरण ईमेल प्राप्त होता है जिसमें लाइसेंस कुंजी, डाउनलोड लिंक, OAuth निमंत्रण लिंक, या प्लेटफार्म निमंत्रण शामिल होते हैं, जो भी उत्पाद पर लागू होता है entitlements के लिए। वही विवरण अनंत समय तक [Customer Portal](/features/customer-portal) से उनके ऑर्डर इतिहास के तहत उपलब्ध रहते हैं।

### OAuth-आधारित डिलीवरी

Discord, GitHub, और Notion सब्सक्राइबर एक्सेस ग्राहकों को Dodo Payments को उन्हें एक्सेस देने के लिए प्रमाणीकरण करना पड़ता है। ये Entitlements तब तक `pending` स्थिति में रहते हैं जब तक ग्राहक ईमेल या ग्राहक पोर्टल के लिंक का उपयोग करके OAuth फ्लो को पूरा नहीं करते हैं। एक बार जब वे प्रमाणीकरण कर लेते हैं, ग्रांट `delivered` की ओर चला जाता है और प्लेटफार्म एक्सेस तुरंत प्रदान किया जाता है।

### रद्दीकरण

रद्द किए गए ग्रांट्स प्लेटफ़ॉर्म स्तर पर हटा दिए जाते हैं: Discord भूमिका हटा दी जाती है, GitHub सहयोगकर्ता हटा दिया जाता है, लाइसेंस कुंजी अक्षम कर दी जाती है। ग्राहकों को ग्राहक पोर्टल में यह परिवर्तन प्रतिबिंबित होता हुआ दिखाई देता है।

<Warning>
  डिजिटल फ़ाइलों के लिए, रद्दीकरण अग्रिम रूप से प्रीसाइनिंग URLs तक पहुंच हटा देता है, लेकिन पहले से डाउनलोड किए गए कॉपी को अमान्य नहीं करता। प्लान सामग्री को उसी अनुसार गेट करें।
</Warning>

***

## ग्रांट्स प्रबंधन

किसी भी Entitlement को डैशबोर्ड से खोलें ताकि उसके ग्रांट्स देख सकें। ग्रांट विवरण पैनल में कुल ग्रांट्स, स्थिति फिल्टर, ग्राहक जानकारी, वितरण तिथियाँ, और एक रद्द कार्रवाई दिखाई जाती है।

आप ग्रांट्स को प्रोग्रामेटिकली भी प्रबंधित कर सकते हैं:

<CodeGroup>
  ```typescript TypeScript theme={null} theme={null}
  import DodoPayments from 'dodopayments';

  const client = new DodoPayments({
    bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
  });

  // List grants for an entitlement
  const grants = await client.entitlements.grants.list('ent_abc123', {
    status: 'delivered',
  });

  // Revoke a single grant
  await client.entitlements.grants.revoke('grant_xyz789', {
    path_id: 'ent_abc123',
  });
  ```

  ```python Python theme={null} theme={null}
  client.entitlements.grants.list(
      "ent_abc123",
      status="delivered",
  )

  client.entitlements.grants.revoke(
      "grant_xyz789",
      path_id="ent_abc123",
  )
  ```

  ```go Go theme={null} theme={null}
  grants, _ := client.Entitlements.Grants.List(
    ctx, "ent_abc123",
    dodopayments.EntitlementGrantListParams{Status: dodopayments.F("delivered")},
  )

  _, _ = client.Entitlements.Grants.Revoke(ctx, "grant_xyz789", "ent_abc123")
  ```
</CodeGroup>

***

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

<CardGroup cols={2}>
  <Card title="Create Entitlement" icon="plus" href="/api-reference/entitlements/create-entitlement">
    किसी भी इंटीग्रेशन प्रकार का एक नया Entitlement बनाएं।
  </Card>

  <Card title="List Entitlements" icon="list" href="/api-reference/entitlements/list-entitlements">
    इंटीग्रेशन प्रकार के अनुसार Entitlements की सूची बनाएं।
  </Card>

  <Card title="Get Entitlement" icon="magnifying-glass" href="/api-reference/entitlements/get-entitlement">
    किसी Entitlement को प्राप्त करें और उसका हल किया गया कॉन्फिगरेशन प्राप्त करें।
  </Card>

  <Card title="Update Entitlement" icon="pen" href="/api-reference/entitlements/update-entitlement">
    नाम, विवरण, या इंटीग्रेशन कॉन्फिगरेशन अपडेट करें।
  </Card>

  <Card title="Delete Entitlement" icon="trash" href="/api-reference/entitlements/delete-entitlement">
    किसी Entitlement को सॉफ़्ट-डिलीट करें; मौजूदा ग्रांट्स अप्रभावित रहते हैं।
  </Card>

  <Card title="Upload File" icon="upload" href="/api-reference/entitlements/upload-file">
    किसी डिजिटल फ़ाइल Entitlement में फ़ाइल अपलोड करें (100 MB तक)।
  </Card>

  <Card title="List Grants" icon="users" href="/api-reference/entitlements/list-grants">
    किसी Entitlement के लिए सभी ग्रांट्स की स्थिति और ग्राहक फिल्टर के साथ सूची बनाएं।
  </Card>

  <Card title="Revoke Grant" icon="ban" href="/api-reference/entitlements/revoke-grant">
    हस्तकृति से किसी एक ग्रांट को रद्द करें।
  </Card>
</CardGroup>

***

## Webhooks

Dodo Payments चार webhook घटनाएं ग्रांट जीवनचक्र के लिए भेजता है। इन घटनाओं की सदस्यता लें ताकि आपकी एप्लिकेशन प्रत्येक ग्राहक के एक्सेस के साथ सिंक में रहे।

| इवेंट                         | फायर होता है जब                                                                                                                                                                                                                                             |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `entitlement_grant.created`   | एक नया grant बनाया जाता है। लाइसेंस-कुंजी ग्रांट्स `delivered` पर आते हैं; सभी अन्य इंटीग्रेशन `pending` पर आते हैं और `delivered` पर परिवर्तित होते हैं जब प्लेटफॉर्म कॉल सफल होता है (या, OAuth-आधारित इंटीग्रेशन के लिए, जब ग्राहक प्रमाणीकरण करते हैं)। |
| `entitlement_grant.delivered` | ग्रांट डिलीवर पर परिवर्तित होता है। ग्राहक को अब एक्सेस मिलता है।                                                                                                                                                                                           |
| `entitlement_grant.failed`    | ग्रांट डिलीवर नहीं हो सका। `error_code` और `error_message` देखें।                                                                                                                                                                                           |
| `entitlement_grant.revoked`   | एक्सेस वापस ले लिया गया है। `revocation_reason` देखें।                                                                                                                                                                                                      |

<Card title="Entitlement Grant Webhook Payloads" icon="bell" href="/developer-resources/webhooks/intents/entitlement-grant">
  पूर्ण पेलोड स्कीमा, नमूना घटनाएं, और `revocation_reason` संदर्भ देखें।
</Card>

***

## सर्वोत्तम अभ्यास
