ग्राहक की रसीद पर App Store order ID बताता है कि उसने क्या खरीदा और क्या Apple पहले ही रिफंड कर चुका है
Apple का Look Up Order ID endpoint ग्राहक की App Store रसीद के order ID को signed transactions में बदल देता है, जिनमें रिफंड की तारीख और कारण भी होते हैं। रिफंड ईमेल के लिए इसका इस्तेमाल कैसे करें, यह क्या नहीं कर सकता, और Google Play का order ID इससे कैसे अलग है, यहाँ जानिए।

मुख्य बातें
- हर बार जब ग्राहक इन-ऐप खरीदारी करता है, Apple order ID वाली एक रसीद ईमेल करता है, और ग्राहक अपने App Store खरीद इतिहास में भी अपने order ID ढूँढ सकते हैं।
- Apple के App Store Server API का endpoint Look Up Order ID (GET /inApps/v1/lookup/{orderId}) एक मान्य order ID के लिए एक या अधिक signed transactions लौटाता है, ताकि सपोर्ट टीम बिना अंदाज़ा लगाए productId और purchaseDate देख सके।
- डिकोड किए गए App Store transaction में revocationDate और revocationReason होते हैं, इसलिए order ID lookup दिखा देता है कि Apple ने खरीद पहले ही रिफंड कर दी है या नहीं। कारण 1 का मतलब है कि Apple ने ऐप के भीतर किसी वास्तविक या महसूस की गई समस्या की वजह से रिफंड किया।
- जब order ID आपके ऐप के लिए मान्य नहीं होता, तो Look Up Order ID OrderLookupStatus 1 लौटाता है और कोई signedTransactions array नहीं होता, जो गलत रसीद या किसी दूसरे ऐप की खरीद का संकेत है।
- Look Up Order ID Apple के sandbox वातावरण में उपलब्ध नहीं है, और production में इसकी rate limit प्रति ऐप 10 अनुरोध प्रति सेकंड है, जो घंटे के आधार पर लागू होती है।
- डेवलपर App Store रिफंड जारी नहीं कर सकते। Apple उन्हें reportaproblem.apple.com पर तय करता है, और डेवलपर का एकमात्र सबूत वाला कदम 12 घंटे के भीतर CONSUMPTION_REQUEST का जवाब देना है।
- Google Play हर one-time खरीद और हर सब्सक्रिप्शन renewal के लिए एक order ID ईमेल करता है, और डेवलपर उस order ID को Play Console में खोजकर सीधे रिफंड कर सकता है। Play Console कहता है कि रिफंड वापस नहीं लिया जा सकता।
किसी iPhone ग्राहक के रिफंड ईमेल का जवाब देने से पहले, उनकी Apple रसीद पर लिखा App Store order ID माँगिए। वह एक स्ट्रिंग, Apple के Look Up Order ID endpoint से गुज़रकर, बताती है कि उन्होंने कौन सा प्रोडक्ट खरीदा, कब खरीदा, और क्या Apple उसे पहले ही रिफंड कर चुका है। इसके बिना आप एक स्क्रीनशॉट और एक ईमेल पते को अपने डेटाबेस से मिलाते हैं और उम्मीद करते हैं। इसके साथ, आप कुछ ही सेकंड में जान लेते हैं कि आप किसी भुगतान करने वाले ग्राहक से बात कर रहे हैं, किसी ऐसे ग्राहक से जिसे Apple पैसे लौटा चुका है, या किसी ऐसे व्यक्ति से जिसके पास किसी दूसरे ऐप की रसीद है।
App Store order ID कहाँ से आता है
Apple का दस्तावेज़ साफ़ है। जब ग्राहक आपके ऐप में एक या अधिक इन-ऐप खरीदारी करते हैं, App Store उन्हें एक रसीद ईमेल करता है, और उस रसीद में एक order ID होता है। ग्राहक App Store पर अपने खरीद इतिहास में भी अपने order ID ढूँढ सकते हैं। Apple का खरीद इतिहास पेज reportaproblem.apple.com पर और App Store ऐप में Apps & Purchase History के अंदर है, और यह डिफ़ॉल्ट रूप से पिछले 90 दिन दिखाता है, पुरानी खरीदारी के लिए फ़िल्टर के साथ।
यानी चाबी पहले से ग्राहक के पास है। आपके सपोर्ट फ़ॉर्म को बस उसे माँगना है।
सिर्फ़ ईमेल पता काफ़ी क्यों नहीं है
Apple ग्राहक के Apple Account का ईमेल आपके साथ साझा नहीं करता। जो पता आपके सपोर्ट इनबॉक्स में लिखता है, उसका भुगतान करने वाले अकाउंट से कोई लेना-देना न हो, ऐसा हो सकता है। अगर आपने खरीद के समय appAccountToken सेट किया है, तो आप transaction को अपने user ID से जोड़ सकते हैं, लेकिन सिर्फ़ अपनी तरफ़ से। order ID ग्राहक की तरफ़ से काम करता है, एक ऐसी रसीद से जिसे वे एक टैप में फ़ॉरवर्ड कर सकते हैं।
Look Up Order ID क्या लौटाता है
Look Up Order ID, App Store Server API का हिस्सा है और version 1.1.0 से उपलब्ध है। आप अपने signed JWT के साथ GET https://api.storekit.apple.com/inApps/v1/lookup/{orderId} कॉल करते हैं। Apple कहता है कि जवाब ग्राहक के इन-ऐप खरीद इतिहास पर आधारित होता है, चाहे उन्होंने ऐप इंस्टॉल किया हो, हटाया हो या दोबारा इंस्टॉल किया हो।
| फ़ील्ड या व्यवहार | Apple का दस्तावेज़ क्या कहता है | सपोर्ट इसका क्या करता है |
|---|---|---|
| OrderLookupStatus 0 | मान्य order ID। जवाब में एक या अधिक signed transactions का array होता है | हर एक को डिकोड करें और खरीद पढ़ें |
| OrderLookupStatus 1 | जवाब में signedTransactions array नहीं होता | order ID को अपने ऐप के लिए अमान्य मानें। सही रसीद माँगें |
| productId और purchaseDate | Apple इन्हें ग्राहक सहायता के लिए इस्तेमाल होने वाले फ़ील्ड बताता है | पुष्टि करें कि क्या और कब खरीदा गया |
| revocationDate | वह समय जब App Store ने transaction रिफंड किया या उसे Family Sharing से हटाया | अगर मौजूद है, तो Apple ग्राहक को पैसे लौटा चुका है |
| revocationReason | 0: अन्य कारणों से रिफंड, जैसे गलती से हुई खरीद। 1: आपके ऐप के भीतर किसी वास्तविक या महसूस की गई समस्या की वजह से रिफंड | 1 एक प्रोडक्ट संकेत है, सिर्फ़ सपोर्ट टिकट नहीं |
| appAccountToken | खरीद के समय आपके द्वारा सेट किया गया UUID, अगर आपने सेट किया हो | order को अपने user रिकॉर्ड से मिलाएँ |
| price और currency | Apple कहता है कि इन्हें राजस्व मिलान के लिए इस्तेमाल न करें | पैसों के लिए App Store Connect रिपोर्ट इस्तेमाल करें |
| Sandbox | यह endpoint sandbox वातावरण में उपलब्ध नहीं है | सिर्फ़ production order ID पर टेस्ट करें |
| Rate limit | प्रति ऐप 10 अनुरोध प्रति सेकंड, घंटे के आधार पर लागू। ज़्यादा होने पर Retry-After header के साथ HTTP 429 मिलता है | सपोर्ट डेस्क के लिए काफ़ी, बड़े पैमाने की स्कैनिंग के लिए नहीं |
क्या यह मेरे ऐप की मान्य रसीद है?
OrderLookupStatus सबसे पहले इसी सवाल का जवाब देता है। 1 का मतलब है कि order ID आपके ऐप की किसी खरीद से नहीं जुड़ा। आम वजहें हैं टाइपो, किसी दूसरे ऐप की रसीद, या ऐसी रसीद जो App Store की है ही नहीं। 1 मिलने पर कुछ भी रिफंड, क्रेडिट या बहाल न करें। ग्राहक से रसीद दोबारा जाँचने को कहें।
क्या Apple इस खरीद को पहले ही रिफंड कर चुका है?
हर डिकोड किए गए transaction पर revocationDate जाँचें। अगर यह सेट है, तो Apple उस खरीद को पहले ही रिफंड कर चुका है या उसे Family Sharing से हटा चुका है, और ग्राहक के पास उसका पैसा है। आपके App Store Server Notifications ने उसी transaction के लिए REFUND भेजा होना चाहिए, इसलिए यह पुष्टि करने का भी सस्ता तरीका है कि आपके सर्वर ने सच में एक्सेस हटाया।

App Store पर order ID क्या नहीं कर सकता
यह रिफंड जारी नहीं कर सकता। डेवलपर के पास App Store रिफंड का कोई बटन नहीं है। Apple रिफंड तय करता है, और उसका सपोर्ट लेख ग्राहकों को reportaproblem.apple.com पर भेजता है, जहाँ वे "I'd like to" चुनते हैं, फिर "Request a refund", एक कारण चुनते हैं और आइटम चुनते हैं। Apple यह भी कहता है कि pending चार्ज तब तक रिफंड नहीं हो सकता जब तक ग्राहक के पास ईमेल रसीद न हो।
आपकी राय का एकमात्र मौका Apple का CONSUMPTION_REQUEST है। जब कोई ग्राहक Apple से रिफंड माँगता है, Apple यह notification भेज सकता है, और आपके पास Send Consumption Information से जवाब देने के लिए 12 घंटे होते हैं। order ID lookup एक सपोर्ट टूल है। यह वह खिड़की न खोलता है, न बढ़ाता है।
lookup छोड़ने पर एक रिफंड ईमेल की कीमत क्या होती है
order ID के बिना सपोर्ट वह जगह है जहाँ पैसा चुपचाप रिसता है। तीन पैटर्न बार-बार दिखते हैं।
- रिफंड के ऊपर गुडविल। Apple खरीद रिफंड करता है, ग्राहक आपको भी लिखता है, और सपोर्ट मुफ़्त क्रेडिट या एक अतिरिक्त महीना दे देता है। आपका दिया हर क्रेडिट उस compute, API calls और storage पर चलता है जिसका भुगतान आप करते हैं, एक ऐसे अकाउंट पर जिसे पहले ही पैसा लौटाया जा चुका है।
- एक्सेस जो कभी हटा ही नहीं। अगर आपका REFUND हैंडलिंग विफल रहा, तो रिफंड पाया ग्राहक इस्तेमाल करता रहता है। ऐसा lookup जो revocationDate दिखाए जबकि आपका डेटाबेस अब भी active कहे, कीमत के टैग वाली बग रिपोर्ट है।
- गलत अकाउंट, गलत समाधान। फ़ॉरवर्ड किए गए ईमेल के पीछे वाले अकाउंट को बहाल करना या क्रेडिट देना, जबकि order ID किसी और का है, उस व्यक्ति को पेड सेवा दे देता है जिसने उसे कभी खरीदा ही नहीं।
इनमें से किसी को भी नुकसान पहुँचाने के लिए किसी विवाद या समय सीमा की ज़रूरत नहीं। ये बस बिना तथ्यों के दिए गए सपोर्ट जवाब हैं। हर टिकट पर एक API कॉल अंदाज़े को खत्म कर देती है।
क्या revocationReason 1 का मतलब है कि मैंने कुछ गलत किया?
ज़रूरी नहीं। Apple कहता है कि कारण 1 का मतलब है कि उसने आपके ऐप के भीतर किसी वास्तविक या महसूस की गई समस्या की वजह से खरीद रिफंड की। यहाँ महसूस की गई शब्द बहुत कुछ कहता है। लेकिन एक ही प्रोडक्ट पर, एक ही रिलीज़ के बाद, कारण 1 वाले रिफंड का समूह वह सबसे साफ़ प्रोडक्ट फ़ीडबैक है जो Apple आपको देता है। उन्हें गिनिए।
Google Play का order ID कैसे अलग है
Google Play उल्टे तरीके से काम करता है। Google के billing दस्तावेज़ कहते हैं कि उपयोगकर्ताओं को हर one-time प्रोडक्ट खरीद, शुरुआती सब्सक्रिप्शन खरीद और हर recurring renewal के लिए एक अनोखे order ID वाला ईमेल मिलता है, और आप Play Console में रिफंड मैनेज करने के लिए order ID इस्तेमाल कर सकते हैं। आप Order management में order ID या उपयोगकर्ता के पूरे ईमेल पते से खोजते हैं, फिर खुद रिफंड करते हैं।
| सवाल | App Store order ID | Google Play order ID |
|---|---|---|
| ग्राहक इसे कहाँ पाता है | ईमेल रसीद और App Store खरीद इतिहास | हर खरीद और हर renewal की ईमेल रसीद |
| आप इसे कैसे खोजते हैं | App Store Server API में Look Up Order ID | Play Console में Order management खोजें |
| क्या आप इससे रिफंड कर सकते हैं | नहीं। Apple तय करता है | हाँ। पूरे रिफंड, और इन-ऐप खरीद व सब्सक्रिप्शन पर आंशिक रिफंड |
| रिफंड के लिए सबूत की खिड़की | CONSUMPTION_REQUEST, 12 घंटे, Apple तय करता है | orders.reviewrefund के ज़रिए chargeback समीक्षा, 24 घंटे |
| क्या रिफंड वापस लिया जा सकता है | आपके द्वारा नहीं | नहीं। Play Console कहता है कि रिफंड वापस नहीं लिया जा सकता |
Google Play पर order ID और ज़्यादा मायने रखता है क्योंकि बटन आप दबाते हैं। Play Console कहता है कि सबसे हाल के सब्सक्रिप्शन order को रिफंड करने से सब्सक्रिप्शन तुरंत हट जाता है और आगे के renewals रद्द हो जाते हैं, जबकि किसी पुराने order को रिफंड करना सिर्फ़ रिफंड है और सब्सक्रिप्शन सक्रिय रहता है। आंशिक रिफंड सिर्फ़ मार्च 2018 के बाद दिए गए orders के लिए समर्थित हैं, और आप किसी paid ऐप को आंशिक रूप से रिफंड नहीं कर सकते।
order ID को अपने रिफंड सपोर्ट फ़्लो में सबसे आगे रखें
- अपने सपोर्ट फ़ॉर्म में order ID माँगें, एक लाइन के संकेत के साथ: यह Apple या Google Play की रसीद ईमेल में है।
- iOS पर Look Up Order ID कॉल करें, हर transaction डिकोड करें, और सपोर्ट को एक ही स्क्रीन पर productId, purchaseDate, revocationDate और revocationReason दिखाएँ।
- अगर OrderLookupStatus 1 है, तो रुकें और सही रसीद माँगें। कुछ भी न दें।
- अगर revocationDate सेट है, तो पुष्टि करें कि आपके सर्वर पर एक्सेस पहले ही हट चुका है, फिर टिकट बंद करें। ऊपर से कोई गुडविल नहीं।
- अगर यह सेट नहीं है और ग्राहक अपना पैसा वापस चाहता है, तो उन्हें reportaproblem.apple.com पर भेजें और 12 घंटे की खिड़की के लिए अपना CONSUMPTION_REQUEST handler तैयार रखें। RefundHalt उस अनुरोध का जवाब उस consumption data के साथ देता है जो Apple माँगता है।
- Android पर रिफंड करने से पहले Play Console में सटीक order ढूँढें, और सोच-समझकर सिर्फ़ रिफंड और रिफंड व एक्सेस हटाने के बीच चुनें।
अक्सर पूछे जाने वाले सवाल
- एक डेवलपर के रूप में मैं App Store order ID कैसे खोजूँ?
- App Store Server API का endpoint Look Up Order ID, GET https://api.storekit.apple.com/inApps/v1/lookup/{orderId}, अपने signed JWT के साथ कॉल करें। मान्य order ID पर OrderLookupStatus 0 और एक या अधिक signed transactions मिलते हैं, जिन्हें डिकोड करके आप productId, purchaseDate और रिफंड का कोई भी विवरण पढ़ते हैं। यह endpoint sandbox में उपलब्ध नहीं है।
- ग्राहक अपना App Store order ID कहाँ ढूँढे?
- उस ईमेल रसीद में जो Apple हर इन-ऐप खरीदारी पर भेजता है, और reportaproblem.apple.com पर या App Store ऐप में Apps & Purchase History के अंदर अपने App Store खरीद इतिहास में। खरीद इतिहास डिफ़ॉल्ट रूप से पिछले 90 दिन दिखाता है, पुरानी खरीदारी के लिए फ़िल्टर के साथ।
- क्या मैं order ID से App Store खरीद रिफंड कर सकता हूँ?
- नहीं। डेवलपर App Store रिफंड जारी नहीं कर सकते। Apple उन्हें तब तय करता है जब ग्राहक reportaproblem.apple.com पर अनुरोध करता है। आपका योगदान Send Consumption Information के साथ 12 घंटे के भीतर Apple के CONSUMPTION_REQUEST का जवाब देना है।
- मैं कैसे जानूँ कि Apple किसी खरीद को पहले ही रिफंड कर चुका है?
- order ID खोजें और हर डिकोड किए गए transaction में revocationDate जाँचें। अगर यह सेट है, तो Apple ने खरीद रिफंड की या उसे Family Sharing से हटाया। revocationReason 0 का मतलब अन्य कारण हैं, जैसे गलती से हुई खरीद, और 1 का मतलब आपके ऐप के भीतर कोई वास्तविक या महसूस की गई समस्या है।
- OrderLookupStatus 1 का क्या मतलब है?
- इसका मतलब है कि order ID आपके ऐप के लिए मान्य नहीं है, और जवाब में कोई signedTransactions array नहीं है। आमतौर पर ग्राहक ने किसी दूसरे ऐप की रसीद भेजी, ID गलत टाइप किया, या ऐसी रसीद भेजी जो App Store की नहीं है। कुछ भी देने से पहले सही रसीद माँगें।
स्रोत और आगे की जानकारी
- Apple Developer Documentation: Look Up Order ID
- Apple Developer Documentation: orderId
- Apple Developer Documentation: revocationReason
- Apple Developer Documentation: Identifying rate limits
- Apple Support: See your purchase history for the App Store, iTunes Store, and more
- Apple Support: Request a refund for apps or content that you bought from Apple
- Play Console Help: Refund orders and subscriptions
- Android Developers: Integrate the Google Play Billing Library into your app
RefundHalt
App Store और Google Play के लिए refund ऑटोपायलट
आगे पढ़ें
iOS वेब चेकआउट के रिफ़ंड अब Apple के बजाय आपके पास आते हैं, और बैंक विवाद भी
अमेरिका के iPhone ऐप अब खरीदारों को वेब चेकआउट पर भेज सकते हैं। Apple कहता है कि वह इन बिक्रियों के रिफ़ंड में मदद नहीं कर सकता, इसलिए रिफ़ंड डेस्क, चार्जबैक और $15 की विवाद फ़ीस अब आपकी ज़िम्मेदारी है। जानिए क्या बदलता है, इसकी लागत क्या है, और विवाद कैसे कम रखें।
पेड ऐप का रिफ़ंड आपके सर्वर तक कभी नहीं पहुँचता, इसलिए ऐप को खुद उसे पकड़ना होगा
पहले से भुगतान वाले ऐप्स के रिफ़ंड उन सभी नोटिफ़िकेशन को छोड़ देते हैं जिन्हें आपका सर्वर सुनता है। Google खरीदारों को दो घंटे में रिटर्न की सुविधा देता है और ऐप अनइंस्टॉल कर देता है, Apple आपके एग्रीमेंट के तहत 90 दिनों के भीतर रिफ़ंड कर सकता है, और दोनों में से कोई भी सबूत नहीं माँगता। यहाँ जानिए कि हर स्टोर आपको क्या बताता है, इसकी कीमत क्या है, और ऐप में इसकी जाँच कैसे करें।