रिफंड रिक्वेस्ट की शुरुआत ग्राहक की एक कार्रवाई से होती है। आपकी तरफ यह घटनाओं की एक श्रृंखला बन जाती है, जिसे आपका backend या तो संभालता है या चूक जाता है।
Apple आपके सर्वर से जानकारी मांग सकता है। उसके लिए एक समय-सीमा होती है। फिर नतीजा एक notification के रूप में आता है, और आपके ऐप की access state को उसके अनुसार बदलना होता है। अगर इस श्रृंखला की कोई भी कड़ी गायब है, तो रिफंड फिर भी होता है — बस आपको इसका पता बाद में चलता है, किसी payout रिपोर्ट से या किसी उलझन में पड़े यूज़र से।
Apple रिफंड मंज़ूर करेगा या नहीं, यह आप तय नहीं कर सकते। यह Apple का फैसला है, और कोई भी डेवलपर टूल इसे नहीं बदल सकता। आप यह तय कर सकते हैं कि रिक्वेस्ट आने पर आपके सिस्टम तैयार हैं या नहीं।
यह गाइड बताती है कि Apple रिफंड रिक्वेस्ट से पहले, उसके दौरान और उसके बाद क्या करना है। अगर आप व्यापक ऑपरेशनल तस्वीर चाहते हैं, तो App Store रिफंड मैनेजमेंट पर हमारी गाइड आसपास के पूरे वर्कफ़्लो को कवर करती है।
मुख्य बातें
• अंतिम रिफंड फैसला Apple करता है। डेवलपर रिफंड रिक्वेस्ट को मंज़ूर या अस्वीकार नहीं करते।
• Apple consumption जानकारी मांग सकता है। जहां वह मांगता है, वहां डेवलपर सहमति के साथ और समय-सीमा के भीतर जवाब दे सकते हैं।
• रिफंड notification आपके backend तक पहुंचने चाहिए, वरना आपके लिए ये इवेंट असल में मौजूद ही नहीं हैं।
• रिफंड के नतीजों से application state बदलनी चाहिए, सिर्फ लॉग नहीं होनी चाहिए।
• जहां Apple रिस्पॉन्स विंडो देता है, वहां समय मायने रखता है। रिफंड रिक्वेस्ट ऑफिस के घंटों का इंतज़ार नहीं करतीं।
• ऑटोमेशन मुख्य रूप से छूटे हुए कदमों को रोकता है: छूटे notification, छूटी विंडो, छूटे entitlement अपडेट।
जब कोई ग्राहक Apple रिफंड मांगता है तो क्या होता है?
ग्राहक Apple के ज़रिए रिक्वेस्ट सबमिट करता है। Apple उसका मूल्यांकन करता है, बीच में आपसे जानकारी मांग सकता है, फैसला करता है और फिर आपके सर्वर को बताता है कि क्या हुआ।
चरण | क्या होता है | आपकी तरफ |
1 | ग्राहक Apple को रिफंड रिक्वेस्ट सबमिट करता है | कुछ नहीं करना — लेकिन आपका endpoint लाइव होना चाहिए |
2 | Apple रिक्वेस्ट का मूल्यांकन शुरू करता है | इसमें कोई विज़िबिलिटी नहीं |
3 | Apple CONSUMPTION_REQUEST भेज सकता है | ट्रांज़ैक्शन और ग्राहक की पहचान करें |
4 | शर्तें पूरी होने पर आप जवाब देते हैं | सहमति जांची, डेटा तैयार, समय पर भेजा |
5 | Apple फैसला करता है | फैसले का कोई अधिकार नहीं |
6 | नतीजा notification के रूप में आता है | REFUND, REFUND_DECLINED, या बाद में REFUND_REVERSED |
7 | रिकॉर्ड और access अपडेट करने होते हैं | entitlement state को उसके अनुसार बदला |
चरण 3 सशर्त है। Apple कुछ खास खरीद प्रकारों और स्थितियों के लिए consumption request भेजता है, हर रिफंड रिक्वेस्ट के लिए अपने-आप नहीं। ऐसा लॉजिक बनाना जो मान ले कि यह हमेशा आएगा, कमियां पैदा करेगा।
Apple रिफंड रिक्वेस्ट रेवेन्यू की समस्या क्यों बन सकती हैं
रिफंड की गई रकम दिखने वाली लागत है, और शायद ही कभी सबसे बड़ी। किसी सब्सक्रिप्शन अवधि का रिफंड उस रेवेन्यू को उलट देता है जिसे आप पहले ही गिन चुके थे, और आमतौर पर उसके पीछे की रिन्यूअल स्ट्रीम भी खत्म कर देता है — ऐसे रिन्यूअल जो शायद किसी फोरकास्ट में बैठे थे।
फिर state का सवाल है। अगर नतीजे का notification कभी पहुंचता ही नहीं, तो ग्राहक के पास paid access बना रहता है। आपका डेटाबेस कहता है active, Apple कहता है refunded, और जब तक कोई शिकायत नहीं करता, कोई दोनों का मिलान नहीं करता।
इसके आसपास शांत लागतें हैं: payout रिपोर्ट जिनका मैन्युअल मिलान करना पड़ता है, access के बारे में सपोर्ट बातचीत जिसकी ज़रूरत ही नहीं पड़नी चाहिए थी, App Store रिफंड रिक्वेस्ट जो रात में आईं और जिनका जवाब बहुत देर से गया। और रिफंड हिस्ट्री न होने पर बार-बार दोहराने वाले कारण अदृश्य बने रहते हैं।
क्या डेवलपर Apple के रिफंड फैसले को नियंत्रित कर सकते हैं?
नहीं। अंतिम रिफंड फैसला Apple करता है। डेवलपर लागू होने पर मांगी गई consumption जानकारी दे सकते हैं और अपनी तरफ नतीजे से जुड़ी application state संभाल सकते हैं।
इस बंटवारे को लेकर स्पष्ट रहने से बहुत सारी बेकार मेहनत बचती है।
आप क्या नियंत्रित करते हैं
• notification आपके backend तक पहुंचते और वहां संभाले जाते हैं या नहीं
• ट्रांज़ैक्शन स्टोर किए जाते हैं और बाद में खोजे जा सकते हैं या नहीं
• कोई ट्रांज़ैक्शन किसी खास यूज़र अकाउंट से जुड़ता है या नहीं
• consumption डेटा सटीक है और पहले से तैयार है या नहीं
• उसे भेजने की वैध सहमति आपके पास है या नहीं
• आप Apple की विंडो के भीतर जवाब देते हैं या नहीं
• नतीजे के बाद entitlement, रिकॉर्ड और रिपोर्टिंग अपडेट होती हैं या नहीं
आप क्या नियंत्रित नहीं करते
• किसी भी व्यक्तिगत रिफंड पर Apple का अंतिम फैसला
• Apple उस फैसले के पीछे के कारकों को कैसे तौलता है
• ग्राहकों के लिए Apple की रिफंड नीति और पात्रता के नियम
Apple रिफंड रिक्वेस्ट का जवाब कैसे दें
आठ चरण। इनमें से ज़्यादातर किसी रिफंड रिक्वेस्ट के आने से पहले ही हो जाते हैं।
1. सुनिश्चित करें कि App Store Server Notifications आपके backend तक पहुंचें
रिफंड इवेंट आपके कॉन्फ़िगर किए गए सर्वर endpoint पर आते हैं। अगर वह पहुंच से बाहर है, अनवेरिफ़ाइड है या चुपचाप फेल हो रहा है, तो आपके नज़रिए से वे इवेंट खो गए। Apple ने सेटअप और signed payload फ़ॉर्मैट को App Store Server Notifications रेफरेंस में दस्तावेज़ किया है। सिग्नेचर वेरिफ़ाई करें, success रिस्पॉन्स लौटाएं, और प्रोसेस करने से पहले जो मिला उसे लॉग करें।
2. ट्रांज़ैक्शन और ग्राहक की पहचान करें
notification में Apple के ट्रांज़ैक्शन आइडेंटिफ़ायर होते हैं, आपके नहीं। आपको मिलान के लिए एक स्टोर किया हुआ ट्रांज़ैक्शन रिकॉर्ड चाहिए, और यूज़र अकाउंट तक वापस पहुंचने का रास्ता। यह दूसरा हिस्सा appAccountToken संभालता है — खरीद के समय जोड़ा गया एक UUID। यह वैकल्पिक है, और इसीलिए इतनी सारी टीमें बाद में मैचिंग heuristics लिखती रह जाती हैं।
3. जांचें कि क्या Apple ने consumption जानकारी मांगी है
CONSUMPTION_REQUEST notification का मतलब है कि Apple रिफंड रिक्वेस्ट का मूल्यांकन करते हुए ग्राहक द्वारा प्रोडक्ट के इस्तेमाल के बारे में पूछ रहा है। यह इस बात की सूचना नहीं है कि रिफंड हो गया, और यह हर रिफंड के लिए नहीं आता। इसे एक अलग इवेंट टाइप मानें, जिसका अपना handler हो।
4. सहमति की शर्तें जांचें
consumption डेटा तभी भेजें जब Apple की शर्तें पूरी हों। Apple का Send Consumption Information दस्तावेज़ इस बारे में सीधा है: ग्राहक का डेटा साझा करने से पहले आपको उससे वैध सहमति लेनी होगी, और उसे लेना आपकी ज़िम्मेदारी है, Apple की नहीं। notification में कोई सहमति संकेत नहीं होता — आपको यह अपने रिकॉर्ड से पता होना चाहिए। अगर ग्राहक ने सहमति नहीं दी है, तो Apple का मार्गदर्शन है कि जवाब न दें।
इसलिए सहमति ऐप की समस्या है, जिसे किसी रिफंड रिक्वेस्ट के आने से पहले इकट्ठा किया जाता है। बाद में इसे जोड़ना काम नहीं करता।
5. सटीक consumption जानकारी तैयार करें
payload बताता है कि खरीद के साथ असल में क्या हुआ, इसलिए अनुमान लगाने के बजाय वैल्यू अपने रिकॉर्ड से लें। Apple ने फ़ील्ड और उनकी वैध वैल्यू दस्तावेज़ की हैं, जिसमें यह भी शामिल है कि कोई खास फ़ील्ड न देने का संकेत कैसे दें। प्रस्तुति से ज़्यादा सटीकता मायने रखती है: यह Apple की प्रक्रिया का एक इनपुट है, आपकी ओर से दी जा रही दलील नहीं।
6. Apple की तय विंडो के भीतर जवाब दें
Apple का मौजूदा दस्तावेज़ notification के 12 घंटे के भीतर जवाब मांगता है। किसी पुराने implementation पर भरोसा करने के बजाय पेज खुद जांचें — Apple ने इस endpoint में बदलाव किया है और अब एक से ज़्यादा वर्शन दस्तावेज़ करता है। बारह घंटे इस चरण को ऑटोमेट करने की सबसे मज़बूत व्यावहारिक दलील हैं, क्योंकि रिक्वेस्ट रात में और वीकेंड पर आती हैं।
7. अंतिम नतीजे को ट्रैक करें
नतीजा स्टोर करें। REFUND का मतलब है कि रिफंड मंज़ूर हुआ। REFUND_DECLINED का मतलब है कि नहीं हुआ। REFUND_REVERSED का मतलब है कि Apple ने पहले मंज़ूर किया गया रिफंड पलट दिया। टीमें आमतौर पर पहले दो को संभालती हैं और तीसरे को भूल जाती हैं, जिससे ग्राहक उस access से वंचित रह जाता है जिसका वह हकदार है।
8. entitlement और access state अपडेट करें
आपके ऐप की access state ट्रांज़ैक्शन state से मेल खानी चाहिए। जब रिफंड मंज़ूर हो, तो रिफंड के बाद access रद्द करें। जब कोई रिफंड पलटा जाए, तो उसे बहाल करें। इसे client-side जांच के बजाय server-side इवेंट से चलाएं, ताकि ग्राहक दोबारा ऐप न भी खोले तो भी state सही बनी रहे।
ज़रूरत से ज़्यादा रेवेन्यू खोए बिना Apple रिफंड कैसे संभालें
Apple रिफंड संभालना जानना, हर एक रिफंड को रोकने की कोशिश करने जैसा नहीं है।
कुछ रिक्वेस्ट जायज़ होती हैं। चार्ज दो बार लग गया, कंटेंट अनलॉक नहीं हुआ, किसी को लगा कि उसने कैंसल कर दिया है और फिर भी सब्सक्रिप्शन रिन्यू हो गया। वहां उपयोगी जवाब है मूल समस्या को ठीक करना।
बाकी सब अनुशासन है: सटीक ट्रांज़ैक्शन रिकॉर्ड, तेज़ इवेंट प्रोसेसिंग, ईमानदार consumption डेटा, एकरूप entitlement, और एक रिफंड हिस्ट्री जिसे आप क्वेरी कर सकें। यह आखिरी चीज़ बार-बार दोहराने वाले कारणों को सामने लाती है — कोई प्रोडक्ट जिसके रिफंड बाकी सबसे कहीं ज़्यादा हैं, किसी रिलीज़ के बाद उछाल, कोई paywall जो साफ़ नहीं बताता कि वह क्या चार्ज करता है। इनमें से कुछ भी रिफंड खत्म नहीं करता। यह टालने योग्य नुकसान कम करता है और application state को सटीक रखता है, जो कि यथार्थवादी लक्ष्य है।
उन ग्राहकों का क्या जो Apple रिफंड मांगना चाहते हैं?
ग्राहक डेवलपर से रिफंड नहीं मांगते। अगर आप सोच रहे हैं कि Apple खरीद पर रिफंड कैसे मांगें, या App Store कंटेंट पर रिफंड कैसे मांगें, तो रास्ता Apple की अपनी प्रक्रिया है: reportaproblem.apple.com पर साइन इन करें, “Request a refund” चुनें, कारण और आइटम चुनें, और सबमिट करें। ऐप या कंटेंट के लिए रिफंड मांगने पर Apple का पेज इसे चरण-दर-चरण समझाता है, और बताता है कि रिक्वेस्ट पर अपडेट आमतौर पर 24 से 48 घंटे में मिलता है।
यह ग्राहक की तरफ का आधा हिस्सा है। इस लेख में बाकी सब डेवलपर की तरफ का आधा हिस्सा है, और दोनों अलग-अलग समय-सीमाओं पर चलते हैं।
Apple रिफंड नीति बनाम डेवलपर रिफंड मैनेजमेंट
इन दोनों को इतनी बार आपस में मिला दिया जाता है कि अलग करना ज़रूरी है। Apple की रिफंड नीति ग्राहक की तरफ को नियंत्रित करती है: कौन रिफंड मांग सकता है, किस प्रक्रिया से, और किन शर्तों पर। Apple कहता है कि पात्रता देश या क्षेत्र के अनुसार अलग हो सकती है, जिसका संदर्भ Apple Media Services Terms and Conditions हैं, और जहां स्थानीय कानून उपभोक्ता-संरक्षण अधिकार देता है, वहां वे लागू होते हैं। डेवलपर इनमें से कुछ भी तय नहीं करते।
डेवलपर रिफंड मैनेजमेंट वह सब है जो रेखा के आपकी तरफ है: इवेंट प्राप्त करना, ट्रांज़ैक्शन पहचानना, मांगे जाने पर जवाब देना, नतीजे ट्रैक करना, access अपडेट करना और रेवेन्यू पर असर समझना। Apple की नीति तय करती है कि ग्राहक के साथ क्या होगा। आपके सिस्टम तय करते हैं कि आपके ऐप के साथ क्या होगा।
डेवलपर को Apple रिफंड हैंडलिंग कब ऑटोमेट करनी चाहिए?
मैन्युअल हैंडलिंग तब तक काम करती है जब तक वॉल्यूम कम हो और एक व्यक्ति सब कुछ अपने दिमाग में रख सके।
यह साधारण वजहों से नाकाम होती है। notification सुबह 3 बजे आते हैं। रिफंड handler लिखने वाला इंजीनियर टीम बदल लेता है। ट्रांज़ैक्शन ID एक सिस्टम में रहते हैं और अकाउंट दूसरे में। किसी के notification पढ़ने से पहले रिस्पॉन्स विंडो खत्म हो जाती है, और फाइनेंस को तिमाही के अंत में कमी दिखती है।
ऑटोमेशन निश्चित हिस्सों को कवर करता है: notification प्राप्त करना और वेरिफ़ाई करना, ट्रांज़ैक्शन को यूज़र से मिलाना, समय-सीमाएं ट्रैक करना, entitlement अपडेट करना, खोजने योग्य हिस्ट्री रखना। यह Apple के फैसले को प्रभावित नहीं करता, और इसके उलट दावा करने वाला कोई भी टूल प्रक्रिया को गलत तरीके से पेश कर रहा है।
App Store रिफंड मैनेजमेंट सॉफ़्टवेयर को असल में क्या करना चाहिए?
App Store रिफंड मैनेजमेंट सॉफ़्टवेयर को उन खास कमियों को बंद करना चाहिए जो मैन्युअल हैंडलिंग खुली छोड़ देती है।
इसे notification मॉनिटर और वेरिफ़ाई करने चाहिए, ताकि इवेंट किसी फेल हो रहे endpoint में गायब न हों। इसे रिफंड इवेंट टाइप को अलग करना चाहिए, क्योंकि consumption request और रिफंड के नतीजे को अलग-अलग हैंडलिंग चाहिए। इसे ट्रांज़ैक्शन को अकाउंट से मैप करना चाहिए, क्योंकि यही lookup है जहां मैन्युअल काम सबसे ज़्यादा जमा होता है। इसे रिस्पॉन्स विंडो ट्रैक करनी चाहिए, क्योंकि यही वह समय-सीमा है जो लोग चूकते हैं। इनके आसपास: सहमति की state सहित consumption वर्कफ़्लो सपोर्ट, खोजने योग्य रिफंड हिस्ट्री, entitlement सिंक्रोनाइज़ेशन, और इतनी स्पष्ट रिपोर्टिंग कि पैटर्न दिखें।
मूल्य फ़ीचर की गिनती में नहीं है। मूल्य इसमें है कि इनमें से कोई भी कदम किसी के जांचना याद रखने पर निर्भर नहीं करता।
ये नियम कहां दस्तावेज़ किए गए हैं
ऊपर का हर Apple-विशिष्ट दावा Apple के अपने दस्तावेज़ों से आया है। बनाने से पहले इन्हें सीधे पढ़ें, और समय-समय पर दोबारा जांचें, क्योंकि रिफंड API एक से ज़्यादा बार बदले हैं।
Send Consumption Information — सहमति की शर्त, रिस्पॉन्स विंडो और रिक्वेस्ट फ़ील्ड। चरण 4 से 6 के लिए आधिकारिक स्रोत।
App Store Server Notifications — endpoint सेटअप, signed payload फ़ॉर्मैट, और notification टाइप, जिनमें CONSUMPTION_REQUEST, REFUND, REFUND_DECLINED और REFUND_REVERSED शामिल हैं।
ऐप या कंटेंट के लिए रिफंड मांगें — ग्राहकों के लिए Apple की प्रक्रिया, और यह नोट कि पात्रता देश या क्षेत्र के अनुसार अलग होती है।
अंतिम विचार
Apple के रिफंड नतीजे आप तय नहीं करते। आप यह तय करते हैं कि आपके अपने सिस्टम उन पर कितनी तेज़ी और कितनी सटीकता से प्रतिक्रिया देते हैं।
यह कुछ चीज़ों पर टिका है: notification जो पहुंचें, ट्रांज़ैक्शन जिन्हें आप पहचान सकें, Apple के मांगने पर भेजी गई सटीक जानकारी, दर्ज किए गए नतीजे, हकीकत से मेल खाते entitlement, और रेवेन्यू पर असर देखने लायक विज़िबिलिटी।
अगर इस हफ्ते आप एक चीज़ जांचना चाहते हैं, तो endpoint जांचें। पुष्टि करें कि आपका App Store Server Notifications URL लाइव है, वेरिफ़ाइड है और जो मिल रहा है उसे लॉग कर रहा है। इस लेख में बाकी सब कुछ इसी एक हिस्से के काम करने पर निर्भर करता है।
अगर रिफंड गतिविधि मैन्युअल ट्रैकिंग से आगे निकल गई है
जब रिफंड इवेंट इतने बार-बार होने लगें कि हाथ से नज़र रखना मुमकिन न रहे, तो एक समर्पित सिस्टम उन्हें मॉनिटर कर सकता है, रिस्पॉन्स वर्कफ़्लो मैनेज कर सकता है, नतीजे ट्रैक कर सकता है और दोहराए जाने वाले ऑपरेशनल काम को कम कर सकता है। RefundSensor प्रक्रिया का वह हिस्सा संभालता है — डेवलपर का हिस्सा, Apple का नहीं।
अक्सर पूछे जाने वाले प्रश्न
नहीं। अंतिम रिफंड फैसला Apple करता है। डेवलपर सिर्फ तब consumption जानकारी दे सकते हैं जब Apple उसे मांगे।
सुनिश्चित करें कि notification आपके backend तक पहुंचें, ट्रांज़ैक्शन की पहचान करें, सहमति जांचें, मांगे जाने पर सटीक consumption डेटा दें, और अपने सिस्टम में रिफंड का नतीजा अपडेट करें।
यह एक notification है जो Apple की रिफंड समीक्षा के दौरान यह जानकारी मांगता है कि ग्राहक ने खरीद का इस्तेमाल कैसे किया। इसका मतलब यह नहीं है कि रिफंड मंज़ूर हो गया है।
Apple का मौजूदा दस्तावेज़ 12 घंटे की रिस्पॉन्स विंडो बताता है। ऑटोमेटेड हैंडलिंग से समय-सीमा चूकने से बचा जा सकता है।
नहीं। डेवलपर Apple के रिफंड फैसले को रोक या पलट नहीं सकते। consumption जानकारी बस एक इनपुट है जिस पर Apple विचार कर सकता है।
रिफंड मंज़ूर होने पर संबंधित entitlement रद्द करें। अगर Apple बाद में रिफंड पलट देता है, तो entitlement बहाल करें।
ग्राहक reportaproblem.apple.com के ज़रिए सीधे Apple से रिफंड मांगते हैं। डेवलपर ग्राहक की रिफंड रिक्वेस्ट प्रोसेस नहीं करते।
हां। मैन्युअल काम कम करने के लिए notification, ट्रांज़ैक्शन मैचिंग, समय-सीमाएं, entitlement अपडेट और रिफंड रिकॉर्ड को ऑटोमेट किया जा सकता है।






