/v1 के अंतर्गत वर्ज़न किए गए हैं।
पहुँच प्राप्त करना
पहुँच हर प्रोजेक्ट के लिए अलग से दी जाती है। चारों चीज़ें चाहिए:सक्रिय सदस्यता, Silver या उससे ऊपर
स्वीकृत डेवलपर आवेदन
स्वीकार की गई API डेवलपर शर्तें
आपके प्रोजेक्ट को जिन scopes की ज़रूरत है
Scopes
प्रमाणीकरण
अपनी गुप्त कुंजी Bearer टोकन के रूप में भेजें:- IP अनुमति सूची — कॉल को कुछ निश्चित सर्वर IP तक सीमित करती है
- दर सीमाएँ — प्रति-प्रोजेक्ट सीमाएँ, जो मालिक की सदस्यता श्रेणी के साथ बढ़ती हैं
कुंजियाँ, रोटेशन और भंडारण
- इसे केवल सर्वर पर रखें — जिसके पास यह है, वह आपके उपयोगकर्ताओं से राशि ले सकता है
- रोटेशन API कुंजी टैब से करें। पुरानी कुंजी 24 घंटे की छूट अवधि तक काम करती रहती है, ताकि आप बिना रुकावट तैनाती कर सकें
- webhook हस्ताक्षर सीक्रेट अलग से रोटेट होता है और उसकी अपनी 24 घंटे की अतिव्यापी अवधि होती है
- लीक होने पर तुरंत रोटेशन करें
आधिकारिक Node.js SDK
आधिकारिक पैकेज@vetox-bot/vito सभी नौ एंडपॉइंट और webhook सत्यापन को समेट लेता है। यह Idempotency-Key हेडर, बढ़ते अंतराल वाले पुनः प्रयास, समय-सीमाएँ और त्रुटियों का वर्गीकरण आपकी ओर से संभाल लेता है।
इंस्टॉलेशन
fetch और node:crypto का उपयोग करता है — और पूरी TypeScript परिभाषाओं के साथ ESM तथा CommonJS दोनों में आता है।
आरंभीकरण
apiKey न देने पर SDK परिवेश से VITO_API_KEY पढ़ लेता है। कुंजी का प्रारूप निर्माण के समय ही जाँचा जाता है, इसलिए ग़लत प्रारूप वाली कुंजी एक नेटवर्क चक्कर और 401 खर्च कराए बिना तुरंत विफल हो जाती है।
क्लाइंट विकल्प
उपलब्ध मेथड
data फ़ील्ड लौटाता है — आपको success या data कभी ख़ुद नहीं खोलना पड़ता। सभी मेथड प्रति-कॉल विकल्प भी लेते हैं: { timeoutMs, maxRetries, signal, headers }, और लिखने वाले मेथड इसके अतिरिक्त { idempotencyKey } भी।उपयोग के उदाहरण
शुरुआत में कुंजी जाँचना
बैलेंस पढ़ना
किसी उपयोगकर्ता से राशि लेना (कोई वस्तु बेचना)
किसी उपयोगकर्ता को Vito देना
लेनदेन खंगालना
निष्क्रियता (idempotency) और पुनः प्रयास
SDK हर लेखन (deduct, credit, transfer) पर Idempotency-Key हेडर भेजता है। यदि आप न दें, तो वह इसे हर कॉल पर एक ही बार बनाता है और हर पुनः प्रयास में ठीक वही कुंजी दोबारा भेजता है, इसलिए कोई पुनः प्रयास उसी क्रिया का निपटान दो बार नहीं कर सकता।
जब वही तार्किक क्रिया किसी नई प्रक्रिया से दोहराई जा सकती हो — जॉब रनर, क़तार से पुनः वितरण, या निर्धारित रन — तब अपनी कुंजी दें:
auth.rotateKey() को जानबूझकर छोड़ा गया है — वहाँ पुनः प्रयास दूसरी कुंजी जारी कर देता है और पहली बार लौटाई गई कुंजी को रद्द कर देता है।SDK से webhooks सत्यापित करना
constructEvent 5 मिनट की पुनः-प्रेषण अवधि जाँचता है, हेडर के हर h1 हस्ताक्षर से स्थिर समय में तुलना करता है — इसलिए रोटेशन की 24 घंटे की अतिव्यापी अवधि में यह अपने आप काम करता है — फिर पेलोड पार्स करके प्रकार-युक्त ईवेंट लौटाता है।
Next.js (App Router) के रूट हैंडलर में उस रूप का उपयोग करें जो कच्चा बॉडी ख़ुद पढ़ता है:
event.eventId के आधार पर दोहराव हटाएँ।त्रुटि प्रबंधन
SDK जो कुछ भी फेंकता है वहVitoError से विरासत में आता है और code, status, type, requestId तथा retryable रखता है।
किसी कॉल को रद्द करना
VITO_SDK_ABORTED कोड वाला VitoConnectionError फेंका जाता है।
किसी उपयोगकर्ता से राशि लेना
आपका ऐप POST /v1/deduct कॉल करता है
guildId और वस्तु के विवरण के साथ।Vito एक confirmUrl लौटाता है
उपयोगकर्ता अपने PIN से मंज़ूरी देता है
vetox.io पर।Vito निपटान करता है और सूचित करता है
आपका ऐप सत्यापित करके पूरा करता है
अनुरोध पैरामीटर — /v1/deduct
किसी उपयोगकर्ता को Vito देना
POST /v1/add किसी उपयोगकर्ता को आपके अपने बैलेंस से Vito देता है — इनाम या धनवापसी के लिए। guildId और product को छोड़कर वही फ़ील्ड जो /deduct में हैं।
credit:create scope और पर्याप्त बैलेंस चाहिए, वरना कॉल 402 VITO_INSUFFICIENT_OWNER_FUNDS लौटाता है।शुल्क
हर कटौती प्लेटफ़ॉर्म शुल्क घटाकर आपको निपटाई जाती है — वही दर सूची जो ऐप के भीतर Vito स्थानांतरण पर लागू होती है, और आधार आपकी सदस्यता श्रेणी है:/v1/add से दी गई राशि पर कभी शुल्क नहीं लगता।Webhooks
सेटिंग्स टैब में एक या अधिकhttps कॉलबैक URL जोड़ें। जब भी कोई पुष्टि अंतिम स्थिति तक पहुँचती है, Vito एक हस्ताक्षरित POST भेजता है।
हस्ताक्षर सत्यापित करना
हर डिलीवरी के साथX-Vito-Signature हेडर आता है:
X-Vito-Event-Id को डुप्लिकेट हटाने की कुंजी बनाएँ, क्योंकि पुनः प्रयास वही id दोबारा भेजता है:
<ts>:<rawBody> पर HMAC दोबारा निकालें और स्थिर समय में तुलना करें।
ईवेंट
पाँच ईवेंट प्रकार, सभी एक ही पेलोड संरचना साझा करते हैं। परिणामdata.status में होता है।
त्रुटि कोड
हर प्रतिक्रिया एक लिफ़ाफ़े में आती है। सफलता मेंdata होता है और विफलता में error — दोनों कभी साथ नहीं:
दर सीमाएँ
Idempotency-Key हेडर भेजें।एंडपॉइंट
सीमाएँ
- पुष्टियाँ 10 मिनट बाद समाप्त हो जाती हैं — बिना पुष्टि वाले अनुरोधों को छोड़ा हुआ मानें
amountधनात्मक पूर्णांक होना चाहिएmetadataअधिकतम 10 कुंजियों तक सीमित है- प्रति-लेनदेन और दैनिक सीमाएँ Vetox टीम तय करती है; वे सेटिंग्स टैब में केवल-पढ़ने के रूप में दिखती हैं
सुरक्षा जाँच-सूची
सीक्रेट सर्वर पर ही रखें
सीक्रेट सर्वर पर ही रखें
हर webhook सत्यापित करें
हर webhook सत्यापित करें
निपटान केवल completed पर
निपटान केवल completed पर
/deduct की प्रतिक्रिया देखकर कभी सामान न सौंपें — कटौती confirmation.completed पर ही अंतिम होती है।न्यूनतम अधिकार
न्यूनतम अधिकार
समस्या निवारण
हर कॉल अनधिकृत लौटाती है
हर कॉल अनधिकृत लौटाती है
मेरी कुंजी खो गई
मेरी कुंजी खो गई
रोटेशन के बाद webhook हस्ताक्षर विफल हो रहे हैं
रोटेशन के बाद webhook हस्ताक्षर विफल हो रहे हैं
कोई कटौती कभी पूरी नहीं होती
कोई कटौती कभी पूरी नहीं होती
कोई webhook नहीं आता
कोई webhook नहीं आता
मैंने जितना काटा उससे कम Vito आया
मैंने जितना काटा उससे कम Vito आया
402 VITO_INSUFFICIENT_OWNER_FUNDS
402 VITO_INSUFFICIENT_OWNER_FUNDS
/v1/add आपके अपने बैलेंस से जाता है, शून्य से नहीं बनता। बैलेंस भरें।