सभी लेख
प्लेबुकपढ़ने में 8 मिनट

Apple और Google हर स्टोर का रिफ़ंड अलग से करते हैं, इसलिए आपकी क्रॉस-प्लेटफ़ॉर्म सब्सक्रिप्शन को बाकी हर जगह एक्सेस खुद बंद करना होगा

जब Apple या Google किसी क्रॉस-प्लेटफ़ॉर्म सब्सक्रिप्शन का रिफ़ंड करते हैं, तो आपके Android ऐप, iPhone ऐप और वेबसाइट को इसकी जानकारी अपने आप नहीं मिलती। जानिए हर स्टोर खरीदारी को एक अकाउंट से कैसे जोड़ें, सही एंटाइटलमेंट कैसे रद्द करें, और रिफ़ंड पा चुके यूज़र्स को सेवा देने पर पैसा खर्च करना कैसे बंद करें।

एक डेस्क पर साथ-साथ रखे एक iPhone, एक Android फ़ोन और एक लैपटॉप, तीनों एक ही क्रॉस-प्लेटफ़ॉर्म सब्सक्रिप्शन अकाउंट में साइन इन हैं

मुख्य बातें

  • Apple की App Review Guideline 3.1.3(b) कई प्लेटफ़ॉर्म पर चलने वाले ऐप्स को यह अनुमति देती है कि वे यूज़र्स को दूसरे प्लेटफ़ॉर्म या डेवलपर की वेबसाइट पर खरीदे गए कंटेंट और सब्सक्रिप्शन का एक्सेस दें, बशर्ते वही आइटम ऐप में इन-ऐप खरीदारी के रूप में भी उपलब्ध हों।
  • Apple और Google केवल अपने स्टोर में हुई खरीदारी का रिफ़ंड करते हैं, इसलिए किसी क्रॉस-प्लेटफ़ॉर्म सब्सक्रिप्शन पर Apple का रिफ़ंड ग्राहक की Google Play या वेब बिलिंग तक नहीं पहुंचता। डेवलपर के सर्वर को हर प्लेटफ़ॉर्म पर दिया गया एक्सेस खुद हटाना होता है।
  • जब Apple किसी consumable, non-consumable, non-renewing सब्सक्रिप्शन या auto-renewable सब्सक्रिप्शन का रिफ़ंड करता है, तो वह App Store Server Notifications V2 के ज़रिए REFUND नोटिफ़िकेशन भेजता है, और कहता है कि हर रिफ़ंड हुए ट्रांज़ैक्शन को स्टोर करना, उस पर नज़र रखना और उस पर कार्रवाई करना डेवलपर की ज़िम्मेदारी है।
  • Apple का appAccountToken एक UUID है जिसे डेवलपर किसी इन-ऐप खरीदारी से जोड़ता है, और App Store Server API का Set App Account Token एंडपॉइंट इसे बाद में ऐप के बाहर हुई खरीदारी में भी जोड़ सकता है, जैसे रिडीम किया गया ऑफ़र कोड।
  • Google Play का setObfuscatedAccountId किसी खरीदारी को डेवलपर के ऐप के एक अकाउंट से जोड़ता है, इसकी सीमा 64 अक्षर है, और अगर इसमें ईमेल जैसा कोई सादा निजी डेटा हो तो खरीदारी ब्लॉक हो जाती है।
  • Google Play का Voided Purchases API रिफ़ंड और चार्जबैक हुई खरीदारियों की जानकारी एक orderId और voidedSource के साथ देता है, जिसमें 0 का अर्थ User, 1 का अर्थ Developer और 2 का अर्थ Google है।
  • 3 अगस्त 2026 के बाद दिए गए Google Play ऑर्डर पर चार्जबैक स्वीकार होने पर डेवलपर को खरीद मूल्य, Play का सर्विस शुल्क घटाकर, और साथ में बैंक का चार्जबैक शुल्क चुकाना होता है।

आपके सब्सक्राइबर ने Apple को भुगतान किया, उसी दोपहर आपका Android ऐप खोला, और अब ऑफ़िस में आपकी वेबसाइट इस्तेमाल करता है। फिर Apple उसे रिफ़ंड दे देता है। Google Play को इसकी खबर नहीं होती। आपकी वेब बिलिंग को भी नहीं। जब तक आपका अपना सर्वर एक्सेस बंद नहीं करता, रिफ़ंड हुई क्रॉस-प्लेटफ़ॉर्म सब्सक्रिप्शन हर उस स्क्रीन पर चलती रहती है जो आपका अकाउंट डेटाबेस पढ़ती है। स्टोर एक समय में एक ही स्टोरफ़्रंट का रिफ़ंड करते हैं, और पूरी सब्सक्रिप्शन केवल आपके अकाउंट सिस्टम में मौजूद होती है। इसलिए उसे खत्म भी केवल वही कर सकता है।

एक स्टोर का रिफ़ंड क्रॉस-प्लेटफ़ॉर्म सब्सक्रिप्शन को खत्म क्यों नहीं करता

Apple इस व्यवस्था की साफ़ शब्दों में अनुमति देता है। App Review Guideline 3.1.3(b), Multiplatform Services, कहती है कि कई प्लेटफ़ॉर्म पर चलने वाले ऐप्स यूज़र्स को वह कंटेंट, सब्सक्रिप्शन या फ़ीचर इस्तेमाल करने दे सकते हैं जो उन्होंने दूसरे प्लेटफ़ॉर्म पर आपके ऐप में या आपकी वेबसाइट पर खरीदे हों, बशर्ते वही आइटम ऐप में इन-ऐप खरीदारी के रूप में भी उपलब्ध हों।

कई ऐप्स में एक ही सब्सक्रिप्शन देने पर Apple की गाइड बताती है कि यह व्यवहार में कैसे चलता है। एक्सेस आपका सर्वर देता है, एक साझा अकाउंट डेटाबेस के ज़रिए, और हर ऐप उसी से पढ़ता है। यही गाइड चेतावनी देती है कि अगर कोई खरीदारी दूसरे ऐप्स तक नहीं पहुंचाई जाती, तो यूज़र एक ही सेवा के लिए एक से ज़्यादा बार भुगतान कर सकता है।

इस डिज़ाइन का एक नतीजा अक्सर नज़रअंदाज़ हो जाता है। एंटाइटलमेंट आपके डेटाबेस में रहता है, लेकिन हर स्टोर केवल अपनी रसीदें जानता है। Apple iPhone खरीदारी का रिफ़ंड करके आपके सर्वर को बता सकता है। वह आपके Android ऐप या वेबसाइट को कुछ नहीं बता सकता। अगर रिफ़ंड हैंडलर केवल iOS क्लाइंट को अपडेट करता है, तो ग्राहक को पैसा वापस मिल जाता है और बाकी हर जगह सब्सक्रिप्शन चलती रहती है।

भुगतान कहां हुआरिफ़ंड का फ़ैसला कौन करता हैआपके सर्वर को कैसे पता चलता हैरिन्यूअल कौन रोक सकता है
App StoreAppleApp Store Server Notifications V2 में REFUND नोटिफ़िकेशनग्राहक, अपनी App Store सब्सक्रिप्शन सेटिंग्स में या आपके ऐप द्वारा खोली गई मैनेज स्क्रीन में
Google Playपहले 48 घंटों में Google, उसके बाद आप या GoogleVoided Purchases API और रियल-टाइम डेवलपर नोटिफ़िकेशनग्राहक, या आप purchases.subscriptionsv2.cancel के ज़रिए
आपकी वेबसाइटआपआपके पेमेंट प्रोसेसर के वेबहुकआप

रिफ़ंड के बाद हर प्लेटफ़ॉर्म पर एक्सेस कैसे रद्द करें

हर स्टोर खरीदारी को एक अकाउंट से जोड़ें

किसी रिफ़ंड को सही व्यक्ति से मिलाना सबसे कठिन हिस्सा है, क्योंकि हर स्टोर खरीदार को अपने तरीके से पहचानता है। दोनों स्टोर आपको अपने अकाउंट ID के लिए एक फ़ील्ड देते हैं। हर खरीदारी पर इसका इस्तेमाल करें।

  • Apple पर, खरीदारी शुरू होते समय एक appAccountToken सेट करें, जो आपके द्वारा बनाया गया UUID है। App Store वही UUID ट्रांज़ैक्शन और रिन्यूअल जानकारी में लौटाता है। Apple कहता है कि एक ही ग्राहक के सभी ट्रांज़ैक्शन के लिए आप एक ही वैल्यू दोबारा इस्तेमाल कर सकते हैं।
  • अगर ग्राहक ने आपके ऐप के बाहर खरीदारी की, जैसे App Store में ऑफ़र कोड रिडीम करके, तो ट्रांज़ैक्शन में कोई टोकन नहीं होता। Set App Account Token एंडपॉइंट इसे जोड़ देता है। auto-renewable सब्सक्रिप्शन के लिए यह मौजूदा और आगे के रिन्यूअल पर लागू होता है, पिछले ट्रांज़ैक्शन पर नहीं, और Family Sharing के ज़रिए साझा की गई खरीदारी पर यह काम नहीं करता।
  • Google Play पर, बिलिंग फ़्लो शुरू करते समय setObfuscatedAccountId के साथ एक obfuscated अकाउंट ID भेजें। इसकी सीमा 64 अक्षर है। Google कहता है कि ईमेल जैसा सादा निजी डेटा होने पर खरीदारी ब्लॉक हो जाती है, और वह एन्क्रिप्शन या वन-वे हैश की सलाह देता है।

दोनों स्टोर की सुनें, फिर एक ही एंटाइटलमेंट लिखें

Apple किसी भी प्रोडक्ट टाइप का रिफ़ंड करने पर REFUND भेजता है, auto-renewable सब्सक्रिप्शन सहित। जब वह ग्राहक द्वारा उठाए गए विवाद के कारण पहले से दिया गया रिफ़ंड वापस लेता है, तो REFUND_REVERSED भेजता है। Google Play पर, Voided Purchases API रिफ़ंड और चार्जबैक हुई खरीदारियों की सूची देता है, हर एक के साथ एक orderId जो ठीक-ठीक खरीदारी या रिन्यूअल की पहचान करता है। आपका वेब प्रोसेसर अपना अलग रिफ़ंड इवेंट भेजता है। तीनों एक ही हैंडलर में पहुंचने चाहिए और एक ही रिकॉर्ड बदलने चाहिए।

एंटाइटलमेंट रद्द करें, अकाउंट नहीं

रिफ़ंड एक खरीदारी को रद्द करता है, किसी व्यक्ति को नहीं। रिफ़ंड हुई खरीदारी से मिला एक्सेस हटाएं, फिर दोबारा गणना करें कि अकाउंट के पास अब भी क्या है। अगर ग्राहक के पास किसी दूसरे स्टोर की सक्रिय सब्सक्रिप्शन भी है, तो उसका एक्सेस उसी के ज़रिए बना रहता है। अगर नहीं है, तो हर क्लाइंट अगली बार आपके सर्वर से जांच करते ही प्रीमियम फ़ीचर खो देता है।

जब एक ही व्यक्ति दो स्टोर पर सब्सक्राइब करे

दोहरी सब्सक्रिप्शन इस समस्या का दूसरा आधा हिस्सा है। कोई Android पर सब्सक्राइब करता है, नया iPhone लेता है, साइन इन नहीं करता, और फिर से सब्सक्राइब कर लेता है। अब वह एक सेवा के लिए दो बार भुगतान कर रहा है, और इनमें से एक चार्ज आम तौर पर रिफ़ंड अनुरोध बन जाता है। Apple Developer Forums पर एक डेवलपर को जवाब देते हुए Apple की कॉमर्स टीम ने इसे सीधे शब्दों में कहा: ऐप के अकाउंट सिस्टम में दूसरे प्लेटफ़ॉर्म पर दोहरी खरीदारी रोकने का लॉजिक होना चाहिए।

पेवॉल दिखाने से पहले हर स्टोर जांचें

पेवॉल से पहले यूज़र को साइन इन कराएं, अपने सर्वर पर उसकी सभी सक्रिय खरीदारियां देखें, और अगर उनमें से कोई भी इस प्लेटफ़ॉर्म को कवर करती है तो ऑफ़र न दिखाएं। यह एक जांच ज़्यादातर दोहरे चार्ज को होने से पहले ही रोक देती है।

जब दोहरी खरीदारी हो ही चुकी हो, तो किसका रिफ़ंड करें?

उसका रिफ़ंड करें जो आपके नियंत्रण में है। Google Play पर आप Play Console में खुद रिफ़ंड जारी कर सकते हैं, और DEVELOPER_REQUESTED_STOP_PAYMENTS के साथ purchases.subscriptionsv2.cancel अगला भुगतान रोक देता है। अपनी वेब सब्सक्रिप्शन का रिफ़ंड आप सीधे कर सकते हैं। App Store रिफ़ंड का फ़ैसला Apple करता है, इसलिए अगर दोहरी खरीदारी iPhone पर है, तो ग्राहक Apple से अनुरोध करता है, और आपका ऐप StoreKit के रिफ़ंड अनुरोध API से वह अनुरोध खोल सकता है।

किसी प्लेटफ़ॉर्म तक न पहुंचने वाला रिफ़ंड आपको कितना महंगा पड़ता है

रिफ़ंड की गई कीमत तो बस पहला नुकसान है। जिस ग्राहक का Apple रिफ़ंड आपके Android ऐप या वेबसाइट तक कभी नहीं पहुंचा, वह उन चीज़ों का इस्तेमाल करता रहता है जिन्हें चलाने का खर्च आप उठाते हैं। हर सेशन अब भी कंप्यूट खर्च करता है। हर AI फ़ीचर अब भी थर्ड-पार्टी API कॉल करता है जिनका बिल आपको आता है। उसकी फ़ाइलें अब भी स्टोरेज घेरती हैं, और अगर आपका ऐप क्रिएटर्स को प्रति व्यू या प्रति उपयोग भुगतान करता है, तो वे भुगतान जाते रहते हैं। सालाना प्लान पर इसका मतलब हो सकता है ऐसे अकाउंट के लिए पूरे एक साल का सर्विंग खर्च जो अब कुछ भी नहीं चुकाता।

बैंक का रास्ता इसे और बिगाड़ देता है। 3 अगस्त 2026 के बाद दिए गए Google Play ऑर्डर के लिए Google कहता है कि चार्जबैक स्वीकार होने पर डेवलपर खरीद मूल्य के लिए ज़िम्मेदार है, Play का सर्विस शुल्क घटाकर, और साथ में वित्तीय संस्थान द्वारा लिया गया चार्जबैक शुल्क भी। बैंक में चार्जबैक अंतिम होता है। जिस ग्राहक ने चार्जबैक किया और जिसके पास अब भी एक्सेस है, उसने आपको एक साथ कीमत, शुल्क और सर्विंग खर्च का नुकसान पहुंचाया है।

छूटे हुए रिवोक के बाद क्या चलता रहता हैइसका भुगतान कौन करता है
Android या वेब पर हर सेशन का सर्वर कंप्यूटआप
आपके फ़ीचर्स द्वारा किए गए थर्ड-पार्टी API कॉलआप
यूज़र की फ़ाइलों और हिस्ट्री का स्टोरेजआप
क्रिएटर्स को प्रति उपयोग या प्रति व्यू भुगतानआप
3 अगस्त 2026 के बाद के Google Play ऑर्डर पर चार्जबैक शुल्कआप, खरीद मूल्य के ऊपर, Play का सर्विस शुल्क घटाकर
एक खुले लैपटॉप के पास स्मार्टफ़ोन पकड़े एक हाथ, और पास में उल्टा पड़ा एक दूसरा फ़ोन, क्रॉस-प्लेटफ़ॉर्म सब्सक्रिप्शन यूज़र का रोज़मर्रा का सेटअप

क्रॉस-प्लेटफ़ॉर्म उपयोग भी सबूत है

सभी प्लेटफ़ॉर्म पर एक अकाउंट तब भी काम आता है जब कोई स्टोर आपका पक्ष पूछता है। Apple की consumption information पूछती है कि ग्राहक ने किसी consumable, non-consumable या non-renewing सब्सक्रिप्शन का कितना हिस्सा इस्तेमाल किया। auto-renewable सब्सक्रिप्शन के लिए आप प्रतिशत नहीं भेजते, क्योंकि Apple इसे बीते समय से खुद गणना करता है। Google Play की चार्जबैक समीक्षा 1,000 तक consumption usage इवेंट स्वीकार करती है, और हर इवेंट में obfuscated अकाउंट ID हो सकता है। एक अकाउंट ID के तहत दर्ज उपयोग, चाहे किसी भी डिवाइस से हुआ हो, ऐसा उपयोग है जिसे आप दिखा सकते हैं।

किन रिफ़ंड में आपका पक्ष कभी नहीं पूछा जाता

ज़्यादातर रिफ़ंड आपके बिना तय होते हैं। Google Play अपने रिफ़ंड फ़्लो के ज़रिए 48 घंटों के भीतर किसी खरीदारी का रिफ़ंड कर सकता है। स्टोर सपोर्ट के रिफ़ंड, voided खरीदारियां, और उन खरीदारियों का Google द्वारा लगभग 72 घंटों में अपने आप किया गया रिफ़ंड जिन्हें आपने कभी acknowledge नहीं किया, ये सब पहले होते हैं और इनकी सूचना बाद में मिलती है। इनके लिए ऊपर बताया गया रिवोक लॉजिक ही पूरा काम है।

केवल दो फ़्लो सबूत मांगते हैं। Apple का CONSUMPTION_REQUEST आपको consumption information भेजने के लिए 12 घंटे देता है। Google Play की चार्जबैक समीक्षा आपको PendingRefundReviewNotification से 24 घंटे देती है ताकि आप orders.reviewrefund के ज़रिए जवाब दें, और Google केवल आपकी पहली कॉल दर्ज करता है। RefundHalt दोनों का जवाब समय सीमा के भीतर देता है, उस उपयोग डेटा से जो आप पहले से इकट्ठा करते हैं, और जो आपके सभी ऐप्स में एक ही अकाउंट से जुड़ा होता है।

क्रॉस-प्लेटफ़ॉर्म रिफ़ंड के लिए एक छोटी चेकलिस्ट

  • Apple खरीदारी पर appAccountToken और Google Play खरीदारी पर obfuscated अकाउंट ID सेट करें।
  • ऑफ़र कोड रिडेम्पशन के लिए छूटे हुए Apple टोकन Set App Account Token से भरें।
  • Apple REFUND और REFUND_REVERSED, Google Play की voided खरीदारियां और वेब रिफ़ंड, सबको एक ही हैंडलर में भेजें।
  • हर खरीदारी को उसके स्रोत के साथ स्टोर करें, और एक्सेस सभी सक्रिय खरीदारियों से तय करें।
  • किसी भी प्लेटफ़ॉर्म पर पेवॉल दिखाने से पहले हर स्टोर की खरीदारियां जांचें।

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

क्या मैं iPhone यूज़र्स को Android या अपनी वेबसाइट पर खरीदी गई सब्सक्रिप्शन का एक्सेस दे सकता हूं?
हां। Apple की App Review Guideline 3.1.3(b) कई प्लेटफ़ॉर्म पर चलने वाले ऐप्स को यूज़र्स को दूसरे प्लेटफ़ॉर्म या आपकी वेबसाइट पर खरीदे गए कंटेंट, सब्सक्रिप्शन या फ़ीचर का एक्सेस देने देती है, बशर्ते वही आइटम iPhone ऐप में इन-ऐप खरीदारी के रूप में भी उपलब्ध हों।
अगर Apple किसी सब्सक्राइबर को रिफ़ंड देता है, तो क्या Google Play या मेरी वेब बिलिंग को पता चलता है?
नहीं। Apple केवल आपके सर्वर को App Store Server Notifications V2 में एक REFUND नोटिफ़िकेशन के ज़रिए बताता है, और किसी को नहीं। उस खरीदारी से Android, वेब और हर उस जगह दिया गया एक्सेस जहां अकाउंट साइन इन होता है, आपके सर्वर को हटाना होगा।
App Store रिफ़ंड को किसी यूज़र अकाउंट से कैसे मिलाऊं?
appAccountToken का इस्तेमाल करें, एक UUID जिसे आपका ऐप खरीदारी से जोड़ता है और जिसे App Store ट्रांज़ैक्शन जानकारी में लौटाता है। आपके ऐप के बाहर हुई खरीदारी के लिए, जैसे ऑफ़र कोड रिडेम्पशन, Apple का Set App Account Token एंडपॉइंट टोकन जोड़ता या बदलता है। यह Family Sharing ट्रांज़ैक्शन को सपोर्ट नहीं करता।
एक ग्राहक App Store और Google Play दोनों पर सब्सक्राइब है। मुझे किसका रिफ़ंड करना चाहिए?
उसका रिफ़ंड करें जो आपके नियंत्रण में है। आप Play Console में Google Play ऑर्डर का रिफ़ंड कर सकते हैं और purchases.subscriptionsv2.cancel से उसका अगला भुगतान रोक सकते हैं। App Store रिफ़ंड का फ़ैसला Apple करता है, इसलिए iPhone पर दोहरी खरीदारी Apple के रिफ़ंड अनुरोध से होकर जाती है, जिसे आपका ऐप StoreKit से खोल सकता है।
क्या मेरी वेबसाइट या Android ऐप पर हुआ उपयोग रिफ़ंड समीक्षा में सबूत माना जाता है?
एक अकाउंट के तहत दर्ज उपयोग आपके जवाब को मज़बूत कर सकता है। Apple की consumption information पूछती है कि किसी consumable, non-consumable या non-renewing सब्सक्रिप्शन का कितना हिस्सा इस्तेमाल हुआ, और Google Play की चार्जबैक समीक्षा 1,000 तक उपयोग इवेंट स्वीकार करती है जिनमें obfuscated अकाउंट ID हो सकता है।

स्रोत और आगे की जानकारी

RefundHalt

App Store और Google Play के लिए refund ऑटोपायलट

आगे पढ़ें

प्लेबुकपढ़ने में 8 मिनट

ज़्यादा रिफ़ंड अनुरोध आपको रिफ़ंड से भी महंगे पड़ सकते हैं, क्योंकि दोनों ऐप स्टोर इन्हें क्वालिटी का संकेत मानते हैं

Apple की गाइडलाइन 5.6.4 ज़्यादा रिफ़ंड अनुरोधों को इस बात का संकेत बताती है कि ऐप क्वालिटी के मानकों पर खरा नहीं उतर रहा, और Google का डिस्ट्रिब्यूशन एग्रीमेंट नए डेवलपर्स के ऐप रिफ़ंड दर के आधार पर हटाने की अनुमति देता है। जानिए हर स्टोर क्या कहता है, ऐप हटने की कीमत क्या है और इससे कैसे बचें।

गहन विश्लेषणपढ़ने में 8 मिनट

रिफ़ंड पर कार्रवाई करने से पहले App Store सर्वर नोटिफ़िकेशन सत्यापित करें, क्योंकि आपके webhook URL पर कोई भी पोस्ट कर सकता है

जब तक आप इसके सिग्नेचर की जाँच नहीं करते, रिफ़ंड नोटिफ़िकेशन सिर्फ़ एक HTTPS अनुरोध है। जानिए App Store सर्वर नोटिफ़िकेशन और Google Play RTDN संदेशों को कैसे सत्यापित करें, हर स्टोर क्या साइन करता है, और जाली या गलती से अस्वीकार किया गया रिफ़ंड आपको कितना महँगा पड़ता है।

अगला refund अनुरोध पहले ही रास्ते में है.

RefundHalt को उतने समय में सेटअप करें, जितने में आप उस refund के बारे में एक और सपोर्ट ईमेल पढ़ते हैं जिस पर आपत्ति नहीं कर पाए.