इस ट्यूटोरियल में, आप NeuralAPI बनाएंगे — एक स्तरीय AI प्लेटफ़ॉर्म जहां प्रत्येक सब्सक्रिप्शन प्लान में मासिक टोकन क्रेडिट अलाउंस होगा, ग्राहक टॉप-अप पैक खरीद सकते हैं जब वे कम पड़ते हैं, और आपका बैकएंड स्वचालित रूप से क्रेडिट्स को हटाता है जैसे ही अनुरोध OpenAI द्वारा संसाधित किए जाते हैं।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.
- एक कस्टम क्रेडिट अधिकार (टोकन) और एक मीटर बनाएं जो स्वचालित रूप से इससे कटौती करता है
- सब्सक्रिप्शन प्लान्स से क्रेडिट्स अटैच करें (ओवरएज के साथ और बिना) और एक बार के टॉप-अप उत्पाद के लिए
- एक वास्तविक OpenAI पूर्णता एंडपॉइंट वायर करें जो टोकन के माध्यम से Dodo Payments में बिल करता है
- SDK के माध्यम से ग्राहक के लाइव क्रेडिट बैलेंस को क्वेरी करें
- वेबहुक हस्ताक्षर सत्यापित करें और Dodo Payments क्रेडिट इवेंट्स को मार्गदर्शित करें
हम क्या बना रहे हैं
NeuralAPI का मूल्य निर्धारण मॉडल यहाँ है:| उत्पाद | मूल्य | टोकन | ओवरएज |
|---|---|---|---|
| स्टार्टर प्लान | $29/महीना | 10,000,000 टोकन/चक्र | शून्य पर अवरुद्ध |
| प्रो प्लान | $99/महीना | 40,000,000 टोकन/चक्र | $0.005 प्रति 1K टोकन |
| टोकन टॉप-अप पैक | $19 एक बार | +5,000,000 टोकन | — |
- एक Dodo Payments खाता (टेस्ट मोड ठीक है)
- एक OpenAI API कुंजी
- Node.js 18+
- TypeScript/Node.js की बुनियादी समझ
स्टेप 1: अपना टोकन क्रेडिट अधिकार बनाएं
सबसे पहले, वह क्रेडिट अधिकार बनाएं जो दोनों सब्सक्रिप्शन प्लान और टॉप-अप पैक साझा करेंगे। इसे परिभाषित करने के रूप में सोचें कि आपका प्लेटफॉर्म “टोकन” यूनिट का उपयोग कैसे करता है।
Navigate to Credits
- अपने Dodo Payments डैशबोर्ड में लॉग इन करें
- बाएँ साइडबार में प्रोडक्ट्स पर क्लिक करें
- क्रेडिट्स टैब का चयन करें
- क्रेडिट बनाएं पर क्लिक करें
Configure the credit unit
API Tokensक्रेडिट प्रकार: कस्टम यूनिट का चयन करेंयूनिट का नाम: tokenप्रिसिशन: 0 (टोकन हमेशा पूर्ण संख्याएँ होती हैं)क्रेडिट समाप्ति: 30 days (क्रेडिट्स प्रत्येक बिलिंग चक्र में रीसेट होता है)Skip overage at the credit level
Save and copy the credit ID
cent_xxxxxxxxxxxx।API Tokens क्रेडिट अधिकार तैयार है। अब अगले चरण को लेने के लिए उपयोग करने वाले मीटर का निर्माण करें ताकि उपयोग की घटनाएं स्वचालित रूप से डिडक्शन कर सकें।स्टेप 2: टोकन उपयोग के लिए मीटर बनाएं
एक मीटर आ रही उपयोग घटनाओं को संचित करता है और उन्हें क्रेडिट डिडक्शन में बदलता है। आपको इस की आवश्यकता है इससे पहले कि आप योजनाओं के उत्पाद बनाएं, क्योंकि आप प्लान उत्पाद निर्माण के दौरान इसको संलग्न करेंगे।Configure the meter
Token Usage Meterइवेंट नाम: api.tokens_used (यह ठीक वैसे ही मिलना चाहिए जैसा आपकी ऐप भेजता है)एकत्रीकरण प्रकार: Sum — हम प्रत्येक इवेंट से टोकन की संख्या को जोड़ते हैंओवर प्रॉपर्टी: tokens — प्रत्येक इवेंट के मेटाडेटा की कुंजी जिसके मूल्य की गणना की जाएगीमापप्रणाली: tokensमीटर सहेजें और इसकी आईडी कॉपी करें — आप इसे उत्पादों से संलग्न करने के समय संदर्भित करेंगे।स्टेप 3: प्लान उत्पाद बनाएं
दोनों योजनाओं को उपयोग आधारित बिलिंग उत्पाद होना चाहिए, साधारण सब्सक्रिप्शन नहीं — मीटर केवल UBB उत्पादों से संलग्न हो सकते हैं, और आपको मीटर की आवश्यकता होती है ताकि ग्राहक आपके API को कॉल करते समय क्रेडिट्स को स्वचालित रूप से डिडक्ट कर सकें। UBB उत्पादों में अब भी एक आवर्ती आधार शुल्क होता है ($29 / $99); इसके ऊपर होने वाले उपयोग को क्रेडिट्स में बिल किया जाता है।

स्टार्टर प्लान ($29/महीना — 10M टोकन, कोई ओवरएज नहीं)
Create the Starter UBB product
- प्रोडक्ट्स → उत्पाद बनाएं पर जाएं
- मूल्य निर्धारण प्रकार के रूप में उपयोग आधारित बिलिंग का चयन करें
- भरें:
NeuralAPI Starterविवरण: 10 million API tokens per month. Perfect for individual developers and small projects.स्थिर मूल्य: 29.00 (आवर्ती आधार शुल्क — किसी भी उपयोग से पहले मासिक रूप से बिल की गई)बिलिंग चक्र: Monthlyमुद्रा: USDAttach the meter
Token Usage Meter जोड़ें। फिर मीटर पर:- क्रेडिट्स में बिल उपयोग पर टॉगल करें
- क्रेडिट अधिकार:
API Tokensचुनें - प्रति क्रेडिट मीटर इकाइयाँ:
1— घटना में प्रत्येक टोकन को 1 क्रेडिट के रूप में घटाया जाता है - मुफ्त सीमा:
0— स्वयं क्रेडिट आवंटन ग्राहक का “मुफ्त स्तर” है; हमें एक अतिरिक्त मुफ्त बैंड की आवश्यकता नहीं है

api.tokens_used घटनाओं को वास्तव में ग्राहक के बैलेंस से घटाव कराती है।Configure credit issuance for Starter
10000000ओवरएज की अनुमति दें: अक्षम — स्टार्टर ग्राहक टोकन समाप्त होने पर अवरुद्ध होते हैंडिफ़ॉल्ट क्रेडिट सेटिंग्स आयात करें: सक्षम — क्रेडिट अधिकार से 30-दिवसीय समाप्ति का उपयोग करें
प्रो प्लान ($99/महीना — 40M टोकन, ओवरएज सक्षम)
Create the Pro UBB product
NeuralAPI Proविवरण: 40 million API tokens per month with overage. Built for production applications.स्थिर मूल्य: 99.00बिलिंग चक्र: Monthlyमुद्रा: USDAttach the meter
Token Usage Meter जोड़ें, क्रेडिट्स में बिल उपयोग पर टॉगल करें, API Tokens चुनें, प्रति क्रेडिट मीटर इकाइयाँ 1, मुफ्त सीमा 0.Configure credit issuance with overage
40000000डिफ़ॉल्ट क्रेडिट सेटिंग्स आयात करें: अक्षम — हमें प्रत्येक उत्पाद के लिए ओवरएज सेटिंग्स को अनुकूलित करना होगाओवरएज की अनुमति दें: सक्षमप्रति यूनिट मूल्य: 0.000005 USD प्रति टोकन (यानी, 5 प्रति 1M टोकन — ओवरफ्लो को रोकने के लिए योजना की प्रभावी प्रति-टोकन दर से अधिक)ओवरएज व्यवहार: Bill overage at billing — ओवरएज को अगली इनवॉइस पर चार्ज किया जाता है, फिर बैलेंस रीसेट होता हैउत्पाद सहेजें और उत्पाद आईडी कॉपी करें।स्टेप 4: टोकन टॉप-अप पैक बनाएं
टॉप-अप पैक एक बार की खरीदारी है जो मौजूदा ग्राहक के बैलेंस में 5,000,000 टोकन जोड़ता है।
Create a one-time product
- प्रोडक्ट्स → उत्पाद बनाएं पर जाएं
- मूल्य निर्धारण प्रकार के रूप में सिंगल पेमेंट का चयन करें
- भरें:
Token Top-Up Packविवरण: Instantly add 5 million tokens to your NeuralAPI balance.मूल्य: 19.00मुद्रा: USDAttach the token credit
- अधिकार खंड में, क्रेडिट्स के आगे जोड़ें पर क्लिक करें
API Tokensचुनें- जारी किए गए क्रेडिट्स सेट करें:
5000000 - डिफ़ॉल्ट क्रेडिट सेटिंग्स आयात करें अक्षम करें — हम डिफ़ॉल्ट 30-दिवसीय समाप्ति को ओवरराइड करना चाहते हैं
- क्रेडिट समाप्ति सेट करें:
365 days - उत्पाद सहेजें
स्टेप 5: बैकएंड बनाएं
अब आइए उस एक्सप्रेस सर्वर को बनाएं जो सब्सक्रिप्शन चेकआउट, टॉप-अप चेकआउट, वास्तविक OpenAI पूर्णताओं के साथ टोकन बिलिंग, बैलेंस क्वेरीज़ और क्रेडिट वेबहुक घटनाओं को संभालता है।Set up your project
tsconfig.json बनाएं:package.json स्क्रिप्ट्स अपडेट करें:Set up environment variables
.env बनाएं:DODO_PAYMENTS_WEBHOOK_KEY को भरेंगे।Implement the server
src/server.ts बनाएं:A note on how deductions actually happen
- आपका हैंडलर OpenAI को कॉल करता है और वापस
usage.total_tokensप्राप्त करता है (उदा., 1532)। - आप एक एकल उपयोग घटना को इनग्रस्ट करते हैं:
event_name: api.tokens_used,metadata: { tokens: 1532 }। Token Usage Meterग्राहक के द्वारा घटनाओं को संजोता है।- क्योंकि मीटर
API Tokensक्रेडिट के साथ वायर किया गया है, क्रेडिट्स में बिल उपयोग, Dodo Payments 1532 क्रेडिट्स को ग्राहक के सबसे पुराने अप्रदाता अनुदान (FIFO) से घटा देता है। - यदि ओवरेज सक्षम है और ग्राहक शून्य से नीचे जाता है, तो डेफिसिट को ट्रैक किया जाता है और अगले इनवॉइस पर बिल लगाया जाता है।
स्टेप 6: एक डेमो फ्रंटएंड जोड़ें
public/index.html बनाएं ताकि आप सभी प्रवाहों को अपने ब्राउज़र में परीक्षण कर सकें। हम ग्राहक आईडी को localStorage में बनाए रखते हैं ताकि सदस्यता लें → उत्पन्न करें → टॉप-अप सभी एक ही पहचान साझा करें, लॉग-इन ऐप की नकल कर रहा हो:
स्टेप 7: वेबहुक को वायर करें
वेबहुक आपके सर्वर को बैलेंस परिवर्तन के प्रति प्रतिक्रिया करने देते हैं — आप उनका उपयोग “कम चल रहे हैं” ईमेल भेजने के लिए करेंगे जब ग्राहक शून्य पर पहुंचेंगे।Expose your local server
https://...ngrok-free.app URL की कॉपी करें।Register the webhook in Dodo Payments
- डैशबोर्ड में, डेवलपर्स → वेबहुक → एंडपॉइंट जोड़ें पर जाएं
- URL:
https://your-tunnel.ngrok-free.app/webhooks/dodo - सदस्यता लें (कम से कम):
credit.addedcredit.deductedcredit.overage_charged
- सहेजें और साइनिंग सीक्रेट की कॉपी करें
- इसे
.envके रूप मेंDODO_PAYMENTS_WEBHOOK_KEYमें पेस्ट करें, फिरnpm run devपुनः आरंभ करें
स्टेप 8: पूरा फ्लो टेस्ट करें
Subscribe a test customer
npm run devचलाएंhttp://localhost:3000खोलें- प्रो प्लान चुनें, एक टेस्ट ईमेल + नाम दर्ज करें, चेकआउट लिंक प्राप्त करें पर क्लिक करें, टेस्ट कार्ड विवरण के साथ चेकआउट पूरा करें
- डैशबोर्ड में, ग्राहक → सबसे हाल का पर जाएं और
cus_...आईडी की कॉपी करें - इसे “लॉग-इन कस्टमर आईडी” फ़ील्ड में पेस्ट करें और सेव पर क्लिक करें
Generate a real AI response
total_tokens वापस प्राप्त करता है, एक उपयोग घटना को इनग्रेट करता है, और प्रतिक्रिया लौटाता है।समस्या निवारण
Credits not deducting after usage events
Credits not deducting after usage events
- मीटर का इवेंट नाम जिसे आप भेज रहे हैं,
event_nameसे मेल नहीं खाता है (api.tokens_usedकेस-संवेदनशील है) - मीटर उत्पाद पर
API Tokensक्रेडिट से जुड़ा नहीं है — उत्पाद के मीटर कॉन्फ़िगरेशन में जाएं और पुष्टि करें कि क्रेडिट्स में बिल उपयोग चालू है metadata.tokensकुंजी मीटर के “ओवर प्रॉपर्टी” फ़ील्ड से मेल नहीं ख
- ग्राहक का अनुदान समाप्त हो गया है (ग्राहक के क्रेडिट इतिहास की जांच करें)
- प्रोडक्ट्स → मीटर: मीटर खोलें और पुष्टि करें कि यह उत्पाद संलग्नक पर जुड़ा हुआ क्रेडिट नाम दिखाता है
- मीटर पर इवेंट्स टैब — इनग्रेट की गई इवेंट्स को वहाँ दिखाई देना चाहिए, भले ही डिडक्शन के पहले
- ग्राहक → [ग्राहक] → क्रेडिट्स: लेज़र प्रविष्टियाँ एक या दो मिनट के भीतर दिखाई देनी चाहिए
Balance always shows 0 or 'customer not found'
Balance always shows 0 or 'customer not found'
- ग्राहक ने अभी तक चेकआउट पूरा नहीं किया है — सफल भुगतान के बाद ही क्रेडिट्स जारी किए जाते हैं
- आप गलत
customer_idके साथ क्वेरी कर रहे हैं (डैशबोर्ड सेcus_...आईडी का उपयोग करें, अपना DB आईडी नहीं) CREDIT_ENTITLEMENT_ID.envमें उत्पाद से जुड़े क्रेडिट से मेल नहीं खाता
Overage not working for Pro plan customers
Overage not working for Pro plan customers
- ओवरएज प्रो प्रोडक्ट के क्रेडिट संलग्नक पर सक्षम नहीं किया गया (क्रेडिट स्तर की सेटिंग केवल एक डिफ़ॉल्ट है)
- ग्राहक वास्तव में स्टार्टर पर है, न कि प्रो पर
- ओवरएज सीमा को 0 पर सेट किया गया था
0.000005 है (= प्रति मिलियन टोकन पर $5; अग्रणी शून्य की दोबारा जांच करें — फ़ील्ड प्रति-टोकन मूल्य लेता है, प्रति-1K नहीं)।`Webhook verification failed` in logs
`Webhook verification failed` in logs
- बॉडी पार्सिंग क्रम:
express.json()/webhooks/dodoपर गेम लागू की गई थीexpress.raw()से पहले — SDK को रॉ बाइट्स की आवश्यकता होती है, न कि पार्स किए गए JSON की DODO_PAYMENTS_WEBHOOK_KEYमें गलत साइनिंग सीक्रेट- रिवर्स प्रॉक्सी हैडर्स को पुनर्लेखित कर रहा है
app.use('/webhooks/dodo', express.raw(...)) लाइन की पुष्टि करें कि यह app.use(express.json()) से पहले आती है server.ts में।मदद चाहिए?
बधाई! आपने NeuralAPI के लिए क्रेडिट-आधारित बिलिंग बनाई है
अब आपके प्लेटफॉर्म में एक पूर्ण, प्रोडक्शन-रेडी क्रेडिट बिलिंग सिस्टम है:Token Credit Entitlement
API Tokens क्रेडिट 30-दिवसीय समाप्ति के साथ, सभी योजनाओं और टॉप-अप पैक में साझा की गईTiered Plans, One Credit
One-Time Top-Up Pack
Auto-Deduction via Meter
Live Balance API
Verified Webhook Pipeline
credit.added, credit.deducted, credit.overage_charged) routed through a signature-verified handler using the SDK’s Standard Webhooks helper/credits/:customerIdऔर/api/generateपर प्रमाणन — वर्तमान में कोई भी इन्हें किसी भी ग्राहक आईडी के साथ हिट कर सकता है। उपयोगकर्ताओं को प्रमाणित करें और उनकी कस्टमर आईडी को सर्वर-साइड से लुकअप करें।- स्थिर
event_ids — उदाहरणDate.now() + randomका उपयोग करता है। उत्पादन में, अपने अनुरोध आईडी का उपयोग करें ताकि पुनरावृत्ति आइडेम्पोटेंट हो (Dodo Paymentsevent_idद्वारा डुप्लीकेशन करता है)। - ग्राहक↔उपयोगकर्ता मैपिंग को उत्पन्न करें — पहली चेकआउट के बाद
customer_idको अपने DB में संग्रहीत करें ताकि आपके पास कोई मैनुअल पेस्ट स्टेप की आवश्यकता न हो। - निर्णय लें कि जब एक सब्सक्रिप्शन समाप्त होता है तब क्या होता है। योजना का क्रेडिट ग्राहक के लेजर में तब तक बने रहते हैं जब तक कि उनकी प्राकृतिक समाप्ति (जारी करने के 30 दिन बाद) हो और टॉप-अप क्रेडिट 365 दिनों तक मान्य रहते हैं — लेकिन कुकबुक के
/api/generateकेवल बैलेंस स्थिति की जाँच करता है, न कि सदस्यता स्थिति की। तो एक रद्द किया गया ग्राहक अब भी अपने शेष टोकन का उपभोग कर सकता है। यह उपभोक्ता-अनुकूल डिफ़ॉल्ट है। यदि आप अधिक सख्त पहुँच नियंत्रण चाहते हैं, तो या तो (a)subscription.cancelledवेबहुक को सुनें और सदस्यता स्थिति पर गेट/api/generateको गेट करें, या (b) Dodo के लेजर API को कॉल करें और कम
- प्रयोग बिलिंग डैशबोर्ड की निगरानी करें ताकि आप जल्दी से मीटरिंग अनियमितताओं को पकड़े।