# החזר כספי ב-App Store: מה המפתח רואה

> ב-App Store רק Apple מחליטה על החזר כספי. המפתח מקבל CONSUMPTION_REQUEST, יכול לענות תוך 12 שעות, ואז מגלה את ההחלטה דרך REFUND.

עמוד מקורי: [החזר כספי ב-App Store: מה המפתח רואה](https://devoria.fr/he/blog/app-store-refund-what-developer-sees)
כותב: [Mehdi Azizi](https://devoria.fr/he/mehdi-azizi)
פרסום: 2026-11-04
עדכון תוכן אחרון: 2026-11-04


ב-App Store, **מי שמאשרת או דוחה החזר כספי היא Apple, אף פעם לא המפתח.** הלקוח מגיש את הבקשה באתר של Apple או מתוך האפליקציה שלך. אם חיברת את התראות השרת של Apple, תקבל התראת `CONSUMPTION_REQUEST` ברגע הבקשה, ואחר כך `REFUND` או `REFUND_DECLINED` כשההחלטה מתקבלת. בין לבין יש לך 12 שעות לשלוח נתוני צריכה ואת ההעדפה שלך, בתנאי שהלקוח הסכים לזה.

החזר שאושר מוציא את הרכישה מהזכאויות הפעילות של הלקוח ומופיע במינוס בדוחות המכירות שלך. המדריך הזה מפרט כל שלב, מה אפשר לשלוח ל-Apple, ומה מותר לך לעשות נגד בקשות לא הוגנות. הכללים לקוחים מהדפים של Apple שקראתי שוב ב-3 בנובמבר 2026. המקרה האמיתי מגיע מהתראה שחיברתי לאפליקציות שלי באוקטובר.

## מי מחליט על החזר כספי ב-App Store?

Apple, ורק Apple. [דף התמיכה של Apple](https://support.apple.com/en-us/118223) מתאר את המסלול של הלקוח: הוא נכנס ל-reportaproblem.apple.com, בוחר "Request a refund", מציין סיבה ואז את הרכישה הרלוונטית. Apple ממליצה לו לחכות 24 עד 48 שעות לתשובה.

הלקוח יכול גם לבקש החזר מתוך האפליקציה שלך. ל-StoreKit יש בשביל זה [גיליון בקשה](https://developer.apple.com/documentation/storekit/transaction/beginrefundrequest%28in%3A%29-9k0pj), זמין מ-iOS 15. Apple ממליצה לפתוח אותו מהגדרות החשבון או מתפריט עזרה. הוא מציג את הרכישה ורשימת סיבות, ו-Apple לוקחת עד 48 שעות להחליט.

**בשני המקרים, אין לך שום דבר לאשר.** אתה יכול רק למסור מידע והעדפה, שהם חלק מכמה קריטריונים בהחלטה של Apple.

## מה כל צד רואה, שלב אחרי שלב

| שלב         | צד הלקוח                          | צד המפתח                                      |
| ----------- | --------------------------------- | --------------------------------------------- |
| בקשה        | טופס של Apple או גיליון באפליקציה | התראת `CONSUMPTION_REQUEST`                   |
| תוך 12 שעות | המתנה                             | אפשר לשלוח נתוני צריכה                        |
| תוך 48 שעות | תשובה מ-Apple                     | התראת `REFUND` או `REFUND_DECLINED`           |
| אחרי אישור  | הכסף חוזר לאמצעי התשלום שלו       | הרכישה יוצאת מהזכאויות הפעילות, יחידות במינוס |
| אחרי ערעור  | Apple מבטלת את ההחזר              | התראת `REFUND_REVERSED`, צריך להחזיר גישה     |

App Store Connect מראה לך רק החזרים שכבר אושרו, ב-Sales and Trends. **הבקשה עצמה מגיעה רק דרך התראות השרת.** בלעדיהן, אתה מגלה את ההחזר בדיעבד.

## התראות השרת של החזר כספי

[App Store Server Notifications V2](https://developer.apple.com/documentation/appstoreservernotifications/notificationtype) שולחות חמישה סוגים שרלוונטיים כאן. אתה מקבל אותן בכתובת ה-HTTPS שהגדרת ב-App Store Connect, אחת ל-production ואחת ל-sandbox.

| התראה                 | מה היא מודיעה                              | מה אתה עושה                     |
| --------------------- | ------------------------------------------ | ------------------------------- |
| `CONSUMPTION_REQUEST` | הלקוח מבקש החזר                            | לענות תוך 12 שעות, אם יש הסכמה  |
| `REFUND`              | Apple החזירה את הכסף על העסקה              | להסיר את התוכן או הגישה שהוחזרו |
| `REFUND_DECLINED`     | Apple דחתה את הבקשה                        | כלום, הגישה ממשיכה              |
| `REFUND_REVERSED`     | Apple מבטלת החזר אחרי ערעור של הלקוח       | להחזיר את מה שהסרת              |
| `REVOKE`              | רכישה ששותפה ב-Family Sharing כבר לא זמינה | להסיר את הגישה מבן המשפחה       |

השרת שלך צריך לענות עם קוד HTTP בין 200 ל-206. לפי [הדף על תגובה להתראות](https://developer.apple.com/documentation/appstoreservernotifications/responding-to-app-store-server-notifications), אחרת Apple מנסה שוב חמש פעמים: 1, 12, 24, 48 ואז 72 שעות אחרי הניסיון הקודם. ב-sandbox היא שולחת רק פעם אחת.

## ה-Consumption API: מה אפשר להגיד ל-Apple

כשהבקשה מגיעה, אפשר לענות עם [Send Consumption Information](https://developer.apple.com/documentation/appstoreserverapi/send-consumption-information). הכלל נכנס במשפט אחד של Apple: "Respond within 12 hours of receiving the `CONSUMPTION_REQUEST` notification." גרסה 2 של ה-API חלה על כל סוגי המוצרים, כולל מינויים.

השדות של [הבקשה](https://developer.apple.com/documentation/appstoreserverapi/consumptionrequest):

| שדה                     | חובה | מה הוא אומר ל-Apple                                     |
| ----------------------- | ---- | ------------------------------------------------------- |
| `customerConsented`     | כן   | הלקוח הסכים לשיתוף הנתונים שלו                          |
| `deliveryStatus`        | כן   | הרכישה סופקה ועובדת, או למה היא לא סופקה                |
| `sampleContentProvided` | כן   | ניסיון, קטע לדוגמה או תיאור הוצעו לפני הרכישה           |
| `consumptionPercentage` | לא   | החלק שנצרך, מ-0 עד 100,000 עבור 0 עד 100%               |
| `refundPreference`      | לא   | ההעדפה שלך: `DECLINE`, `GRANT_FULL` או `GRANT_PRORATED` |

שני דיוקים חשובים. אם `deliveryStatus` הוא לא `DELIVERED`, החלק שנצרך חייב להיות אפס. ובהחזר יחסי של מינוי, אתה משמיט את החלק שנצרך: Apple מחשבת אותו.

**ההסכמה היא התנאי לכל.** Apple כותבת: "You must obtain valid consent from the customer before sharing their personal data with Apple in the Send Consumption Information API." בלי הסכמה, אתה לא עונה. Apple גם אוסרת להשתמש בחלון המעקב הפרסומי כדי לאסוף את ההסכמה הזו: "Don't use the AppTrackingTransparency prompt to obtain consent".

## אם אתה עובד עם RevenueCat

עם RevenueCat, הוא זה שמקבל את ההתראות של Apple ועונה לבקשה, עם [Refund Control](https://www.revenuecat.com/docs/customers/refund-control). אתה בוחר מדיניות אחת מתוך ארבע: להעדיף החזר מלא, להעדיף דחייה, לשלוח רק נתוני צריכה, או לא לענות.

הפעלת שיתוף הנתונים שווה לאישור שיש לך הסכמה של הלקוחות. RevenueCat אומר את זה בעצמו: "Enabling consumption data sharing confirms that you obtained consent from your Customers." הוא גם ממליץ לשמור את "Prefer no refund" לקבוצה ממוקדת, ומזהיר כשההעדפה הזו חלה על רוב הלקוחות שלך.

כדי לקבל את ההתראות גם בשרת שלך, RevenueCat מציע שדה "Apple Server Notification Forwarding URL" בהגדרות האפליקציה. הוא מתואר ב[דף שלו על ההתראות של Apple](https://www.revenuecat.com/docs/platform-resources/server-notifications/apple-server-notifications). בזה אני משתמש. ההקמה של מינוי עם RevenueCat נמצאת ב[RevenueCat ומינוי in-app ב-iOS](https://devoria.fr/he/blog/revenuecat-in-app-subscription-ios).

## ההשפעה על ההכנסות ועל המינוי

**על הגישה.** לפי [התיעוד של `currentEntitlements`](https://developer.apple.com/documentation/storekit/transaction/currententitlements), "Products that the App Store has refunded or revoked don't appear in the current entitlements". אם האפליקציה שלך בודקת זכאויות עם `currentEntitlements`, הגישה שהוחזרה נעלמת מעצמה. העסקה מכילה את התאריך והסיבה להסרה, ב-`revocationDate` וב-`revocationReason`.

**על הדוחות.** לפי [העזרה של דוח המכירות](https://developer.apple.com/help/app-store-connect/reference/reporting/summary-sales-report), החזר מופיע עם יחידות ומחיר ללקוח במינוס. במינויים, [הדף על נתוני מינויים](https://developer.apple.com/help/app-store-connect/measure-app-performance/view-subscription-data) סופר החזרים מלאים וחלקיים בין האירועים, ומוריד אותם מהיחידות היומיות.

**על המוניטין שלך.** [guideline 5.6.4](https://developer.apple.com/app-store/review/guidelines/#5.6.4) מזכירה בקשות החזר מופרזות בין הסימנים לאיכות לא מספקת. שיעור החזרים גבוה הוא לא רק הפסד כסף: Apple יכולה לקחת אותו בחשבון כשהיא שופטת אם אתה עומד בקוד ההתנהגות.

## המקרה שלי: ההתראה שחיברתי לאפליקציות שלי

ב-12 באוקטובר 2026 חיברתי התראה לאפליקציות שלי. RevenueCat מעביר את ההתראות של Apple לנתיב ב-devoria.fr. הוא מאמת את החתימה של Apple ואז שולח לי התראה, בלי סכום. רציתי לראות את הבקשה ברגע שהיא מגיעה, לא רק את התוצאה.

ב-18 באוקטובר הגיעה הבקשה האמיתית הראשונה ב-TradaZen, סימולטור המסחר שלי. מינוי שנתי, ששולם בסוף ניסיון חינם של 7 ימים. הסיבה שצוינה: רכישה לא מכוונת. שלושה לקחים:

1. **אותה בקשה יכולה להגיע כמה פעמים.** קיבלתי את אותה התראה שלוש פעמים באותו ערב. מאז, כל התראה עוברת הסרת כפילויות לפי סוג ההתראה ומזהה העסקה.
2. **ההחלטה הגיעה תוך פחות מיממה.** Apple דחתה בערך 22 שעות אחרי הבקשה. הלקוח שמר על הגישה שלו.
3. **דחייה היא לא הסוף.** אותו לקוח הגיש בקשה שוב יומיים אחר כך, על אותה עסקה.

> בקשה בגלל "רכישה לא מכוונת" בסוף ניסיון לא מנצחים בתשובה ל-Apple. מונעים אותה ב-paywall, לפני התשלום הראשון.

## להגביל בקשות לא הוגנות בלי לעבור על הכללים

**מה מותר:**

- **לענות על כל בקשה עם נתונים מדויקים**, כשהלקוח הסכים.
- **להביע העדפה ממוקדת**, למשל דחייה לרכישה שכבר נצרכה, במקום דחייה לכולם.
- **לקשר כל `REFUND` לחשבון לקוח.** [הדף של Apple על התראות החזר](https://developer.apple.com/documentation/storekit/handling-refund-notifications) ממליץ על זה כדי לזהות החזרים חוזרים.
- **להגיד בבירור מה קונים לפני הרכישה.** [guideline 3.1.2(c)](https://developer.apple.com/app-store/review/guidelines/#3.1.2) דורשת לתאר מה המשתמש מקבל תמורת המחיר, לפני שמציעים לו להירשם למינוי.

**מה אסור:**

- **לשלוח נתונים כוזבים** כדי שבקשה תידחה, או לענות בלי הסכמה.
- **לאסוף את ההסכמה דרך חלון המעקב הפרסומי**, מה ש-Apple שוללת במפורש.
- **למלכד את הרכישה.** [guideline 5.6](https://developer.apple.com/app-store/review/guidelines/#5.6) אוסרת לדחוף לקוחות לרכישות לא רצויות או לחייב על משהו שלא סופק.
- **ללחוץ על לקוח** שמבקש החזר. אותו כלל דורש כבוד בשירות הלקוחות, בלי הפחדה.

המנוף הכי טוב נשאר מוקדם יותר: paywall שאומר את המחיר, את תאריך התשלום הראשון ואיך מבטלים. הטעויות שכדאי להימנע מהן נמצאות ב[טעויות paywall](https://devoria.fr/he/blog/ios-paywall-beginner-mistakes-sales), והכללים של הניסיון ב[ניסיון חינם ב-App Store](https://devoria.fr/he/blog/introductory-offer-app-store-connect-free-trial-ios).

## לבדוק לפני production

לפי [הדף על בדיקת בקשות](https://developer.apple.com/documentation/storekit/testing-refund-requests), ה-sandbox ובדיקות StoreKit של Xcode מקבלים בקשות החזר. ב-sandbox, כל סיבה מפעילה אישור אוטומטי. כדי לדמות דחייה, בחר "Other" והקלד `DECLINE`. להחזר יחסי, הקלד `GRANT_PRORATED`. ב-sandbox, תשובת הצריכה שלך צריכה לצאת תוך חמש דקות.

## מינוי שמקבל פחות החזרים

ה-[iOS & Android Kit](https://devoria.fr/he/kits/ios) מתחיל מהקוד של האפליקציות שלי, עם onboarding, paywall ומינויים שכבר כתובים, ועובר ארבעה שלבים עד ה-App Store, בקצב שלך. ההקמה המלאה מפורטת בדף [מינוי in-app ב-iOS](https://devoria.fr/he/expertise/ios-in-app-subscription), והכללים של Apple על מינויים ב[guideline 3.1.2](https://devoria.fr/he/blog/guideline-3-1-2-app-store-subscription-rejection).

לפני שאתה משיק את ה-paywall, [עשה את האבחון החינמי שלך](https://devoria.fr/he/diagnostic): הוא אומר לך מה באמת תוקע את הפרויקט שלך ושולח לך את הצ'קליסט שלי נגד דחיות של Apple.

## שאלות נפוצות

### האם המפתח יכול לדחות החזר כספי ב-App Store?

לא. Apple מחליטה לבד. אתה יכול לשלוח נתוני צריכה והעדפה, `DECLINE` למשל, שהם חלק מכמה קריטריונים. המילה האחרונה של Apple.

### האם המפתח מקבל הודעה על בקשת החזר?

כן, אם חיבר את App Store Server Notifications V2. Apple שולחת `CONSUMPTION_REQUEST` ברגע הבקשה, ואחר כך `REFUND` או `REFUND_DECLINED` בהחלטה. בלי התראות, אתה רואה רק החזרים שאושרו, בדוחות שלך.

### כמה זמן לוקח ל-Apple לטפל בבקשת החזר?

Apple מודיעה ללקוח על 24 עד 48 שעות. התיעוד של StoreKit מדבר על 48 שעות לכל היותר. מצדך, יש לך 12 שעות לשלוח את נתוני הצריכה.

### מה קורה לגישה אחרי החזר?

הרכישה שהוחזרה יוצאת מהזכאויות הפעילות של הלקוח: StoreKit 2 כבר לא מחזיר אותה ב-`currentEntitlements`. אם Apple מבטלת אחר כך את ההחזר, אתה מקבל `REFUND_REVERSED` וצריך להחזיר את הגישה.

### האם צריך הסכמה של הלקוח כדי לענות ל-Apple?

כן. Apple דורשת הסכמה תקפה לפני כל שיתוף נתונים דרך ה-Consumption API. בלעדיה, אתה לא עונה להתראה. אי אפשר להשתמש בחלון המעקב הפרסומי כדי לאסוף אותה.

### האם החזרים נספרים נגד האפליקציה שלי?

הם יכולים. guideline 5.6.4 מזכירה בקשות החזר מופרזות בין הסימנים לאיכות לא מספקת, ו-Apple יכולה לקחת את זה בחשבון כשהיא שופטת עמידה בקוד ההתנהגות.


## הפרויקט שלך

[iOS & Android Kit](https://devoria.fr/he/kits/ios): תבנה אפליקציה לאייפון ולאנדרואיד עם Claude Code: קוד ההתחלה של האפליקציות שלי, כל הדרך עד החנויות וכל הקיטים. ‏349 ‏⁦₪⁩.

[אבחון: מה מפריד בינך לבין אפליקציית האייפון שלך](https://devoria.fr/he/diagnostic): 7 שאלות, 60 שניות: תדע מה באמת חוסם אותך מלפרסם את אפליקציית האייפון שלך, תקבל מסלול ב-4 שלבים ואת הקיט שמתאים לך.
