मुख्य सामग्री पर जाएं

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.

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

Entitlements क्या हैं?

एक entitlement वह पुनः उपयोग योग्य परिभाषा है जिसे आप ग्राहक को वितरित करते हैं: एक प्रो लाइसेंस कुंजी, एक “Patrons” Discord भूमिका, आपके निजी GitHub रिपॉजिटरी का एक्सेस, डाउनलोड करने योग्य e-book बंडल। आप Entitlements को उत्पादों से संलग्न करते हैं, और Dodo Payments बाकी काम संभालता है। जब कोई ग्राहक उत्पाद खरीदता है, तो Dodo Payments एक grant बनाता है, जो कि उस entitlement की ग्राहक की एकल जारीगी होती है। ग्रांट्स कुछ स्थिति के सेट के माध्यम से चलते हैं: pending जब डिलीवरी प्रगति पर होती है, delivered एक बार जब ग्राहक को पहुंच प्राप्त हो जाती है, failed यदि डिलीवरी पूरी नहीं हो सकी, और revoked जब पहुंच वापस ले ली जाती है।
Entitlements fulfillment को गेट करते हैं (क्या ग्राहक को पहुंच है?)। क्रेडिट consumption को गेट करते हैं (वे कितनी मात्रा में इसका उपयोग कर सकते हैं?)। दोनों को एक ही उत्पाद से जोड़ा जा सकता है। क्रेडिट्स के लिए Credit-Based Billing देखें।

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

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

License Keys

सक्रियन सीमा और समाप्ति के साथ अद्वितीय लाइसेंस कुंजियाँ उत्पन्न करें। सॉफ़्टवेयर, प्लगइन्स, और CLIs के लिए सबसे अच्छा।

Digital Files

डाउनलोड करने योग्य फाइलें (e-books, टेम्पलेट्स, मीडिया) प्रीसाइनिंग डाउनलोड URLs और वैकल्पिक निर्देशों के साथ वितरित करें।

Discord

जब वे खरीदारी करें तो एक ग्राहक को आपके Discord सर्वर में एक भूमिका प्रदान करें। रद्द करने पर स्वचालित रूप से रद्द करें।

GitHub

आपके द्वारा चुने गए अनुमति स्तर पर एक निजी रिपॉजिटरी में ग्राहकों को सहयोगी के रूप में जोड़ें।

Telegram

खरीदारी के बाद ग्राहकों को एक निजी Telegram चैट या चैनल में जोड़ें।

Framer

भुगतान करने वाले ग्राहकों के लिए एक Framer टेम्पलेट रिमिक्स लिंक अनलॉक करें।

Notion

क्रय पर ग्राहक के कार्यस्थल में एक Notion टेम्पलेट को डुप्लिकेट करें।

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

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

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

1

Created

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

Delivered

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

Failed

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

Revoked

जब पहुंच को वापस ले लिया जाता है (सब्सक्रिप्शन रद्द कर दिया गया, रिफंड जारी किया गया, या मर्चेंट द्वारा शुरू किया गया रद्द), तो ग्रांट revoked पर चला जाता है। revocation_reason फ़ील्ड ट्रिगर को रिकॉर्ड करता है।

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

इवेंटव्यवहार
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 के साथ रद्द किया जाता है। प्लेटफार्म मुद्दे के हल होने तक सब्सक्रिप्शन नवीनीकरण पर स्वतः पुन:अनुदानित नहीं होता। |
सब्सक्रिप्शन-द्वारा संचालित ग्रांट्स (entitlement, customer, subscription) पर नामांकन होते हैं; नवीनीकरण और पुनःसक्रियण डुप्लिकेट ग्रांट्स नहीं बनाते। वन-टाइम ग्रांट्स (entitlement, customer, payment) पर नामांकन होते हैं।

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

1

Open Entitlements

अपने Dodo Payments डैशबोर्ड में Entitlements पर जाएं और एक नया entitlement बनाने के लिए + पर क्लिक करें।
2

Pick an integration

इंटीग्रेशन प्रकार चुनें: लाइसेंस कुंजी, डिजिटल फ़ाइलें, Discord, GitHub, Telegram, Framer, या Notion। प्लेटफार्म इंटीग्रेशन के लिए, पहले अपना खाता कनेक्ट करें अगर आपने पहले से नहीं किया है।
3

Configure delivery

इंटीग्रेशन-विशिष्ट फ़ील्ड भरें। उदाहरण के लिए, GitHub एक रिपॉजिटरी और एक अनुमति स्तर पूछता है; Discord एक सर्वर और एक वैकल्पिक भूमिका पूछता है; लाइसेंस कुंजी सक्रियता सीमा और समाप्ति पूछती है।
नई Entitlement फॉर्म जिसमें इंटीग्रेशन चयनकर्ता और कॉन्फिगरेशन फ़ील्ड्स हैं
4

Save

Entitlement को सेव करें। अब आप इसे किसी भी उत्पाद से संलग्न कर सकते हैं।

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

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

ग्राहक अनुभव

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

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

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

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

रद्दीकरण

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

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

किसी भी Entitlement को डैशबोर्ड से खोलें ताकि उसके ग्रांट्स देख सकें। ग्रांट विवरण पैनल में कुल ग्रांट्स, स्थिति फिल्टर, ग्राहक जानकारी, वितरण तिथियाँ, और एक रद्द कार्रवाई दिखाई जाती है। आप ग्रांट्स को प्रोग्रामेटिकली भी प्रबंधित कर सकते हैं:
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',
});

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

Create Entitlement

किसी भी इंटीग्रेशन प्रकार का एक नया Entitlement बनाएं।

List Entitlements

इंटीग्रेशन प्रकार के अनुसार Entitlements की सूची बनाएं।

Get Entitlement

किसी Entitlement को प्राप्त करें और उसका हल किया गया कॉन्फिगरेशन प्राप्त करें।

Update Entitlement

नाम, विवरण, या इंटीग्रेशन कॉन्फिगरेशन अपडेट करें।

Delete Entitlement

किसी Entitlement को सॉफ़्ट-डिलीट करें; मौजूदा ग्रांट्स अप्रभावित रहते हैं।

Upload File

किसी डिजिटल फ़ाइल Entitlement में फ़ाइल अपलोड करें (100 MB तक)।

List Grants

किसी Entitlement के लिए सभी ग्रांट्स की स्थिति और ग्राहक फिल्टर के साथ सूची बनाएं।

Revoke Grant

हस्तकृति से किसी एक ग्रांट को रद्द करें।

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 देखें।

Entitlement Grant Webhook Payloads

पूर्ण पेलोड स्कीमा, नमूना घटनाएं, और revocation_reason संदर्भ देखें।

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

  • प्रत्येक वितरण चैनल के लिए एक ही Entitlement का उपयोग करें। विभिन्न भूमिका इरादों के साथ उत्पादों के बीच एकल Discord Entitlement साझा न करें; स्वच्छ रद्दीकरण के लिए एक भूमिका प्रति एक बनाएँ।
  • पहले परीक्षा मोड में परीक्षण करें। Entitlement बनाएँ, इसे एक परीक्षण उत्पाद से संलग्न करें, एक चेकआउट चलाएं, और देखे ग्रांट pending → delivered के माध्यम से संक्रमण करता है। सुनिश्चित करें कि परीक्षण सब्सक्रिप्शन रद्द करना ग्रांट को रद्द करता है।
  • entitlement_grant.delivered सुनें, payment.succeeded नहीं। एक भुगतान सफल हो सकता है, जब तक फुलफिलमेंट पूरा नहीं हो जाता (विशेषकर OAuth प्रवाह के लिए)। आपके अपने सिस्टम में निर्भर सुविधाओं को अनलॉक करने से पहले डिलीवर इवेंट की प्रतीक्षा करें।
  • entitlement_grant.failed को क्रियात्मक मानें। एक विफल ग्रांट का मतलब है कि एक ग्राहक ने भुगतान किया लेकिन एक्सेस नहीं मिला। इन्हें अपनी सहायता टीम को सतह पर लाएं या पुन: अनुदान ट्रिगर करें।
  • अपने प्रतिधारण प्रवाह के लिए revocation_reason को मैप करें। एक subscription_on_hold रद्द करना पुनःप्राप्त करने योग्य है (ग्राहक अपने कार्ड को अपडेट कर सकते हैं)। एक manual रद्द करना इरादित है। उन्हें ग्राहक संचार में भिन्न रूप से संभालें।
Last modified on May 22, 2026