تقارير الاسترداد لديك لا تتطابق أبدًا بين Apple و Google وخادمك، إليك كيفية تسويتها
تعرض Apple عمليات الاسترداد في تقريرين، وتعرضها Google في تقريرين آخرين، ويرى خادمك تقريرًا رابعًا. لا يتطابق أي من الأعداد، والفجوات مقصودة بالتصميم. إليك سبب نسب كل سطح لعمليات الاسترداد بشكل مختلف، وكيفية تسوية تقارير الاسترداد مقابل سجلاتك الخاصة حسب المعاملة.

أهم الخلاصات
- تقسم Apple إعداد تقارير الاسترداد بين أداتين لا تتفقان أبدًا بحكم التصميم. تقدّر Sales and Trends عمليات الاسترداد بسرعة بعملة USD، بينما تسوّيها Payments and Financial Reports لاحقًا وفق التقويم المالي لـ Apple. إشعار REFUND من خادمك هو عرض ثالث، في الوقت الفعلي، للحدث نفسه.
- في Summary Sales Report من Apple يكون الاسترداد سطرًا خاصًا به بقيمة Units سالبة و Customer Price سالبة، والتقرير ليس صافيًا من عمليات الاسترداد. إذا جمعت عمودًا بالنظر فستحسب خطأً، لأن صفوف الاسترداد تجلس بجانب صفوف البيع بدلًا من أن تلغيها.
- تعمل تقارير Apple المالية على تقويم مالي 4-4-5، وليس على أشهر التقويم، ويتوفر تقرير أي شهر مالي بحلول أول جمعة من الشهر المالي التالي. أي إجمالي استرداد تقارنه بشهر تقويمي عادي سيكون خاطئًا قبل أن تبدأ.
- تفصل Google Play عمليات الاسترداد بالطريقة نفسها. يسرد earnings report كلًا من Charge refund و Google fee refund كنوعي معاملة خاصين بهما، كل منهما موسوم بـ Full أو Partial، بينما estimated sales report هو تحليلات منخفضة الكمون تقول Google إنها ليست للمحاسبة.
- يُنسب الاسترداد إلى تاريخ تسويته، وليس تاريخ البيع الأصلي، لذا فإن استرداد عملية شراء في مارس يظهر في أرقام أبريل لديك على كلا المتجرين. سوِّ عمليات الاسترداد حسب transaction id، وليس أبدًا بمحاذاة الإجماليات الشهرية.
- يجد المطورون بشكل روتيني إشعارات REFUND أكثر من صفوف الاسترداد في Summary Sales Report للنافذة الزمنية نفسها، لأن الاثنين يحسبان لحظتين مختلفتين. يُعد endpoint المسمى Get Refund History من App Store Server API لدى Apple مصدر الحقيقة للتسوية، transaction id واحد في كل مرة.
- سطحان فقط من هذه الأسطح مبنيان للمحاسبة: تقرير Apple المالي و earnings report من Google. سوِّ المال مقابلهما، وسوِّ الوصول مقابل إشعارات خادمك، ولا تطلب أبدًا من رقم أن يقوم بعمل الآخر.
استخرج عدد عمليات الاسترداد من App Store Connect، ثم استخرجه من خادمك، ولن يتطابق الرقمان. استخرج رقمًا ثالثًا من تقريرك المالي ولن يتطابق مع أي منهما. هذا ليس خطأً في نظام أي أحد. تُبلغ كل من Apple و Google عن عمليات الاسترداد عبر أكثر من سطح واحد، وكل سطح يحسب لحظة مختلفة في حياة الاسترداد، ويرى خادمك سطحًا رابعًا. إذا سبق أن حاولت تسوية تقارير الاسترداد واستسلمت لأن الإجماليات تنجرف بعيدًا، فإليك سبب انجرافها، وأي رقم تثق به لأي مهمة، وكيف تصفّها حسب المعاملة بدلًا من الشهر.
لماذا يظهر استرداد واحد كثلاثة أرقام مختلفة
يمر استرداد واحد عبر عدة أنظمة قبل أن يُسوّى، وكل نظام يدوّنه في لحظة مختلفة. يسمع خادمك عنه أولًا، كحدث. ثم يقدّره تقرير تحليلات سريع تاليًا. ويسجله تقرير المحاسبة أخيرًا، بمجرد أن ينتقل المال فعليًا. الاسترداد نفسه، ثلاث طوابع زمنية، ثلاثة إجماليات. الخطأ هو معاملة أي اثنين منها كما لو كان يجب أن يتساويا في اليوم نفسه.
تمنحك Apple عائلتي تقارير، إضافة إلى webhook الخاص بك
تُبلغ Apple عن عمليات الاسترداد في مكانين ليسا الأداة نفسها وليسا مقصودين للتطابق في يوم معين. Sales and Trends هو العرض السريع المقدَّر: تصل التقارير اليومية في اليوم التالي، والتقارير الأسبوعية أيام الاثنين، والتقارير الشهرية بعد نحو خمسة أيام من انتهاء الشهر، عمومًا بحلول 8 a.m. Pacific. يقدّر المبيعات والعائدات بعملة USD باستخدام متوسط متحرك لأسعار صرف الشهر السابق، ما يجعله جيدًا لرصد اتجاه وخاطئًا لتسوية دفعة. Payments and Financial Reports هو العرض المسوّى: يُنشأ مرة في الشهر على التقويم المالي لـ Apple، ويتوفر بحلول أول جمعة من الشهر المالي الحالي عن الشهر المالي السابق، ويُنشأ فقط إذا كانت هناك عمليات شراء أو استرداد في تلك الفترة. يستخدم سعر الصرف النهائي المطبق على دفعتك. ذلك التقرير هو سجل المحاسبة. إلى جانب كليهما، يتلقى خادمك App Store Server Notification REFUND في اللحظة التي تمنح فيها Apple الاسترداد، مرتبطًا بـ transaction id واحد.
تنقسم Google بالطريقة نفسها
تعكس Google Play الانقسام. earnings report هو سجل المحاسبة، يُنشأ شهريًا ويتوفر عادةً بحلول اليوم الخامس من الشهر التالي، ويسرد عمليات الاسترداد كأنواع معاملات خاصة بها: Charge refund للمال المعاد إلى المشتري و Google fee refund لرسوم الخدمة التي تعيدها Google، كل منها موسوم بـ Full أو Partial. estimated sales report هو عرض التحليلات منخفض الكمون الذي يوضح ما دفعه المشترون قبل الضرائب والرسوم، وتقول Google صراحةً إنه مناسب للتحليلات وغير موصى به للمحاسبة. من جهة الخادم تحصل على Real-time Developer Notification في الوقت الفعلي ويمكنك قراءة استرداد من Voided Purchases API.
كيف تعرض Apple استردادًا داخل التقرير، وفخ السطر السالب
افتح Summary Sales Report ولن يطرح الاسترداد نفسه بهدوء من عملية بيع. يظهر كصف خاص به. تكون Units و Customer Price في ذلك الصف سالبة، وهذا كيف تكتشف الاسترداد أصلًا، ورقم Developer Proceeds لا يتصرف بالطريقة التي يتصرف بها السعر. التقرير ليس صافيًا من عمليات الاسترداد بطبيعته. يسرد صفوف الاسترداد بجانب صفوف البيع، وتقسيمها هو مهمتك. اجمع عمود Units بالنظر وستحسب مرتين أو تفوت عمليات الاسترداد تمامًا، لأن صف استرداد بقيمة ناقص واحد يجلس في العمود نفسه مع مبيعاتك الموجبة.
القاعدة العملية بسيطة: ابحث عن عمليات الاسترداد عبر Units السالبة، واجمع تلك الصفوف بمفردها، ولا تفترض أبدًا أن التقرير قد صفّاها لك مسبقًا. عدّ featured snippet لعمليات استردادك هو عدد الصفوف ذات Unit السالبة، وليس المجموع الحسابي لعمود.
| Apple surface | لماذا هو مخصص | متى يُحدَّث | كيف يظهر الاسترداد |
|---|---|---|---|
| Sales and Trends | تقدير سريع للاتجاه، وليس محاسبة | يوميًا في اليوم التالي، شهريًا بعد نحو 5 أيام من نهاية الشهر | وحدات سالبة في الاتجاه، مقدّرة بعملة USD |
| Summary Sales Report | التفصيل القابل للتنزيل وراء Sales and Trends | الوتيرة نفسها لـ Sales and Trends | صف خاص به، Units سالبة و Customer Price سالبة |
| Payments and Financial Reports | سجل المحاسبة والدفع | شهريًا على التقويم المالي لـ Apple، بحلول أول جمعة | خصم مسوّى من عائدات ذلك الشهر المالي |
| REFUND server notification | التحكم في الوصول في الوقت الفعلي | اللحظة التي تمنح فيها Apple الاسترداد | حدث واحد، transaction id واحد |
التقويم المالي هو سبب عدم تطابق إجمالياتك الشهرية أبدًا
إليك السبب الأكبر الوحيد وراء رفض جدول بيانات دقيق أن يتوازن. لا تعمل تقارير Apple المالية على أشهر التقويم. تعمل على تقويم مالي 4-4-5، حيث معظم الأشهر المالية أربعة أسابيع وكل ثالث شهر خمسة أسابيع. المطور الذي يقارن Financial Report بنافذة عادية من يناير إلى يناير يقارن مدّتين مختلفتين من الأيام، لذا لا يمكن أن تتطابق إجماليات الاسترداد حتى لو كان كل رقم أساسي صحيحًا. شاهد مطورون على منتديات Apple نفسها أرقام Sales وأرقام Financial Report تتباعد بآلاف الدولارات لهذا السبب بالضبط، مع اتساع الفجوة كل شهر يتركونها تتراكم.
earnings report من Google شهري، لكنه يحمل توقيته الخاص ومنطقته الزمنية الخاصة، وليس أي منهما ساعة UTC لخادمك. الفخ الأعمق مشترك بين المتجرين: يُنسب الاسترداد إلى تاريخ تسويته، وليس تاريخ البيع الأصلي. استرد عملية شراء في مارس في أوائل أبريل وستقلل من أرقام أبريل لديك، وليس أرقام مارس. صفّ شهرين حسب تسمياتهما وسيبدو أن الاسترداد اختفى من أحدهما وتجسّد في الآخر.

كم يكلّف الاسترداد، وفي أي تقرير تقرؤه
التسوية في الحقيقة سؤال محاسبي، لذا اتبع المال. عند الاسترداد يعيد المتجر عمولته الخاصة، ما يعني أن المبلغ الذي يغادر حسابك فعليًا هو حصتك من البيع، وليس السعر الكامل الذي يراه العميل معادًا. على Google Play تكون تلك الإعادة سطرًا مرئيًا: نوع المعاملة Google fee refund في earnings report لديك هو رسوم الخدمة العائدة إليك، جالسًا بجانب Charge refund الذي ذهب إلى المشتري. على App Store، تخصم Apple عائداتك بعد العمولة وتعيد عمولتها في الحركة نفسها، لذا يعرض التقرير المالي الخصم صافيًا من حصة Apple.
توقيت التدفق النقدي هو حيث يُفاجأ المطورون. على Google Play، إذا استردت طلبًا قبل أن تدفع لك Google مقابله، فأنت ببساطة لا تتلقى ذلك المبلغ أبدًا. إذا استردت بعد الدفعة، تخصمه Google من دفعة مستقبلية. وإذا دفعت موجة من عمليات الاسترداد رصيدك إلى السالب وبقي سالبًا لمدة 48 ساعة على الأقل، فستخصم Google من الحساب البنكي الذي يتلقى دفعاتك عادةً قيمة العجز. الـ chargeback هو النسخة الأحدّ من الحدث نفسه: على Google Play، للطلبات الموضوعة في أو بعد August 3, 2026، ينقل الـ chargeback سعر الشراء بالإضافة إلى رسوم البنك إلى المطور، ويظهر في تقرير شهر لاحق عن الشهر الذي حدث فيه البيع.
| عند الاسترداد | App Store | Google Play |
|---|---|---|
| ما يغادر حسابك | عائداتك بعد العمولة | سعر الشراء ناقص رسوم خدمة Play |
| ما يعيده المتجر | عمولة Apple | رسوم الخدمة، كسطر Google fee refund |
| أي تقرير تسوّي مقابله | Payments and Financial Reports | Earnings report |
| متى يُسوّى | الشهر المالي الذي عُولج فيه، بحلول أول جمعة بعده | يُخصم من دفعة تلك الفترة أو التالية |
| التواء الـ chargeback | تمتص Apple آلية نزاع البطاقة | من Aug 3 2026، ينتقل السعر إضافة إلى رسوم البنك إليك |
كيف تسوّي تقارير الاسترداد لديك، خطوة بخطوة
تصبح المهمة بسيطة بمجرد أن تتوقف عن محاولة جعل كل رقم متساويًا وتخصص بدلًا من ذلك كل رقم للسؤال الذي يجيب عنه. هناك سؤالان فقط: كم من المال انتقل، ومن لا يزال لديه الوصول.
- قرر السؤال قبل أن تفتح تقريرًا. للمال، يوجد الجواب في تقرير Apple المالي و earnings report من Google، لا غير. للوصول، يوجد الجواب في إشعارات خادمك. لا تسوِّ أحدهما مقابل الآخر أبدًا.
- اختر transaction id كمفتاح ربط عبر الأسطح الأربعة كلها. إنه الحقل الوحيد الذي يتشاركه البيع واستراده والتقارير و webhook الخاص بك جميعًا.
- بالنسبة إلى Apple، عندما يختلف Summary Sales Report مع webhook الخاص بك، استدعِ endpoint المسمى Get Refund History من App Store Server API على
/inApps/v2/refund/lookup/{transactionId}. يعيد المعاملات المستردة الموقّعة لعميل، مع revocationDate و revocationReason، transaction id واحد في كل مرة، ويتنقل عبر صفحات تاريخهم. ذلك الـ endpoint هو الفيصل. - بالنسبة إلى Google، قارن أسطر Charge refund في earnings report بما يبلّغ عنه Voided Purchases API للطلبات نفسها، وتذكّر أن الاسترداد الجزئي موسوم بـ Partial ولن يصفّر الرسم الأصلي.
- تحاذَ مع ساعة التقرير، وليس ساعتك. ساعة Apple هي شهر مالي بتوقيت Pacific. لـ earnings report من Google شهرها ومنطقتها الزمنية الخاصان. سجلاتك على الأرجح بتوقيت UTC. حوّل إلى تقويم التقرير قبل أن تقارن، وإلا فإن حدود اليوم وحدها ستخلق حالات عدم تطابق وهمية.
- توقّع أن يتحرك التقدير. Sales and Trends تقدير وسيستمر في التحرك كلما تسوّت المعاملات. سوِّ مقابل التقرير المالي، وليس أبدًا مقابل التقدير، وليس أبدًا مقابل لقطة الأمس من التقدير.
عندما يعرض خادمك عمليات استرداد أكثر من التقرير
الذعر الأكثر شيوعًا هو إيجاد إشعارات REFUND على خادمك أكثر من صفوف الاسترداد في تقرير المبيعات للنافذة الزمنية نفسها. عادةً ليس مالًا مفقودًا. يحسب السطحان لحظتين مختلفتين، وقد يسبق الإشعار صف التقرير بأيام، وقد ينتج استرداد جزئي أو طلب معاد تقديمه أكثر من حدث واحد. أبلغ المطورون عن هذا الشكل بالضبط، آلاف من إشعارات REFUND مقابل عدد أصغر من الصفوف ذات Unit السالبة للشهر نفسه. حلّها بالطريقة نفسها في كل مرة: خذ معرّفات transaction id التي رآها خادمك، مرّرها عبر Get Refund History، ودع سجل Apple الخاص يحسم أيها استُرد فعلًا وبكم.
النسخة القصيرة
لا يمكنك جعل تقدير Apple وتقرير Apple المالي و earnings report من Google و webhook الخاص بك تعرض جميعها إجمالي الاسترداد نفسه في اليوم نفسه، وعليك أن تتوقف عن المحاولة. اقرأ كل واحد لما هو مبني ليخبرك به. ثق بالتقرير المالي و earnings report للمال، وثق بإشعارات خادمك للوصول، وعندما يتنازع سطحان، اربطهما على transaction id ودع بحث Get Refund History أو Voided Purchases يحسم الأمر. عمليات الاسترداد المسوّاة ليست إجماليات مطابقة. إنها معاملات مطابقة.
الأسئلة الشائعة
- لماذا لا تتطابق مبيعات App Store وتقريري المالي؟
- تقيسان أشياء مختلفة على ساعات مختلفة. Sales and Trends تقدير سريع بعملة USD يستخدم متوسط سعر صرف متحرك، بينما Payments and Financial Reports هو سجل المحاسبة المسوّى على التقويم المالي 4-4-5 لـ Apple، باستخدام سعر الصرف النهائي. لأن الأشهر المالية ليست أشهر تقويم ولأن عمليات الاسترداد تُسوّى لاحقًا عن البيع، يتباعد الإجماليان بحكم التصميم. سوِّ مقابل التقرير المالي لأي شيء يخص المال.
- كيف تُعرض عمليات الاسترداد في App Store Summary Sales Report؟
- يظهر الاسترداد كصف خاص به بقيمة Units سالبة و Customer Price سالبة. التقرير ليس صافيًا من عمليات الاسترداد، لذا تجلس صفوف الاسترداد بجانب صفوف البيع بدلًا من إلغائها. حدد عمليات الاسترداد عبر Units السالبة واجمع تلك الصفوف على حدة، لأن جمع العمود بالنظر سيحسب عمليات استردادك خطأً.
- متى تظهر عمليات الاسترداد في earnings report من Google Play؟
- يُنشأ earnings report شهريًا ويتوفر عادةً بحلول اليوم الخامس من الشهر التالي. يظهر الاسترداد كنوعي معاملة، Charge refund للمال المعاد إلى المشتري و Google fee refund لرسوم الخدمة التي تعيدها Google إليك، كل منها موسوم بـ Full أو Partial. إذا استردت قبل أن تدفع لك Google، فأنت لا تتلقى ذلك المبلغ أبدًا؛ وإذا بعد ذلك، يُخصم من دفعة مستقبلية.
- لماذا يعرض خادمي إشعارات REFUND أكثر من تقرير مبيعاتي؟
- لأن الاثنين يحسبان لحظتين مختلفتين. يسمع خادمك حدث الاسترداد في الوقت الفعلي، بينما يسجل تقرير المبيعات الصف المسوّى لاحقًا، وقد تولّد عمليات الاسترداد الجزئية أو المعاد تقديمها أكثر من إشعار واحد. لحسم الفرق، خذ معرّفات transaction id التي رآها خادمك ومرّرها عبر endpoint المسمى Get Refund History من App Store Server API، الذي يعيد سجل Apple الخاص عمّا استُرد فعلًا.
- أي رقم استرداد ينبغي أن أستخدمه للمحاسبة؟
- Payments and Financial Reports من Apple و earnings report من Google Play. تلك هي السجلات المسوّاة بدرجة محاسبية. Sales and Trends من Apple و estimated sales report من Google تحليلات سريعة يخبرك المتجران بعدم استخدامها للمحاسبة، وإشعارات خادمك للتحكم في الوصول، وليست لتسجيل الإيرادات.
- هل يظهر الاسترداد في الشهر نفسه للبيع الأصلي؟
- عادةً لا. يُنسب الاسترداد إلى تاريخ تسويته، وليس تاريخ الشراء الأصلي، على كلا المتجرين. بيع في مارس مسترد في أبريل يقلل من إجماليات أبريل لديك، لذا فإن مطابقة شهرين حسب تسمياتهما ستجعل الاسترداد يبدو وكأنه اختفى من شهر وظهر في آخر. طابق حسب transaction id بدلًا من ذلك.
المصادر وقراءات إضافية
- Apple: Differences between Sales and Trends and Financial Reports
- Apple: Summary Sales Report reference (refunds as negative units)
- Apple: Download financial reports (fiscal calendar, first Friday)
- Apple: Get Refund History (App Store Server API)
- Google Play Help: Understand your earnings report
- Google Play Help: Manage your app's orders and issue refunds
- Apple Developer Forums: Reconciling finance reports with App Store service state
RefundHalt
الطيار الآلي للاستردادات في App Store وGoogle Play
تابع القراءة
Google Play يتيح لك إصدار استرداد جزئي بنفسك، بينما App Store يترك كل استرداد لشركة Apple
على Google Play يمكنك استرداد جزء من طلب من خلال Console، بنسبة مئوية أو بمبلغ، وتقاسم الخسارة مع رسوم Google. على App Store لا يمكنك إصدار أي استرداد على الإطلاق. إليك كيف يعمل الاسترداد الجزئي في كل متجر، وما تكلفته عليك.
معدل استرداد صحي للتطبيق يتراوح بين 2 و5 بالمئة، وإليك أين تجد معدلك وما تكلفته الحقيقية
تسترد معظم تطبيقات الجوال ما بين 2 و5 بالمئة من المعاملات المدفوعة، لكن Apple وGoogle يحتفظان بالرقم في لوحتي تحكم مختلفتين. إليك أين تجد معدل استرداد تطبيقك، وما يُعد طبيعياً حسب الخطة والفئة، وما تكلفة كل استرداد فعلياً بعد الرسوم.