Skip to main content
Silver या उससे ऊपर की सदस्यता ज़रूरी है — आवेदन करने के लिए भी और हर प्रमाणित कॉल के लिए भी। अगर कुंजी के मालिक की सदस्यता समाप्त हो जाए, तो दोबारा सदस्यता लेने तक प्रोजेक्ट फ़्रीज़ रहता है।
एक REST API जो आपके ऐप्लिकेशन को Discord के भीतर से किसी उपयोगकर्ता के Vito बैलेंस के साथ काम करने देता है — उसे पढ़ना, उससे राशि लेना, उसमें जोड़ना, या उपयोगकर्ताओं के बीच स्थानांतरित करना। सभी एंडपॉइंट JSON लौटाते हैं और /v1 के अंतर्गत वर्ज़न किए गए हैं।
Vito कभी असली पैसे में नहीं बदलता और न ही उससे आता है। यह केवल Vetox बैलेंस के बीच ही चलता है।

पहुँच प्राप्त करना

पहुँच हर प्रोजेक्ट के लिए अलग से दी जाती है। चारों चीज़ें चाहिए:
1

सक्रिय सदस्यता, Silver या उससे ऊपर

हर कॉल पर जाँची जाती है, सिर्फ़ स्वीकृति के समय नहीं।
2

स्वीकृत डेवलपर आवेदन

आपके डैशबोर्ड के Vito API पेज से भेजा जाता है। Vetox टीम इसकी समीक्षा हाथ से करती है।
3

स्वीकार की गई API डेवलपर शर्तें

आवेदन भेजते समय ही स्वीकार की जाती हैं।
4

आपके प्रोजेक्ट को जिन scopes की ज़रूरत है

आपके विवरण के आधार पर Vetox टीम द्वारा दिए जाते हैं।
आप क्या बना रहे हैं और कुंजी कैसे संभालेंगे, यह ठोस रूप से लिखें। अस्पष्ट आवेदन ही अस्वीकार होते हैं।

Scopes

प्रमाणीकरण

अपनी गुप्त कुंजी Bearer टोकन के रूप में भेजें:
दो वैकल्पिक परतें प्रोजेक्ट को और मज़बूत बनाती हैं:
  • IP अनुमति सूची — कॉल को कुछ निश्चित सर्वर IP तक सीमित करती है
  • दर सीमाएँ — प्रति-प्रोजेक्ट सीमाएँ, जो मालिक की सदस्यता श्रेणी के साथ बढ़ती हैं

कुंजियाँ, रोटेशन और भंडारण

आपकी कुंजी और हस्ताक्षर सीक्रेट ठीक एक बार दिखाए जाते हैं। स्वीकृति के बाद उन्हें API कुंजी टैब में देखने के लिए आपके पास 7 दिन की अवधि होती है। Vetox सिर्फ़ एक हैश रखता है और उन्हें दोबारा नहीं दिखा सकता — यह अवधि चूक गए तो नई कुंजी के लिए रोटेशन करना होगा।
  • इसे केवल सर्वर पर रखें — जिसके पास यह है, वह आपके उपयोगकर्ताओं से राशि ले सकता है
  • रोटेशन API कुंजी टैब से करें। पुरानी कुंजी 24 घंटे की छूट अवधि तक काम करती रहती है, ताकि आप बिना रुकावट तैनाती कर सकें
  • webhook हस्ताक्षर सीक्रेट अलग से रोटेट होता है और उसकी अपनी 24 घंटे की अतिव्यापी अवधि होती है
  • लीक होने पर तुरंत रोटेशन करें

किसी उपयोगकर्ता से राशि लेना

अकेली कुंजी किसी उपयोगकर्ता के Vito को हिला नहीं सकती। हर कटौती के लिए उपयोगकर्ता को vetox.io पर अपने वॉलेट PIN से मंज़ूरी देनी होती है — न आपके ऐप के भीतर, न Discord के भीतर।
1

आपका ऐप POST /v1/deduct कॉल करता है

उपयोगकर्ता, राशि, मूल guildId और वस्तु के विवरण के साथ।
2

Vito एक confirmUrl लौटाता है

एक लंबित पुष्टि, जो 10 मिनट तक वैध रहती है। उपयोगकर्ता को DM भी जाता है।
3

उपयोगकर्ता अपने PIN से मंज़ूरी देता है

vetox.io पर।
4

Vito निपटान करता है और सूचित करता है

बैलेंस से कटौती होती है, लेनदेन दर्ज होता है, और यदि आपने कॉन्फ़िगर किया है तो हस्ताक्षरित webhook भेजा जाता है।
5

आपका ऐप सत्यापित करके पूरा करता है

हस्ताक्षर जाँचें, फिर सामग्री खोलें या वस्तु सौंपें।
अपनी कार्रवाई केवल confirmation.completed पर पूरी करें — कभी भी /deduct की प्रतिक्रिया पर नहीं। उस समय कटौती अंतिम नहीं होती।

अनुरोध पैरामीटर — /v1/deduct

किसी उपयोगकर्ता को Vito देना

POST /v1/add किसी उपयोगकर्ता को आपके अपने बैलेंस से Vito देता है — इनाम या धनवापसी के लिए। guildId और product को छोड़कर वही फ़ील्ड जो /deduct में हैं।
कटौती के विपरीत, जोड़ने में कोई पुष्टि चरण नहीं होता — निपटान तुरंत हो जाता है। इसके लिए credit:create scope और पर्याप्त बैलेंस चाहिए, वरना कॉल 402 VITO_INSUFFICIENT_OWNER_FUNDS लौटाता है।

शुल्क

हर कटौती प्लेटफ़ॉर्म शुल्क घटाकर आपको निपटाई जाती है — वही दर सूची जो ऐप के भीतर Vito स्थानांतरण पर लागू होती है, और आधार आपकी सदस्यता श्रेणी है:
5 Vito या उससे कम की राशि पर कोई शुल्क नहीं, और /v1/add से दी गई राशि पर कभी शुल्क नहीं लगता।

Webhooks

सेटिंग्स टैब में एक या अधिक https कॉलबैक URL जोड़ें। जब भी कोई पुष्टि अंतिम स्थिति तक पहुँचती है, Vito एक हस्ताक्षरित POST भेजता है।
webhooks तभी भेजे जाते हैं जब आपके प्रोजेक्ट में कॉलबैक URL और हस्ताक्षर सीक्रेट दोनों हों। सीक्रेट (whsec_…) को API कुंजी टैब से एक ही बार देखा जा सकता है।

हस्ताक्षर सत्यापित करना

हर डिलीवरी के साथ X-Vito-Signature हेडर आता है:
हर डिलीवरी के साथ दो और हेडर आते हैं — X-Vito-Event-Id को डुप्लिकेट हटाने की कुंजी बनाएँ, क्योंकि पुनः प्रयास वही id दोबारा भेजता है:
हस्ताक्षर सीक्रेट के रोटेशन के दौरान हेडर में एक से अधिक हस्ताक्षर आते हैं, सबसे नया पहले:
यदि कोई भी h1 मेल खाए तो डिलीवरी स्वीकार करें। केवल पहला पढ़ने वाला सत्यापक नया सीक्रेट तैनात करने तक हर webhook अस्वीकार करेगा — और यही 24 घंटे की अतिव्यापी अवधि के पूरे उद्देश्य को व्यर्थ कर देता है।
अपने हस्ताक्षर सीक्रेट से <ts>:<rawBody> पर HMAC दोबारा निकालें और स्थिर समय में तुलना करें।
कच्चे बॉडी के आधार पर सत्यापित करें — किसी भी JSON पार्सिंग या मिडलवेयर द्वारा उसे बदले जाने से पहले।

ईवेंट

पाँच ईवेंट प्रकार, सभी एक ही पेलोड संरचना साझा करते हैं। परिणाम data.status में होता है।
webhooks को बढ़ते अंतराल के साथ 5 बार दोहराया जाता है। जल्दी 2xx लौटाएँ और अपनी पूर्ति असिंक्रोनस रूप से करें।

त्रुटि कोड

हर प्रतिक्रिया एक लिफ़ाफ़े में आती है। सफलता में data होता है और विफलता में error — दोनों कभी साथ नहीं:
हर कोड के आगे VITO_ लगा होता है। पूरी स्ट्रिंग से मिलान करें — खाली RATE_LIMITED या FORBIDDEN कभी प्रतिक्रिया में नहीं आता।

दर सीमाएँ

आपकी प्रति-मिनट सीमा की आधी, कम से कम 30, एक प्रति-IP सीमा भी लागू होती है।
भारी लोड में लिखने वाले एंडपॉइंट बंद होकर विफल होते हैं — दोहरे ख़र्च का जोखिम लेने के बजाय कटौती अस्वीकार कर दी जाती है। पढ़ने वाले एंडपॉइंट खुले होकर विफल होते हैं। अस्वीकृत लेखन को “हुआ ही नहीं” मानकर दोबारा भेजें।
पुनः प्रयासों को सुरक्षित ढंग से डुप्लिकेट-मुक्त रखने के लिए Idempotency-Key हेडर भेजें।

एंडपॉइंट

सीमाएँ

  • पुष्टियाँ 10 मिनट बाद समाप्त हो जाती हैं — बिना पुष्टि वाले अनुरोधों को छोड़ा हुआ मानें
  • amount धनात्मक पूर्णांक होना चाहिए
  • metadata अधिकतम 10 कुंजियों तक सीमित है
  • प्रति-लेनदेन और दैनिक सीमाएँ Vetox टीम तय करती है; वे सेटिंग्स टैब में केवल-पढ़ने के रूप में दिखती हैं

सुरक्षा जाँच-सूची

API कुंजी और हस्ताक्षर सीक्रेट का क्लाइंट कोड में कोई स्थान नहीं। कोई भी लीक हो तो तुरंत रोटेट करें।
कच्चे बॉडी के आधार पर हस्ताक्षर जाँचें और ~5 मिनट से पुरानी डिलीवरी अस्वीकार करें।
/deduct की प्रतिक्रिया देखकर कभी सामान न सौंपें — कटौती confirmation.completed पर ही अंतिम होती है।
केवल वही scopes माँगें जो आप सचमुच उपयोग करते हैं, और IP अनुमति सूची चालू रखें।

समस्या निवारण

मालिक की सदस्यता समाप्त हो चुकी है। यह हर कॉल पर दोबारा जाँची जाती है।
इसे वापस नहीं पाया जा सकता — केवल हैश संग्रहीत होता है। नई पाने के लिए रोटेट करें।
24 घंटे की अतिव्यापी अवधि में दोनों सीक्रेट स्वीकार करें।
उपयोगकर्ता ने मंज़ूरी नहीं दी। पुष्टियाँ 10 मिनट बाद समाप्त हो जाती हैं।
प्रोजेक्ट को कॉलबैक URL और हस्ताक्षर सीक्रेट दोनों चाहिए। किसी एक के होने पर कुछ भी नहीं भेजा जाता।
यह निपटान शुल्क है। बचने के लिए 5 Vito या उससे कम की राशि लें, या इसे अपनी क़ीमत में जोड़ें।
/v1/add आपके अपने बैलेंस से जाता है, शून्य से नहीं बनता। बैलेंस भरें।

Vito

बैलेंस, PIN और शुल्क।

भुगतान अनुरोध

जब आप राशि लेते हैं तो उपयोगकर्ता को क्या दिखता है।