वेबहुक
आपके खाते का एक ही वेबहुक URL होता है और सभी घटनाएँ वहीं भेजी जाती हैं। इसे Dashboard → API में या वेबहुक कॉन्फ़िगर करें से सेट करें।घटनाएँ
आज छह घटनाएँ मौजूद हैं।लिफ़ाफ़ा
हर डिलीवरी में वही तीन शीर्ष-स्तरीय कुंजियाँ होती हैं।timestamp वह क्षण है जब हमने घटना बनाई — ISO-8601, UTC में।
Response
order.updated
number
ऑर्डर ID।
string
energy या bandwidth।string
processing, filled, partial, failed, reclaimed या reclaim_failed। यही फ़ील्ड सत्य का स्रोत है — नीचे दी चेतावनी देखें।string
वह पता जिसे संसाधन डेलिगेट किया गया।
number
ऑर्डर की गई मात्रा — एनर्जी यूनिट या बैंडविड्थ पॉइंट।
number
volume जैसा ही। यह इसलिए है कि अपेक्षित और वितरित की तुलना बिना यह जाने की जा सके कि कौन-सा फ़ील्ड क्या दर्शाता है।number
अब तक वास्तव में कितना डेलिगेट हुआ। ऑर्डर
filled होने पर volume के बराबर; processing और partial में अब तक दिए गए हिस्सों का योग; विफलता पर 0।string
ऑर्डर की कीमत TRX में, दशमलव स्ट्रिंग के रूप में।
string | null
वह लेनदेन जिसने संसाधन डेलिगेट किया।
string | null
वह लेनदेन जिसने किराया समाप्त होने पर उसे वापस लिया।
string | null
संसाधन कब वापस लिया जाना है, ISO-8601; टाइमर से वापस न लिए जाने वाले ऑर्डर में
null।Response
subscription.transfer
number
वह Smart Mode सब्सक्रिप्शन जिससे यह ट्रांसफ़र जुड़ा है।
string
वह निगरानी वाला पता जहाँ से ट्रांसफ़र गया।
string | null
आपने सब्सक्रिप्शन को जो लेबल दिया।
string
चेन पर ट्रांसफ़र का लेनदेन।
number
इस डेलिगेशन ने कितने ट्रांसफ़र कवर किए।
number
उनके लिए डेलिगेट की गई एनर्जी।
string
एनर्जी के लिए काटी गई राशि, TRX में।
string | null
ऊपर से काटा गया बैंडविड्थ, या न काटे जाने पर
null।string
कटौती के बाद आपके खाते का बैलेंस।
string
ट्रांसफ़र कब संसाधित हुआ। ध्यान दें कि यह
data के भीतर है और लिफ़ाफ़े के अपने timestamp से अलग है।Response
Transfer Package घटनाएँ
चारोंpackage.* घटनाएँ उस खाते को जाती हैं जो पैकेज का मालिक है। साइन इन किए बिना या API कुंजी के बिना इनवॉइस से खरीदे गए पैकेज का कोई मालिक नहीं होता, और उससे कोई घटना नहीं बनती। रद्द किए गए इनवॉइस, अस्वीकृत खरीद और मैन्युअल समीक्षा में रुकी खरीद से भी कोई घटना नहीं बनती; समीक्षा वाला पैकेज सक्रिय होने पर package.activated भेजता है।
हर package.* घटना के data में ये फ़ील्ड होते हैं:
number
पैकेज ID — पैकेज सूची में
id।string
वह पता जिसकी सेवा पैकेज करता है।
string
घटना के बाद पैकेज की स्थिति:
package.transfer के लिए active या completed, package.completed के लिए completed, package.activated के लिए active, package.expired के लिए expired।number
पैकेज कितने ट्रांसफ़र के साथ खरीदा गया था।
number
घटना जिस बदलाव की सूचना देती है, उसके बाद इस पैकेज में बचे ट्रांसफ़र — एक निरपेक्ष संख्या, अंतर नहीं।
remaining बिना किसी घटना के भी घट सकता है। कई ट्रांसफ़र वाला पैकेज दैनिक सदस्यता के रूप में दिन में एक ट्रांसफ़र लेता है — पहला सक्रिय होते समय, इसीलिए 500 ट्रांसफ़र वाला पैकेज remaining: 499 से शुरू होता है — और इस कटौती की अलग सूचना नहीं आती। एक ही पते से एक ही ब्लॉक में हुए दो ट्रांसफ़र एक जैसा remaining बता सकते हैं। remaining को संकेत मानें और पैकेज सूची को सच्चाई का स्रोत।package.transfer में (package_id, tx_hash) और बाकी में (event, package_id) का उपयोग करें: दोबारा भेजी गई घटना में वही बॉडी, वही timestamp और वही हस्ताक्षर होते हैं।
package.transfer
पते से हुए ट्रांसफ़र का भुगतान पैकेज से हुआ। ट्रांसफ़र जिस हर पैकेज से काटा गया, उसके लिए एक बार भेजी जाती है — लगभग हमेशा प्रति ट्रांसफ़र एक घटना; जो ट्रांसफ़र एक पैकेज का आख़िरी ट्रांसफ़र लेकर अगले पैकेज पर जारी रहता है, वह दोनों के लिए एक-एक घटना देता है।
string
चेन पर ट्रांसफ़र का ट्रांज़ैक्शन।
number
इस ट्रांज़ैक्शन के लिए इस पैकेज से काटे गए ट्रांसफ़र। ऐसे पते पर ट्रांसफ़र जिसके पास USDT नहीं है, दोगुनी ऊर्जा लेता है और
2 गिना जाता है, जो दो पैकेजों में बँट सकता है।status completed होता है।
Response
package.completed
पैकेज ने ट्रांसफ़र की सेवा बंद कर दी।
string
transfer — एक ट्रांसफ़र ने पैकेज खत्म किया; subscription — दैनिक कटौती ने उसे खत्म किया; manual — सपोर्ट ने पैकेज बंद किया। manual के बाद remaining शून्य से अधिक हो सकता है, लेकिन वे ट्रांसफ़र अब उपयोग नहीं किए जा सकते।string | null
reason: "transfer" होने पर वह ट्रांसफ़र जिसने पैकेज बंद किया; अन्यथा null।package.transfer के बिना बंद हो जाता है: आपको उस ट्रांसफ़र के tx_hash के साथ केवल package.completed मिलती है।
Response
package.activated
पैकेज सक्रिय हो गया और अब से उसके ट्रांसफ़र को ऊर्जा मिलती है। हर सक्रियण पर भेजी जाती है — बैलेंस से खरीद पर भी, जिसका जवाब पहले से active कहता है, और इनवॉइस भुगतान पर भी, जो चेन पर भुगतान दिखने के थोड़ी देर बाद पैकेज सक्रिय करता है।
string
पैकेज का भुगतान कैसे हुआ: ठीक
balance, TRX या USDT।Response
package.expired
पैकेज का इनवॉइस अपनी 30 मिनट की अवधि में नहीं चुकाया गया। कुछ नहीं काटा गया; नया इनवॉइस पाने के लिए फिर से खरीदें। कोई अतिरिक्त फ़ील्ड नहीं; remaining quota_total के बराबर है और उपयोग के लिए उपलब्ध नहीं है।
Response
डिलीवरी
- अधिकतम 3 प्रयास, बीच में 1 सेकंड और फिर 4 सेकंड का ठहराव। सफलता के बाद और अंतिम प्रयास के बाद कोई ठहराव नहीं।
- प्रति प्रयास 10 सेकंड का टाइमआउट।
- हम कोई भी
2xxस्वीकार करते हैं। बाकी सब विफल प्रयास गिना जाता है। - रीडायरेक्ट का पालन नहीं किया जाता।
301/302एक विफल प्रयास है, छलाँग नहीं। - छूटी हुई घटनाएँ बाद में दोबारा नहीं भेजी जातीं। तीनों प्रयास विफल हुए तो वह घटना चली गई; दोबारा भेजे जाने की प्रतीक्षा के बजाय ऑर्डर देखें या पैकेज सूची से मिलान करें।
हस्ताक्षर की जाँच
हर अनुरोध मेंX-Webhook-Signature: sha256=<hex> होता है — आपके वेबहुक सीक्रेट से, कच्चे अनुरोध बॉडी पर निकाला गया HMAC-SHA256।
आपकी जाँच चलेगी या नहीं, यह दो बातों पर निर्भर है:
- तुलना से पहले
sha256=उपसर्ग हटाएँ। हेडर केवल हेक्स डाइजेस्ट नहीं है। - प्राप्त बाइट्स का हैश लें, दोबारा सीरियलाइज़ किए गए ऑब्जेक्ट का नहीं। JSON को पार्स करके फिर से लिखने पर कुंजियों का क्रम और स्पेस बदल जाते हैं, और हस्ताक्षर कभी नहीं मिलेगा।