# Vrácení peněz v App Store: co vidí vývojář

> O vrácení peněz v App Store rozhoduje jen Apple. Vývojář dostane CONSUMPTION_REQUEST, může do 12 hodin odpovědět a o rozhodnutí se dozví přes REFUND.

Původní stránka: [Vrácení peněz v App Store: co vidí vývojář](https://devoria.fr/cs/blog/vraceni-penez-app-store-vyvojar)
Autor: [Mehdi Azizi](https://devoria.fr/cs/mehdi-azizi)
Publikováno: 2026-11-04
Poslední revize obsahu: 2026-11-04


V App Store **vrácení peněz schvaluje nebo zamítá Apple, nikdy vývojář.** Zákazník o něj požádá na webu Applu nebo přímo z tvé aplikace. Pokud máš zapojené serverové notifikace Applu, dostaneš v okamžiku žádosti notifikaci `CONSUMPTION_REQUEST` a po rozhodnutí `REFUND` nebo `REFUND_DECLINED`. Mezi tím máš 12 hodin na to, abys poslal data o spotřebě a svou preferenci, pokud s tím zákazník souhlasil.

Schválené vrácení peněz odebere nákup z aktivních oprávnění zákazníka a v přehledech prodejů se objeví jako záporná hodnota. Tenhle návod projde každý krok, co můžeš Applu poslat a co smíš dělat proti zneužívání. Pravidla pocházejí ze stránek Applu, které jsem znovu prošel 3. listopadu 2026. Reálný případ pochází z upozornění, které jsem si v říjnu zapojil do svých aplikací.

## Kdo rozhoduje o vrácení peněz v App Store?

Apple, a jen Apple. [Stránka podpory Applu](https://support.apple.com/en-us/118223) popisuje postup zákazníka: přihlásí se na reportaproblem.apple.com, zvolí „Request a refund“, uvede důvod a pak vybere daný nákup. Apple mu radí počkat na odpověď 24 až 48 hodin.

Zákazník může o vrácení peněz požádat i z tvé aplikace. StoreKit k tomu nabízí [list s žádostí](https://developer.apple.com/documentation/storekit/transaction/beginrefundrequest%28in%3A%29-9k0pj), dostupný od iOS 15. Apple doporučuje vyvolat ho z nastavení účtu nebo z nabídky nápovědy. Zobrazí nákup a seznam důvodů a Applu trvá rozhodnutí až 48 hodin.

**V obou případech nic neschvaluješ.** Můžeš jen dodat informace a preferenci, které patří mezi několik kritérií, podle kterých Apple rozhoduje.

## Co kdo vidí, krok za krokem

| Krok           | Strana zákazníka                       | Strana vývojáře                                    |
| -------------- | -------------------------------------- | -------------------------------------------------- |
| Žádost         | Formulář Applu nebo list v aplikaci    | Notifikace `CONSUMPTION_REQUEST`                   |
| Do 12 hodin    | Čekání                                 | Možnost poslat data o spotřebě                     |
| Do 48 hodin    | Odpověď Applu                          | Notifikace `REFUND` nebo `REFUND_DECLINED`         |
| Po schválení   | Peníze vrácené na jeho platební metodu | Nákup odebraný z aktivních oprávnění, záporné kusy |
| Po zpochybnění | Apple vrácení peněz zruší              | Notifikace `REFUND_REVERSED`, obnovit přístup      |

App Store Connect ti ukazuje jen už schválená vrácení peněz, v Sales and Trends. **Samotná žádost přichází jen přes serverové notifikace.** Bez nich se o vrácení peněz dozvíš až dodatečně.

## Serverové notifikace při vrácení peněz

[App Store Server Notifications V2](https://developer.apple.com/documentation/appstoreservernotifications/notificationtype) posílají pět typů, které jsou tu užitečné. Dostáváš je na HTTPS adresu zadanou v App Store Connect, jednu pro produkci a jednu pro sandbox.

| Notifikace            | Co oznamuje                                                 | Co uděláš                               |
| --------------------- | ----------------------------------------------------------- | --------------------------------------- |
| `CONSUMPTION_REQUEST` | Zákazník žádá o vrácení peněz                               | Odpovědět do 12 hodin, pokud je souhlas |
| `REFUND`              | Apple transakci vrátil                                      | Odebrat vrácený obsah nebo přístup      |
| `REFUND_DECLINED`     | Apple žádost zamítl                                         | Nic, přístup trvá                       |
| `REFUND_REVERSED`     | Apple ruší vrácení peněz po zpochybnění ze strany zákazníka | Obnovit to, co jsi odebral              |
| `REVOKE`              | Nákup sdílený přes Rodinné sdílení už není dostupný         | Odebrat přístup členovi rodiny          |

Tvůj server musí odpovědět HTTP kódem mezi 200 a 206. Podle [stránky o odpovídání na notifikace](https://developer.apple.com/documentation/appstoreservernotifications/responding-to-app-store-server-notifications) to jinak Apple zkusí znovu pětkrát, 1, 12, 24, 48 a pak 72 hodin po předchozím pokusu. V sandboxu posílá jen jednou.

## Consumption API: co můžeš Applu říct

Když žádost dorazí, můžeš odpovědět přes [Send Consumption Information](https://developer.apple.com/documentation/appstoreserverapi/send-consumption-information). Pravidlo shrnuje jedna věta Applu: „Respond within 12 hours of receiving the `CONSUMPTION_REQUEST` notification.“ Verze 2 API platí pro všechny typy produktů včetně předplatných.

Pole [požadavku](https://developer.apple.com/documentation/appstoreserverapi/consumptionrequest):

| Pole                    | Povinné | Co říká Applu                                                   |
| ----------------------- | ------- | --------------------------------------------------------------- |
| `customerConsented`     | Ano     | Zákazník souhlasil se sdílením svých dat                        |
| `deliveryStatus`        | Ano     | Nákup byl doručen a funguje, nebo proč nebyl                    |
| `sampleContentProvided` | Ano     | Před nákupem byla nabídnuta zkušební verze, ukázka nebo popis   |
| `consumptionPercentage` | Ne      | Spotřebovaný podíl, od 0 do 100 000 pro 0 až 100 %              |
| `refundPreference`      | Ne      | Tvoje preference: `DECLINE`, `GRANT_FULL` nebo `GRANT_PRORATED` |

Dvě upřesnění jsou důležitá. Pokud `deliveryStatus` není `DELIVERED`, spotřebovaný podíl musí být nula. A u poměrného vrácení peněz za předplatné spotřebovaný podíl vynecháš: Apple si ho spočítá sám.

**Souhlas je podmínkou všeho.** Apple píše: „You must obtain valid consent from the customer before sharing their personal data with Apple in the Send Consumption Information API.“ Bez souhlasu neodpovídáš. Apple taky zakazuje získávat tento souhlas přes okno sledování reklam: „Don't use the AppTrackingTransparency prompt to obtain consent“.

## Pokud používáš RevenueCat

S RevenueCat přijímá notifikace Applu a odpovídá na žádost právě on, přes [Refund Control](https://www.revenuecat.com/docs/customers/refund-control). Vybíráš jednu ze čtyř politik: preferovat plné vrácení peněz, preferovat zamítnutí, posílat jen data o spotřebě, nebo neodpovídat.

Zapnutím sdílení dat potvrzuješ, že máš souhlas svých zákazníků. RevenueCat to sám říká: „Enabling consumption data sharing confirms that you obtained consent from your Customers.“ Taky radí vyhradit „Prefer no refund“ pro cílenou skupinu a upozorní tě, když se tato preference týká většiny tvých zákazníků.

Pokud chceš notifikace dostávat i na vlastní server, RevenueCat nabízí v nastavení aplikace pole „Apple Server Notification Forwarding URL“. Je popsané na [jeho stránce o notifikacích Applu](https://www.revenuecat.com/docs/platform-resources/server-notifications/apple-server-notifications). Tohle používám já. Jak nastavit předplatné s RevenueCat najdeš v článku [RevenueCat a in-app předplatné na iOS](https://devoria.fr/cs/blog/revenuecat-predplatne-ios-aplikace).

## Dopad na tvoje příjmy a na předplatné

**Na přístup.** Podle [dokumentace `currentEntitlements`](https://developer.apple.com/documentation/storekit/transaction/currententitlements) platí, že „Products that the App Store has refunded or revoked don't appear in the current entitlements“. Pokud tvoje aplikace ověřuje oprávnění přes `currentEntitlements`, vrácený přístup zmizí sám. Transakce nese datum a důvod odebrání v `revocationDate` a `revocationReason`.

**Na přehledy.** Podle [nápovědy k přehledu prodejů](https://developer.apple.com/help/app-store-connect/reference/reporting/summary-sales-report) se vrácení peněz objeví se zápornými kusy a zápornou zákaznickou cenou. U předplatných [stránka o datech předplatných](https://developer.apple.com/help/app-store-connect/measure-app-performance/view-subscription-data) počítá plná i částečná vrácení peněz mezi události a odečítá je z denních kusů.

**Na tvou reputaci.** [Guideline 5.6.4](https://developer.apple.com/app-store/review/guidelines/#5.6.4) uvádí nadměrné žádosti o vrácení peněz mezi známkami nedostatečné kvality. Vysoká míra vrácení peněz není jen ztráta peněz: Apple k ní může přihlédnout, když posuzuje, jestli dodržuješ kodex chování.

## Můj případ: upozornění zapojené do mých aplikací

12. října 2026 jsem do svých aplikací zapojil upozornění. RevenueCat přeposílá notifikace Applu na routu na devoria.fr. Ta ověří podpis Applu a pak mi pošle upozornění, bez částky. Chtěl jsem vidět žádost ve chvíli, kdy přijde, ne jen výsledek.

13. října přišla první skutečná žádost na TradaZen, můj simulátor tradingu. Roční předplatné zaplacené na konci 7denní zkušební verze zdarma. Uvedený důvod: nechtěný nákup. Tři ponaučení:

14. **Stejná žádost může přijít víckrát.** Ten večer jsem dostal stejné upozornění třikrát. Od té doby se každé upozornění deduplikuje podle typu notifikace a identifikátoru transakce.
15. **Rozhodnutí přišlo za méně než den.** Apple žádost zamítl zhruba 22 hodin po jejím podání. Zákazník si přístup ponechal.
16. **Zamítnutí není konec.** Stejný zákazník požádal znovu o dva dny později, na stejnou transakci.

> Žádost kvůli „nechtěnému nákupu“ na konci zkušební verze nevyhraješ odpovědí Applu. Předejdeš jí na paywallu, před první platbou.

## Jak omezit zneužívání žádostí bez porušení pravidel

**Co je povolené:**

- **Odpovídat na každou žádost přesnými daty**, pokud zákazník souhlasil.
- **Vyjádřit cílenou preferenci**, třeba zamítnutí u už spotřebovaného nákupu, místo zamítnutí pro všechny.
- **Přiřadit každý `REFUND` k zákaznickému účtu.** [Stránka Applu o notifikacích vrácení peněz](https://developer.apple.com/documentation/storekit/handling-refund-notifications) to doporučuje, abys odhalil opakovaná vrácení peněz.
- **Jasně říct, co se kupuje, ještě před nákupem.** [Guideline 3.1.2(c)](https://developer.apple.com/app-store/review/guidelines/#3.1.2) vyžaduje popsat, co uživatel za danou cenu dostane, dřív než mu nabídneš předplatné.

**Co je zakázané:**

- **Posílat nepravdivá data**, aby byla žádost zamítnuta, nebo odpovídat bez souhlasu.
- **Získávat souhlas přes okno sledování reklam**, což Apple výslovně vylučuje.
- **Nastražit past na nákup.** [Guideline 5.6](https://developer.apple.com/app-store/review/guidelines/#5.6) zakazuje tlačit zákazníky k nechtěným nákupům nebo účtovat to, co nebylo doručeno.
- **Vyvíjet nátlak na zákazníka**, který žádá o vrácení peněz. Stejné pravidlo vyžaduje v zákaznickém servisu respekt, bez zastrašování.

Nejlepší páka je pořád na začátku: paywall, který uvádí cenu, datum první platby a způsob zrušení. Chyby, kterým se vyhnout, najdeš v článku [chyby na paywallu](https://devoria.fr/cs/blog/paywall-ios-chyby-zacatecniku) a pravidla zkušební verze v článku [zkušební verze zdarma v App Store](https://devoria.fr/cs/blog/introductory-offer-app-store-connect-zkusebni-verze-ios).

## Testování před produkcí

Podle [stránky o testování žádostí](https://developer.apple.com/documentation/storekit/testing-refund-requests) sandbox i testy StoreKit v Xcode žádosti o vrácení peněz přijímají. V sandboxu jakýkoli důvod spustí automatické schválení. Pro simulaci zamítnutí zvol „Other“ a napiš `DECLINE`. Pro poměrné vrácení peněz napiš `GRANT_PRORATED`. V sandboxu musí tvoje odpověď o spotřebě odejít do pěti minut.

## Předplatné, které se vrací méně

[iOS & Android Kit](https://devoria.fr/cs/kits/ios) vychází z kódu mých aplikací, s už naprogramovaným onboardingem, paywallem a předplatnými, a vede tě čtyřmi kroky až do App Store, vlastním tempem. Kompletní nastavení je popsané na stránce [in-app předplatné na iOS](https://devoria.fr/cs/expertise/predplatne-v-aplikaci-ios) a pravidla Applu pro předplatné v článku o [guideline 3.1.2](https://devoria.fr/cs/blog/guideline-3-1-2-zamitnuti-aplikace-predplatne).

Než spustíš svůj paywall, [udělej si bezplatnou diagnostiku](https://devoria.fr/cs/diagnostic): řekne ti, co tvůj projekt opravdu brzdí, a pošle ti můj checklist proti zamítnutí od Applu.

## Časté dotazy

### Může vývojář vrácení peněz v App Store zamítnout?

Ne. Rozhoduje jen Apple. Můžeš poslat data o spotřebě a preferenci, třeba `DECLINE`, které patří mezi několik kritérií. Poslední slovo má Apple.

### Dozví se vývojář o žádosti o vrácení peněz?

Ano, pokud má zapojené App Store Server Notifications V2. Apple pošle `CONSUMPTION_REQUEST` ve chvíli žádosti a pak `REFUND` nebo `REFUND_DECLINED` po rozhodnutí. Bez notifikací vidíš jen schválená vrácení peněz, ve svých přehledech.

### Jak dlouho Applu trvá vyřízení žádosti o vrácení peněz?

Apple zákazníkovi uvádí 24 až 48 hodin. Dokumentace StoreKitu mluví nejvýš o 48 hodinách. Ty máš na odeslání dat o spotřebě 12 hodin.

### Co se stane s přístupem po vrácení peněz?

Vrácený nákup vypadne z aktivních oprávnění zákazníka: StoreKit 2 ho už nevrací v `currentEntitlements`. Pokud Apple vrácení peněz později zruší, dostaneš `REFUND_REVERSED` a musíš přístup obnovit.

### Potřebuješ k odpovědi Applu souhlas zákazníka?

Ano. Apple vyžaduje platný souhlas před jakýmkoli sdílením dat přes Consumption API. Bez něj na notifikaci neodpovídáš. K jeho získání nesmíš použít okno sledování reklam.

### Počítají se vrácení peněz proti mé aplikaci?

Můžou. Guideline 5.6.4 uvádí nadměrné žádosti o vrácení peněz mezi známkami nedostatečné kvality, ke kterým Apple může přihlédnout při posuzování dodržování kodexu chování.


## Tvůj projekt

[iOS & Android Kit](https://devoria.fr/cs/kits/ios): Vytvoř si aplikaci pro iPhone a Android s Claude Code: startovní kód mých aplikací, cesta až do obchodů a všechny kity. 2 399 Kč.

[Diagnostika: co tě dělí od tvé iPhone aplikace](https://devoria.fr/cs/diagnostic): 7 otázek, 60 sekund: zjistíš, co ti doopravdy brání vydat iPhone aplikaci, dostaneš cestu ve 4 krocích a kit přesně pro tebe.
