डिजिटल वस्तुओं का थोक मंच

Digiseller API — पेमेंट और डिलीवरी का ऑटोमेशन 2026

रीसेलर के लिए Digiseller API की व्यावहारिक व्याख्या — टोकन से कोड डिलीवरी तक, upstream सप्लायर और डबल-चार्ज सुरक्षा के साथ।

Digiseller API: पेमेंट और डिलीवरी का ऑटोमेशन

Digiseller पहले पेमेंट और ऑटो-डिलीवरी इंजन है, स्टोरफ़्रंट बाद में। रीसेलर के लिए इसकी असली वैल्यू तभी बनती है जब प्रोडक्ट कार्ड को कोई इंसान या अपलोड की गई टेक्स्ट फ़ाइल नहीं, बल्कि आपकी अपनी सर्विस सर्व करती है — जो पेमेंट आते ही wholesale सप्लायर को कॉल करके काम करने वाला कोड लौटा देती है। यह लेख बताता है कि ऐसा इंटीग्रेशन कैसे बनता है, कहाँ टूटता है और उसे कैसे ठीक करें।

अगर आपने अभी तक इस प्लेटफ़ॉर्म पर काम नहीं किया, तो बेसिक्स से शुरू करें — Digiseller पर डिजिटल सामान बेचना

Digiseller API किन हिस्सों में बँटा है

API कुछ अर्थपूर्ण ब्लॉक्स में बँटता है। मेथड नाम और पैरामीटर मौजूदा documentation से मिलाएँ — नीचे लॉजिक है, signature लिस्ट नहीं।

ब्लॉक क्या करता है रीसेलर को क्यों चाहिए
Authentication seller ID और signed request के बदले अस्थायी token बाक़ी हर कॉल इसी पर निर्भर है
Products कार्ड, क़ीमत, विवरण, उपलब्धता बनाना और बदलना अपने सिस्टम से bulk price update
Orders ऑर्डर नंबर या बायर के unique code से सेल जानकारी पेमेंट असली है यह पुष्टि करना
Fulfilment बायर को कंटेंट देना और ऑर्डर delivered मार्क करना सौदा बंद करता है और विवाद घटाता है
Operations सेलर अकाउंट का बैलेंस और मनी मूवमेंट reconciliation और असली margin

एक buyer-messaging ब्लॉक भी है। वह बिक्री को ऑटोमेट नहीं करता, पर सपोर्ट बनाने में काम आता है।

Token स्थिर नहीं होता

Token expire होता है और request आपके secret तथा timestamp पर hash से sign होती है। व्यावहारिक नतीजा — हर कॉल पर नया token मत माँगिए और एक token को हमेशा के लिए cache भी मत कीजिए। सही तरीक़ा है token को expiry के साथ स्टोर करना, ख़त्म होने से एक-दो मिनट पहले refresh करना, और expired-authorisation रिस्पॉन्स मिलने पर ठीक एक बार forced re-auth करना।

पेमेंट से डिलीवरी तक, क़दम दर क़दम

आपके backend की नज़र से पूरी चेन इस तरह दिखती है।

  1. बायर पेमेंट करता है Digiseller स्टोरफ़्रंट या Plati.Market पर। पैसा प्लेटफ़ॉर्म के पास होल्ड रहता है, अभी अंतिम रूप से आपका नहीं है।
  2. प्लेटफ़ॉर्म सेल की सूचना देता है। या तो आपके URL पर notification आता है, या आपकी सर्विस ऑर्डर के हिसाब से API poll करती है। Notification तेज़ है, polling भरोसेमंद — व्यवहार में दोनों चाहिए।
  3. आप authenticity जाँचते हैं। notification body पर अकेले भरोसा न करें: ऑर्डर नंबर से API को वापस कॉल करें और पुष्टि करें कि सेल मौजूद है, राशि मेल खाती है और प्रोडक्ट वही है।
  4. अपने डेटाबेस में ऑर्डर देखें। रिकॉर्ड मौजूद है और कोड जारी हो चुका है, तो वही कोड लौटाएँ। नहीं है तो pending स्टेटस के साथ नया रिकॉर्ड बनाएँ।
  5. wholesale सोर्स को कॉल करें। आपकी सर्विस mapped SKU पर सप्लायर को ऑर्डर देती है और कोड पाती है।
  6. कंटेंट बायर को दें और प्लेटफ़ॉर्म पर ऑर्डर delivered मार्क करें।
  7. नतीजा वापस लिखें — कोड, purchase cost, सप्लायर order ID, timestamp।

क़दम 4 और 7 ही सबसे ज़्यादा छोड़े जाते हैं, और यही डेमो को सिस्टम बनाते हैं। State लॉजिक विस्तार से यहाँ है — API order flow कैसे काम करता है

प्रोडक्ट कार्ड के पीछे upstream सप्लायर

विचार सीधा है: प्लेटफ़ॉर्म का कार्ड शो-विंडो है, गोदाम wholesaler के पास है। बिक्री के क्षण पर आपका middleware प्लेटफ़ॉर्म SKU को सप्लायर SKU में बदलता है, ऑर्डर देता है और कोड लौटाता है।

इसके लिए क्या चाहिए:

  • Mapping table. एक प्लेटफ़ॉर्म प्रोडक्ट = एक सप्लायर प्रोडक्ट, साथ में region और denomination। activation region साफ़ न हो तो refund की धारा बन जाती है।
  • बिक्री से पहले availability check. सप्लायर स्टॉक poll करें और ख़त्म होने पर आइटम बिक्री से हटाएँ — पेड ऑर्डर कैंसिल करने से बहुत सस्ता है।
  • Fallback सोर्स. टॉप SKU पर दूसरा सप्लायर अधिकांश stockout जोखिम हटा देता है।
  • Cost-price कंट्रोल. थोक क़ीमतें बदलती हैं; storefront अपडेट न करें तो आप कुछ समय लागत से नीचे बेचते रहेंगे।

Idempotency header में नहीं, आपके डेटाबेस में रहती है

सबसे महँगी ग़लती है एक ही सेल के लिए दो बार कोड ख़रीद लेना। कारण साधारण हैं — प्लेटफ़ॉर्म का दोहराया notification, सप्लायर कॉल पर timeout, worker restart।

यह मत मानिए कि सप्लायर की तरफ़ का idempotency header आपको बचा लेगा। उदाहरण के लिए FoxReload API में Idempotency-Key header है ही नहीं — दोहराया POST दूसरा ऑर्डर बना देगा। इसके बजाय यह पैटर्न काम करता है:

  • सप्लायर को कॉल करने से पहले अपने डेटाबेस में intent लिखें — platform sale ID, SKU, timestamp, status pending;
  • किसी भी अस्पष्ट error (timeout, connection drop, 5xx) पर पहले status check करें — सप्लायर के हालिया ऑर्डर लाएँ और SKU व समय से अपना ढूँढें;
  • नया ऑर्डर तभी बनाएँ जब पुष्टि हो जाए कि पिछला बना ही नहीं;
  • अपनी table में platform sale ID पर unique index आख़िरी रक्षा-पंक्ति है।

पूरा पैटर्न यहाँ है — idempotency keys और सुरक्षित retry

Retry और queue

Error को वर्ग में बाँटें और हर वर्ग पर अलग प्रतिक्रिया दें।

रिस्पॉन्स मतलब कार्रवाई
Network timeout पता नहीं request पहुँची या नहीं status check, फिर फ़ैसला
401 / 403 token expire या scope कम token refresh, एक retry
400 / 422 request ग़लत बनी है retry नहीं, लॉग करें
404 ऐसा SKU या ऑर्डर नहीं retry नहीं, आइटम बिक्री से हटाएँ
429 rate limit limit header के अनुसार रुकें, फिर retry
5xx upstream समस्या exponential backoff, सीमित attempts

Backoff बढ़ता रखें और थोड़ा jitter डालें, वरना सप्लायर के ठीक होते ही आपके सारे worker एक लहर में टूट पड़ेंगे। Attempt count सीमित रखें: जो ऑर्डर उचित समय में सेटल न हो वह manual queue में जाना चाहिए, अनंत लूप में नहीं।

Reconciliation ही मुनाफ़े को भ्रम से अलग करती है

Reconciliation के बिना ऑटोमेशन सुंदर पर ग़लत तस्वीर बनाता है। रोज़ का न्यूनतम सेट:

  • प्लेटफ़ॉर्म सेल्स बनाम आपके ऑर्डर. हर सेल के सामने ठीक एक सप्लायर ऑर्डर होना चाहिए।
  • सप्लायर ऑर्डर बनाम डिलीवर किए गए कोड. ख़रीदा पर डिलीवर न हुआ कोड शुद्ध नुक़सान और भावी विवाद है।
  • पैसा. प्लेटफ़ॉर्म रेवेन्यू माइनस प्लेटफ़ॉर्म फ़ीस माइनस लागत माइनस withdrawal फ़ीस — यही margin है।
  • अटके ऑर्डर. जो भी N मिनट से ज़्यादा pending में है, रिपोर्ट में जाए।

अंतर हमेशा रहेंगे। अहम यह है कि वे अपने-आप पकड़े जाएँ, बायर की शिकायत से नहीं।

इस सेटअप के लिए स्टॉक कहाँ से लें

पूरा डिज़ाइन उतना ही अच्छा है जितना कार्ड के पीछे बैठा सोर्स। FoxReload का थोक कैटलॉग यही भूमिका निभाता है: गेम keys, gift cards, top-up और subscriptions में 900+ SKU, दर्जनों बिखरे सप्लायर के बजाय एक REST API और ऑटोमैटिक डिलीवरी। इससे आप Digiseller स्टोरफ़्रंट के पीछे एक ही इंटीग्रेशन लेयर रख पाते हैं और हर बार सप्लायर बदलने पर कोड दोबारा नहीं लिखना पड़ता।

संबंधित सामग्री: डिजिटल कोड डिलीवरी का ऑटोमेशन, ऑर्डर webhooks और Digiseller में SBP जोड़ना

अक्सर पूछे जाने वाले प्रश्न

Digiseller API असल में क्या-क्या कर सकता है?
प्लेटफ़ॉर्म API में कई मेथड ग्रुप हैं — authentication और token, प्रोडक्ट कार्ड और प्राइसिंग, ऑर्डर नंबर या बायर के unique code से सेल की जानकारी, ऑर्डर को delivered मार्क करना, और सेलर ऑपरेशंस डेटा। सटीक मेथड नाम और पैरामीटर हमेशा Digiseller की मौजूदा documentation में देखें, क्योंकि वह अपडेट होती रहती है। रीसेलर के लिए दो सीन सबसे अहम हैं — पेमेंट हुआ यह पता चलना, और बायर को कंटेंट लौटाना।
External fulfilment, लोड किए गए code pool से बेहतर क्यों है?
Pool वह स्टॉक है जो आपने पहले खरीदकर प्रोडक्ट कार्ड में अपलोड किया। वह या तो फ़्रोज़न कैश से भरा रहता है या ठीक ग़लत समय पर ख़ाली हो जाता है। External fulfilment में आपकी सर्विस बिक्री के क्षण पर wholesale API कॉल करके उसी ऑर्डर के लिए कोड ख़रीदती है। कैश ब्लॉक नहीं होता और आप ख़ुद stockout नहीं बनाते, पर अब आपकी सर्विस का भरोसेमंद होना और एक fallback सोर्स रखना ज़रूरी है।
एक ही ऑर्डर दो बार डिलीवर होने से कैसे बचें?
अपनी order table रखें जिसकी key प्लेटफ़ॉर्म का sale identifier हो। सप्लायर को कॉल करने से पहले देखें कि उस identifier का रिकॉर्ड और कोड पहले से मौजूद तो नहीं। अगर है, तो नया ख़रीदने के बजाय सेव किया हुआ कोड लौटाएँ। यह प्लेटफ़ॉर्म के दोहराए गए notification से भी बचाता है और आपके अपने retry से भी।
अगर सप्लायर जवाब न दे और बायर पेमेंट कर चुका हो तो?
कभी ख़ाली payload न लौटाएँ और ऑर्डर को delivered मार्क न करें। सही रास्ता है ऑर्डर को internal waiting state में डालना, बढ़ती देरी के साथ सीमित retry चलाना, और attempts ख़त्म होने पर या तो fallback सोर्स पर स्विच करना या refund शुरू करना। बायर को ईमानदार देरी का मैसेज दिखाना टूटे कोड से कहीं सस्ता पड़ता है।
FoxReload के थोक दाम देखें

संबंधित लेख