मेरा मिस किया हुआ पहला चार्जबैक शनिवार रात 11:40 बजे आया था। मुझे यह बात तब पता चली जब मैंने सोमवार को Pub/Sub लॉग्स खंगाले और पाया कि यह एक ऐसे topic में बैठा था जिसे कोई consume नहीं कर रहा था।
यह 3 अगस्त, 2026 से पहले की बात थी। उस समय, एक चार्जबैक हारने पर सिर्फ़ वह सेल गंवानी पड़ती थी, और ज़्यादा कुछ नहीं।
अब Google Play उस तारीख़ के बाद किए गए ऑर्डर पर चार्जबैक की लागत डेवलपर्स पर डाल देता है। आपको ऑर्डर की राशि माइनस उनकी सर्विस फ़ीस चुकानी पड़ती है, साथ ही प्रति केस $15 से $25 तक की कार्ड-नेटवर्क फ़ीस। बदले में उन्होंने कुछ दिया भी है: Review Refund API, और सबूत फ़ाइल करने के लिए लगभग 24 घंटे।
तो सवाल यह नहीं है कि आप चार्जबैक हैंडल करते हैं या नहीं। सवाल यह है कि आधी रात को उन्हें कौन हैंडल करता है। सेटअप का तरीका Google Play चार्जबैक से बचाव में मौजूद है। यह लंबा वर्शन है: चार विकल्प, जिनमें से दो से मैं अधिकतर टीमों को दूर रहने की सलाह दूँगा।
मुख्य बातें
Google Play चार्जबैक हैंडलिंग का एक ही इनपुट पॉइंट है: ReviewRefund API, और वह भी Pending Refund Review Notification मिलने के 24 घंटे के भीतर।
Google आपकी पहली कॉल रिकॉर्ड करता है और बाकी को नज़रअंदाज़ कर देता है, फिर भी OK रिस्पॉन्स देता रहता है। एक ही मौका, कोई सुधार नहीं।
सिर्फ़ चार्जबैक को ही चैलेंज किया जा सकता है। सपोर्ट रिफंड, 48-घंटे वाले Play रिफंड और unacknowledged ट्रायल्स का फ़ैसला आपके बिना हो जाता है।
चार वास्तविक विकल्प: खुद बनाएँ, अपने सब्सक्रिप्शन प्लेटफ़ॉर्म का इस्तेमाल करें, सॉफ़्टवेयर ख़रीदें, या नुकसान सह लें।
3 अगस्त, 2026 को यह गणित बदल गया। $99 के एनुअल प्लान पर एक समय-सीमा मिस करने पर ऑर्डर की राशि के साथ-साथ नेटवर्क फ़ीस भी चुकानी पड़ती है।
मैन्युअल हैंडलिंग असल में कैसी दिखती है
सच कहें तो, "मैन्युअल" शब्द के दायरे में कई चीज़ें आती हैं। एक सिरे पर एक शेयर्ड इनबॉक्स है, और कोई व्यक्ति जब याद आए तब Play Console चेक कर लेता है। दूसरे सिरे पर एक रोटा, एक Slack चैनल, और डिस्प्यूटेड ऑर्डर की एक स्प्रेडशीट है।
दूसरा वर्शन बेहतर है। फिर भी यह फेल होता है, और इसकी वजहें मेहनत से जुड़ी नहीं होती।
पहली बात, आप समय की गिनती देख नहीं सकते। 24 घंटे तब शुरू होते हैं जब कोई PendingRefundReviewNotification आपके Pub/Sub topic तक पहुँचता है। क्या आपने कभी रीयल-टाइम डेवलपर नोटिफिकेशंस ऑन नहीं कीं? तो आपको कुछ नहीं बताएगा कि कोई रिव्यू खुला है, और Play Console भी इसे बैज नहीं करेगा।
दूसरी बात, और यह लोगों को चौंका देती है: Google आपकी पहली ReviewRefund कॉल रिकॉर्ड करता है और उसके बाद की हर कॉल को नज़रअंदाज़ कर देता है, फिर भी OK रिस्पॉन्स देता रहता है। देखने में लगता है कि यह काम कर गया। सुबह 9 बजे किसी स्क्रिप्ट में हाथ से निकाले गए डेटा के आधार पर जवाब टाइप करना, एक गलत फ़ील्ड पाने का सीधा रास्ता है, और उसे ठीक करने का कोई मौका नहीं मिलता।
ज़्यादा मेहनत करने से भी इन दोनों में से कोई समस्या हल नहीं होती।
Google Play चार्जबैक प्रक्रिया
इसे समझना ज़रूरी है, क्योंकि यह समय-सीमा लोगों की सोच से कहीं छोटी होती है।
कस्टमर अपने बैंक के पास चार्ज को डिस्प्यूट करता है। न आपके पास, न Google के पास।
Google ऑर्डर को रिव्यू के लिए फ़्लैग करता है और RTDN के ज़रिए एक PendingRefundReviewNotification भेजता है, जिसमें एक pendingRefundToken, orderId, refundReason की वैल्यू 7 (यानी CHARGEBACK), और अगर आपने ख़रीद के समय सेट किया हो तो आपका obfuscatedAccountId शामिल होता है।
आपको एक preference और जो भी सबूत आप इकट्ठा कर सकते हैं, उनके साथ ReviewRefund कॉल करने के लिए लगभग 24 घंटे मिलते हैं।
Google इसका इस्तेमाल बैंक के सामने मामला रखने के लिए करता है।
हार जाएँ, और अगर ऑर्डर 3 अगस्त, 2026 के बाद किया गया है, तो लागत आपकी होगी।
एक असमानता ऐसी है जिस पर ध्यान देना चाहिए। Apple CONSUMPTION_REQUEST के ज़रिए सामान्य रिफंड के बारे में पूछता है। Google Play सिर्फ़ चार्जबैक के लिए ही रिव्यू खोलता है। बाकी सब कुछ आपके बिना तय हो जाता है, और आपको इसका पता एक voided purchase के ज़रिए चलता है। पूरी जानकारी: Google Play चार्जबैक्स को समझें।
विकल्प 1: हैंडलर खुद बनाएँ
एक Pub/Sub topic। Monetize में जाकर, फिर Monetization setup में RTDN ऑन करना। एक push endpoint जो मैसेज पर भरोसा करने से पहले उसे वेरिफ़ाई करे। फिर base64 data फ़ील्ड को डिकोड करना, पाँच notification objects में से जो भी आया हो उसके आधार पर ब्रांच करना, ऑर्डर को किसी यूज़र से मैच करना, सबूत इकट्ठा करना, और एक scoped OAuth token के साथ ReviewRefund कॉल करना।
इसे बनाना महँगा हिस्सा नहीं है। अगर आप पहले webhook प्लंबिंग कर चुके हैं, तो यह दो हफ़्ते का काम है।
दूसरा साल महँगा हिस्सा है। Google एक फ़ील्ड बदल देता है। एक OAuth refresh token किसी रविवार को चुपचाप एक्सपायर हो जाता है। आपका हैंडलर उसी रात मर जाता है जब एक $200 का डिस्प्यूट आता है, और किसी तरह हमेशा ऐसा ही होता है। आपको observability, replay handling, और उन notification shapes के लिए टेस्ट चाहिए होंगे जो आपने अभी तक नहीं देखे।
अगर आप बैकएंड चलाते हैं और रिफंड आपकी रेवेन्यू का असली हिस्सा हैं, तो इसे बनाएँ। मैं चाहूँगा कि आप ऐसा करें। लेकिन अगर आप अकेले प्रोडक्ट शिप कर रहे हैं, तो यह आपके पूरे महीने का गलत इस्तेमाल है।
विकल्प 2: वह सब्सक्रिप्शन प्लेटफ़ॉर्म इस्तेमाल करें जिसके लिए आप पहले से पैसे दे रहे हैं
कोई भी कोड लिखने से पहले यह जाँच लें। RevenueCat ने Refund Control के तहत Google का Review Refund API जोड़ा है, और Adapty के पास Apple साइड पर Refund Saver है।
इसका आकर्षण यह है: आपकी receipts, entitlements और कस्टमर मैपिंग पहले से वहीं मौजूद हैं, इसलिए सबूत पास में ही होते हैं और अकाउंट मैचिंग की समस्या पहले से हल रहती है।
सीमा यह है: उनके लिए रिफंड रिस्पॉन्स एक फ़ीचर है, प्रोडक्ट नहीं। उम्मीद एक preference और कुछ flags की रखें, 1,000 usage events और IP addresses की नहीं। कई ऐप्स के लिए यह काफ़ी है। धोखाधड़ी-भारी डिस्प्यूट के लिए यह काफ़ी नहीं है।
विकल्प 3: समर्पित Google Play चार्जबैक मैनेजमेंट सॉफ़्टवेयर
3 अगस्त से पहले यह कैटेगरी लगभग मौजूद ही नहीं थी, जिससे पता चलता है कि यह मोटिवेशन कितना नया है।
इनका तरीका एक जैसा होता है। सर्विस आपके RTDN को सब्सक्राइब करती है, समय-सीमा के भीतर डिलीवरी और एंगेजमेंट के सबूत के साथ एक decline recommendation फ़ाइल करती है, और हर केस के नतीजे को ट्रैक करती है।
Refund Sensor एक ही अकाउंट से Google Play और App Store दोनों के लिए यह करता है। Google से साइन इन करें, दो Play Console परमिशन दें (फ़ाइनेंशियल डेटा देखना, ऑर्डर और सब्सक्रिप्शन मैनेज करना) और यह ख़ुद ही Pub/Sub topic प्रोविज़न कर देता है। कोई SDK नहीं, कोई कोड बदलाव नहीं, कुछ भी फिर से सबमिट करने की ज़रूरत नहीं।
बदले में: एक और वेंडर, एक और मंथली खर्च। जो आपको मिलता है वह यह है कि आपको वह व्यक्ति नहीं बनना पड़ता जिसे जागे रहना पड़े।
विकल्प 4: नुकसान सह लें
कुछ ऐप्स के लिए यह सही विकल्प है, और मैं इससे मुकरूँगा नहीं। $1.99 का एक consumable बेचें, साल में चार चार्जबैक देखें, तो दो हफ़्ते की इंजीनियरिंग कभी भी अपनी लागत नहीं निकाल पाएगी।
हालाँकि, पहले हिसाब लगा लें। $99 वाले एनुअल प्लान पर एक चार्जबैक हारने पर ऑर्डर की राशि माइनस Google की सर्विस फ़ीस, साथ ही $15 से $25 की नेटवर्क फ़ीस चुकानी पड़ती है। एक क्वार्टर में ऐसे दो मामले हों तो जवाब बदल जाता है।
Google Play चार्जबैक हैंडलिंग को ऑटोमेट कैसे करें
अगर आपने विकल्प एक चुना है, तो यहाँ बनाने का क्रम दिया गया है। क्रम लोगों की सोच से ज़्यादा मायने रखता है।
Play Console में RTDN ऑन करें, Pub/Sub topic बनाएँ। पाइप पर भरोसा करने से पहले Send Test Message दबाएँ।
data फ़ील्ड को डिकोड करें और यह देखकर ब्रांच करें कि कौन-सा notification object आया है। हर मैसेज में सिर्फ़ एक ही आता है। pendingRefundReviewNotification पर, pendingRefundToken स्टोर करें और एक टाइमर शुरू करें। कोई ईमेल नहीं। एक टाइमर।
orderId को किसी यूज़र से मैच करें। obfuscatedAccountId सबसे तेज़ रास्ता है, और यही वजह काफ़ी है कि आप इसे ख़रीद के समय सेट करना शुरू कर दें।
सबूत इकट्ठा करें: sampleContentProvided, consumptionPercentageMilliunits (45200 का मतलब है 45.2 प्रतिशत), और टाइमस्टैंप और IP addresses के साथ 1,000 तक के consumptionUsageEvents।
orders.reviewrefund को एक बार कॉल करें, APPROVE, DECLINE या NEUTRAL में से किसी एक refundPreference के साथ। कॉल, payload और रिस्पॉन्स को लॉग करें।
इससे अलग, एक्सेस हटाने के लिए voidedPurchaseNotification को हैंडल करें, और हर रात reconcile करने के लिए Voided Purchases API चलाएँ। इस पर रोज़ाना 6,000 कॉल की सीमा है।
यह आख़िरी स्टेप वही है जिसे सब छोड़ देते हैं। मैंने भी महीनों तक इसे छोड़ा। outages के दौरान notifications मिस हो जाते हैं, और pull API ही वह तरीका है जिससे आपको पता चलता है कि डाउन रहने के दौरान क्या-क्या आया। Voided Purchases API बनाम रीयल-टाइम डेवलपर नोटिफिकेशंस में बताया गया है कि कौन-सा feed क्या करता है।
Google Play चार्जबैक से बचाव
यह ऊपर बताए गए किसी भी विकल्प से सस्ता है, और उन डिस्प्यूट पर भी काम करता है जिनके आने का आपको कभी पता नहीं चलता।
जो कस्टमर आपके सपोर्ट तक पहुँच जाता है, वह अपने बैंक तक नहीं पहुँचता। ऐप के भीतर एक दिखने वाला कॉन्टैक्ट पाथ, साथ ही एक दिन के भीतर जवाब, शुरू होने से पहले ही आश्चर्यजनक रूप से बड़ी संख्या में डिस्प्यूट खत्म कर देता है।
फिर रिन्यूअल को साफ़ दिखाएँ: कीमत, अवधि और रिन्यूअल डेट, वही सब buy बटन वाली स्क्रीन पर। मैंने जो भी देखा है, उसमें सरप्राइज़ सबसे ज़्यादा डिस्प्यूट पैदा करता है।
दो और बातें हैं जिन पर पर्याप्त ध्यान नहीं दिया जाता। unacknowledged purchases पर ध्यान रखें, क्योंकि जो ट्रायल बिना किसी के नोटिस किए कन्वर्ट हो जाते हैं, वे एक महीने बाद चार्जबैक बन जाते हैं। और voidedReason को एक fraud signal के तौर पर इस्तेमाल करें। इसमें नौ वैल्यू होती हैं, जिनमें fraud, friendly_fraud और chargeback शामिल हैं, और ऐसे अकाउंट दोबारा ऐसा करते हैं। एक और ट्रायल देने से पहले उन्हें फ़्लैग कर लें।
अपनी दर Google की सीमा से नीचे रखें। लगातार बनी समस्याएँ अकाउंट स्टैंडिंग को प्रभावित करती हैं, जो किसी एक रिफंड से भी ज़्यादा नुकसानदेह है।
स्रोत
अक्सर पूछे जाने वाले प्रश्न
रिफंड Google के ज़रिए होता है, जिसका फैसला Google या आप खुद Play Console में करते हैं। चार्जबैक में कस्टमर अपने बैंक के पास जाता है, जिससे यह कार्ड-नेटवर्क के नियमों के दायरे में आ जाता है। सिर्फ़ चार्जबैक ही एक ऐसा रिव्यू खोलता है जिसका आप जवाब दे सकते हैं, और सिर्फ़ इसकी ही लागत आप पर डाली जाती है।
PendingRefundReviewNotification मिलने के बाद लगभग 24 घंटे। समय की गिनती नोटिफिकेशन के डिलीवर होने से शुरू होती है, न कि जब आपका ध्यान जाए।
Google आपके सबूत के बिना चार्जबैक का पक्ष रखता है, जो सबसे कमज़ोर स्थिति होती है। 3 अगस्त, 2026 के बाद किए गए ऑर्डर पर, हार होने पर ऑर्डर की राशि माइनस सर्विस फ़ीस, साथ ही एक नेटवर्क फ़ीस चुकानी पड़ती है।
नहीं। Google आपकी पहली ReviewRefund कॉल को रिकॉर्ड करता है और बाकी सभी को नज़रअंदाज़ कर देता है, फिर भी OK रिस्पॉन्स देता रहता है। इसे प्रोडक्शन के पास जाने से पहले किसी टेस्ट परचेज़ पर आज़मा लें।
वह जो आपके जागे बिना भी जवाब फ़ाइल कर दे। अगर आप बैकएंड चलाते हैं, तो इसे खुद बनाना एक वाजिब प्रोजेक्ट है। अगर नहीं, तो Play Console परमिशन के ज़रिए कनेक्ट होने वाला Google Play रिफंड मैनेजमेंट सॉफ़्टवेयर, एक ही एज केस के लिए Pub/Sub कंज़्यूमर लिखने से बेहतर है।
नहीं। आप Google के अपने ही Play Developer API के ज़रिए सुझाव दे रहे हैं, जिसके पीछे डिलीवरी और कंज़म्पशन के सबूत होते हैं। यही वह चैनल है जो Google ने इसी काम के लिए बनाया है।



