प्राधिकार अनुदान
जब प्राधिकार अनुदान बनाए जाते हैं, वितरित होते हैं, असफल होते हैं, या निरस्त होते हैं, तो आपके वेबहुक अंत बिंदु पर भेजा जाने वाला पेलोड।
प्राधिकार अनुदान वेबहुक घटनाएँ
जब भी किसी ग्राहक का प्राधिकार अनुदान स्थिति बदलता है, उदाहरण के लिए जब एक लाइसेंस कुंजी उत्पन्न होती है, एक Discord भूमिका आवंटित होती है, एक डाउनलोड लिंक प्रदान किया जाता है, या पहुंच निरस्त होती है, तो ये घटनाएँ चलती हैं। इन घटनाओं की सदस्यता लें ताकि आपका एप्लिकेशन इस बात के साथ तालमेल में रहे कि प्रत्येक ग्राहक को क्या पहुंच सकता है।| इवेंट | विवरण |
|---|---|
entitlement_grant.created | एक नया ग्रांट रो बनाया गया। स्थिति तुरंत delivered होती है ऑटो-फुलफिल्ड लाइसेंस कीज़ के लिए, और मैन्युअल-फुलफिल्ड लाइसेंस कीज़ और अन्य सभी इंटीग्रेशन्स के लिए pending होती है। |
entitlement_grant.delivered | ग्रांट डिलीवर्ड हो गया। ग्राहक को अब नियुक्त प्लेटफॉर्म, फ़ाइल, या लाइसेंस की तक पहुंच प्राप्त हो गई है। |
entitlement_grant.failed | डिलीवरी विफल हो गई है और पुनः प्रयास नहीं किया जा रहा है। error_code और error_message की जाँच करें। |
entitlement_grant.revoked | एक्सेस हटा दी गई। समझने के लिए revocation_reason की जाँच करें। |
EntitlementGrantResponse पेलोड साझा करती हैं।
घटना ट्रिगर
entitlement_grant.created
एक अनुदान पंक्ति अभी-अभी डाली गई। इस बिंदु से अनुदान के पास हमेशा एक स्थिरid होता है, भले ही उसकी स्थिति बदल जाए। यह रिकॉर्ड करने के लिए इस घटना का उपयोग करें कि पूर्ति प्रगति पर है।
ऑटो-फुलफिल्ड लाइसेंस कीज़ के लिए रो सीधे status: "delivered" और delivered_at के साथ डाला जाता है, इसलिए एकल created इवेंट के बाद कोई और स्थिति परिवर्तन नहीं होता है जब तक कि ग्रांट बाद में रद्द नहीं किया जाता।
मैन्युअल-फुलफिल्ड लाइसेंस कीज़ (fulfillment_mode: manual के साथ एंटाइटलमेंट्स) के लिए रो status: "pending" के साथ और कोई license_key ऑब्जेक्ट के बिना आती है — अभी कोई की मौजूद नहीं है। यह इवेंट आपका संकेत है कि एक की फुलफिलमेंट का इंतजार कर रही है; इसे POST /grants/{grant_id}/license-key के माध्यम से प्रदान करें, जो बाद में entitlement_grant.delivered को ट्रिगर करता है। मैन्युअल फुलफिलमेंट देखें।
हर अन्य इंटीग्रेशन के लिए रो status: "pending" के साथ आती है। एक delivered या failed इवेंट तब होता है जब डिलीवरी समाप्त हो जाती है:
- OAuth-आधारित इंटीग्रेशन (Discord, GitHub, Notion) में एक
oauth_urlशामिल होता है, जिसे ग्राहक को सहमति पूरी करने के लिए जाना चाहिए। ग्रांटpendingरहता है जब तक कि ग्राहक अधिकृत न करें। - प्लेटफॉर्म-डायरेक्ट इंटीग्रेशन (Telegram, Framer, Digital Files) केवल थोड़ी देर के लिए
pendingमें रहती है जबकि प्लेटफ़ॉर्म काल चल रही होती है, फिरdeliveredमें चली जाती है।
entitlement_grant.delivered
ग्रांटpending से delivered में ट्रांजिशन हो गया। ग्राहक को अब एंटाइटलमेंट द्वारा वर्णित एक्सेस प्राप्त है। इस इवेंट का उपयोग अपने सिस्टम में निर्भर फीचर्स को अनलॉक करने के लिए करें, उदाहरण के लिए एक वर्कस्पेस प्रोविजनिंग करने के लिए, एक कस्टम स्वागत ईमेल भेजने के लिए, या एक “fulfilled” फ़्लैग मार्क करने के लिए।
पेलोड का delivered_at फ़ील्ड कैप्चर करता है जब डिलीवरी पूरी हो जाती है। उन ग्रांट्स के लिए जो क्रिएशन पर delivered पर आए, आपको created और delivered इवेंट्स लगातार मिलेंगे।
entitlement_grant.failed
डिलीवरी का प्रयास किया गया और यह एक गैर-पुनः प्रयोज्य त्रुटि के साथ विफल रही।error_code और error_message फील्ड्स विफलता की व्याख्या करते हैं। सामान्य कारणों में एक रद्द किया हुआ OAuth टोकन, एक अस्वीकार की गई प्लेटफॉर्म अनुमति, या एक गायब लक्ष्य (जैसे, एक हटाया गया Discord गिल्ड) शामिल है।
entitlement_grant.revoked
प्लेटफ़ॉर्म स्तर पर एक्सेस हटा दी गई: Discord भूमिका हटा दी गई, GitHub कोलैबोरेटर हटा दिया गया, लाइसेंस की अक्षम कर दी गई, फाइल डाउनलोड URLs अब जारी नहीं की गईं।revocation_reason फील्ड ट्रिगर रिकॉर्ड करता है।
revocation_reason | ट्रिगर |
|---|---|
subscription_cancelled | ग्राहक की सब्सक्रिप्शन रद्द कर दी गई (subscription.cancelled इवेंट)। |
subscription_on_hold | सब्सक्रिप्शन नवीकरण में विफल होने के कारण होल्ड पर है (subscription.on_hold)। पुनः प्राप्त: एक सफल पुनः प्रयास एक पुनः-ग्रांट उत्पन्न करता है। |
subscription_expired | सब्सक्रिप्शन ने अपनी अवधि के अंत तक पहुंच गया (subscription.expired)। |
plan_changed | योजना बदल गई; पुरानी ग्रांट्स नए जारी करने से पहले रद्द कर दी जाती हैं (subscription.plan_changed)। |
refund | मूल एकल बार के भुगतान के लिए एक वापसी की गई थी (refund.succeeded)। |
manual | व्यापारी ने API या डैशबोर्ड के माध्यम से ग्रांट वापस ले लिया। मैन्युअल रद्द नहीं की गई ग्रांट्स सब्सक्रिप्शन नवीकरण पर पुनः-ग्रांट नहीं की जाती हैं। |
license_key_disabled | लाइसेंस-की ग्रांट के पीछे की लाइसेंस की अक्षम कर दी गई थी। यदि की को फिर से सक्षम किया जाता है तो ग्रांट को स्वचालित रूप से पुनः सक्रिय किया जाता है। |
platform_external | इंटीग्रेशन का प्लेटफ़ॉर्म साइड सिंक से बाहर हो गया (उदाहरण के लिए, एक Discord भूमिका को मैन्युअल रूप से हटा दिया गया, GitHub ऐप का रिपॉजिटरी एक्सेस खो गया, या एक सुलह पास ने एक गायब लक्ष्य पाया)। समस्या हल न होने तक सब्सक्रिप्शन रिन्यूअल पर ग्रांट ऑटो-ग्रांट नहीं होती। |
पेलोड वेरिएंट्स
data फील्ड हमेशा एक EntitlementGrantResponse ऑब्जेक्ट होता है। पेलोड एक integration_type फ़ील्ड (उदाहरण के लिए license_key, digital_files, discord) कैरी करता है ताकि आप सीधे ग्रांट प्रकार को पहचान सकें। दो इंटीग्रेशन प्रकार अतिरिक्त नेस्टेड ऑब्जेक्ट्स भी संलग्न करते हैं:
license_keyतब शामिल होता है जबintegration_type``license_keyहोता है और एक की जारी की गई है। इसमें जनरेट की गई की, समाप्ति, और सक्रियण उपयोग शामिल होते हैं। एक मैन्युअल-फुलफिल्ड ग्रांट के लिए जो अभी भीpendingमें है, यह ऑब्जेक्टnullरहता है जब तक आप ग्रांट को फुलफिल नहीं कर देते।digital_product_deliveryतब शामिल होता है जबintegration_typedigital_filesहोता है। इसमें प्रीसाइनड डाउनलोड URLs, वैकल्पिकinstructionsऔर वैकल्पिकexternal_urlशामिल होते हैं।
null होते हैं; सम्बन्धित कॉन्फ़िगरेशन एंटाइटलमेंट में कैप्चर की जाती है, ग्रांट में नहीं।
सैंपल पेलोड्स
लाइसेंस की डिलीवर्ड (entitlement_grant.delivered)
लाइसेंस की मैन्युअल फुलफिलमेंट की प्रतीक्षा में (entitlement_grant.created)
जब ग्राहक एक उत्पाद खरीदता है जिसका लाइसेंस की एंटाइटलमेंट fulfillment_mode: manual का उपयोग करता है, तब फ़ायर होता है। ग्रांट pending है और कोई license_key ऑब्जेक्ट नहीं है — व्यापारी को की प्रदान करनी होगी।
डिजिटल फाइलें डिलीवर्ड (entitlement_grant.delivered)
Discord भूमिका बनाई गई और प्रतीक्षा में (entitlement_grant.created)
सब्सक्रिप्शन रद्दीकरण पर ग्रांट रद्द (entitlement_grant.revoked)
डिलीवरी विफल (entitlement_grant.failed)
इंटीग्रेशन टिप्स
- आश्रित फीचर्स को अनलॉक करने से पहले
entitlement_grant.deliveredका इंतजार करें। एकpayment.succeededइवेंट आपको पैसे की पुष्टि करता है; यह आपको यह नहीं बताता कि ग्राहक के पास GitHub रिपॉजिटरी या Discord भूमिका है या नहीं।deliveredइवेंट फुलफिलमेंट के लिए सत्य का स्रोत है। revocation_reasonको रिटेन्शन फ्लो में मैप करें। एकsubscription_on_holdरद्दीकरण आम तौर पर बताता है कि ग्राहक का कार्ड विफल हो गया और अगला नवीकरण एक्सेस को फिर से ग्रांट करेगा। एकmanualयाsubscription_cancelledरद्दीकरण जानबूझकर होता है। ग्राहक संदेशों में उन्हें अलग तरीके से हैंडल करें।- अपने इडेम्पोटेंसी की के रूप में ग्रांट
idका उपयोग करें। एकल ग्रांट अधिकतम एकcreatedइवेंट और अधिकतम एक अंतिम इवेंट (deliveredयाfailed), और अधिकतम एकrevokedइवेंट को उत्पन्न करती है। वेबहुक सिस्टम से पुनः डिलीवरी इवेंट्स को दोहरा सकती है; ग्रांटidऔरtypeपर डुप्लिकेट को दूर करें। - ग्रांट प्रकार की पहचान करने के लिए
integration_typeपढ़ें। पेलोडintegration_typeको सीधे कैरी करता है (उदाहरण के लिएlicense_key,digital_files,discord)।license_keyऔरdigital_product_deliveryनेस्टेड ऑब्जेक्ट्स उनके संबंधित ग्रांट्स की डिलीवरी के बाद आबाद होते हैं; एक मैन्युअल-फुलफिल्ड लाइसेंस की ग्रांटpending,integration_type: "license_key"औरnulllicense_keyके साथ बनी रहती है जब तक आप इसे फुलफिल नहीं करते। - OAuth-आधारित ग्रांट्स के लिए, ग्राहक के सामने
oauth_urlपेश करें। Discord, GitHub, या Notion सब्सक्राइबर फ्लोज़ के लिएentitlement_grant.createdइवेंट में एकoauth_urlऔरoauth_expires_atशामिल होते हैं। ग्राहक को इसे ईमेल करें या अपनी ऐप में प्रदर्शित करें ताकि डिलीवरी बाधित न हो।
Detailed view of a single entitlement grant: who it's for, its lifecycle state, and any integration-specific delivery payload.
Brand id this grant belongs to.
Identifier of the business that owns the grant.
Timestamp when the grant was created.
Identifier of the customer the grant was issued to.
Identifier of the entitlement this grant was issued from.
Unique identifier of the grant.
The integration type of the grant's entitlement (e.g. license_key).
discord, telegram, github, figma, framer, notion, digital_files, license_key Arbitrary key-value metadata recorded on the grant.
Lifecycle status of the grant.
Pending, Delivered, Failed, Revoked Timestamp when the grant was last modified.
Timestamp when the grant transitioned to delivered, when applicable.
Digital-product-delivery payload, present when the entitlement
integration is digital_files.
Machine-readable code reported when delivery failed, when applicable.
Human-readable message reported when delivery failed, when applicable.
License-key delivery payload, present when the entitlement integration
is license_key.
Timestamp when oauth_url stops being valid, when applicable.
Customer-facing OAuth URL for OAuth-style integrations. Populated
during the customer-portal accept flow; null until the customer
completes that step, and on grants for non-OAuth integrations.
Identifier of the payment that triggered this grant, when applicable.
Reason recorded when the grant was revoked, when applicable.
Timestamp when the grant transitioned to revoked, when applicable.
Identifier of the subscription that triggered this grant, when applicable.