Ogni rimborso per l'upgrade di un abbonamento è una decisione dello store, non tua, e viene prelevato direttamente dai tuoi proventi
Quando un cliente passa a un livello superiore, lo store emette un rimborso per l'upgrade dell'abbonamento per i giorni non usati del vecchio piano, e riduce i tuoi proventi in modo automatico. Ecco come funzionano i rimborsi per gli upgrade sull'App Store e su Google Play, e perché Apple tiene l'importo fuori dal tuo server.

Punti chiave
- Un rimborso per l'upgrade di un abbonamento è automatico. Quando un cliente passa a un livello superiore a metà ciclo, lo store accredita o rimborsa i giorni non usati del vecchio piano senza chiedertelo, e il denaro esce dai proventi che avevi già registrato.
- Sull'App Store un upgrade ha effetto immediato e Apple rimborsa l'importo proporzionale dell'abbonamento originale. Un downgrade aspetta la prossima data di rinnovo e non rimborsa nulla.
- Apple non invia al tuo server l'importo del rimborso per l'upgrade. La transazione di upgrade è contrassegnata con isUpgraded, ma il campo del prezzo mostra ancora il prezzo pieno del nuovo livello, quindi i ricavi che calcoli dalle App Store Server Notifications risultano gonfiati.
- I report finanziari di App Store Connect sono l'unico posto in cui un rimborso per l'upgrade proporzionale viene contabilizzato. Il personale di Apple afferma che l'importo non è disponibile tramite l'App Store Server API, le Notifications né StoreKit.
- Google Play non restituisce denaro sulla carta in un upgrade. Accredita il tempo non usato o addebita la differenza di prezzo, e quale delle due avviene dipende dalla modalità di sostituzione che imposti. Il valore predefinito è WITH_TIME_PRORATION.
- Un rimborso per l'upgrade non è una richiesta di rimborso del cliente. Non c'è nessun CONSUMPTION_REQUEST né una revisione di storno, quindi non c'è una finestra di 12 ore o di 24 ore e niente da contestare. Lo riconcili, non lo combatti.
- La modalità di sostituzione è una decisione sui ricavi. WITH_TIME_PRORATION consegna al cliente tempo pagato in più che tu eroghi al costo del livello superiore, mentre CHARGE_PRORATED_PRICE addebita la differenza ora, quindi il valore predefinito sbagliato disperde margine un upgrade alla volta.
Un cliente tocca esegui upgrade, passa dal tuo livello da cinque dollari a quello da dieci dollari, e tu registri una vendita più alta. Lo store fa un'altra cosa nello stesso momento, e tu non la vedi mai. Consegna a quel cliente un rimborso per l'upgrade dell'abbonamento per i giorni che aveva già pagato sul vecchio piano, e quel denaro esce dai tuoi proventi. Nessuno te l'ha chiesto. Sull'App Store non troverai nemmeno l'importo negli eventi che il tuo server riceve.
Questo non è il rimborso che puoi combattere. Non è un CONSUMPTION_REQUEST di Apple e non è una revisione di storno di Google Play. È un calcolo proporzionale, integrato nel modo in cui entrambi gli store lasciano cambiare piano alle persone, e si esegue da solo ogni volta che un abbonato sale di livello. Ecco che cos'è davvero un rimborso per l'upgrade su ciascuno store, perché Apple tiene l'importo fuori dal tuo server e quanto ti costa l'impostazione sbagliata di Google Play.
Che cos'è davvero un rimborso per l'upgrade di un abbonamento
Un rimborso per l'upgrade è lo store che salda il tempo che il cliente ha pagato ma non userà. Non ha nulla a che vedere con un reclamo, una contestazione o la tua politica di rimborso. Scatta solo per la meccanica del cambio di piano.
È calcolo proporzionale, non un reclamo del cliente
Quando un abbonato passa a un livello superiore a metà di un periodo di fatturazione, ha già pagato fino alla fine di quel periodo al vecchio prezzo. Lo store lo risarcisce per la parte non usata. Apple emette un rimborso proporzionale dell'abbonamento originale. Google Play accredita il valore non usato sul nuovo piano. Nessuno dei due passa per un flusso a cui puoi rispondere, e nessuno dei due aspetta la tua approvazione.
Solo un upgrade lo attiva
La direzione del cambio decide il denaro. Sull'App Store un upgrade è un passaggio a un prodotto classificato più in alto nello stesso gruppo di abbonamenti, e solo quel passaggio è immediato e rimborsato. Un downgrade è un passaggio a un rango più basso, e ha effetto al prossimo rinnovo senza rimborso. Un crossgrade è un passaggio tra prodotti dello stesso rango, e il suo tempismo dipende dalle durate coinvolte. Classifica male i prodotti in App Store Connect e un cambio che credi sia un upgrade si comporterà come qualcos'altro.
| Cambio sull'App Store | Quando ha effetto | Cosa succede al denaro |
|---|---|---|
| Upgrade a un livello superiore | Immediatamente | Apple rimborsa l'importo proporzionale dell'abbonamento originale |
| Downgrade a un livello inferiore | Alla prossima data di rinnovo | Nessun rimborso, si rinnova al prezzo più basso |
| Crossgrade, stessa durata pagata in anticipo | Immediatamente | Inizia un nuovo abbonamento, il servizio pagato continua |
| Crossgrade, durate diverse | Alla prossima data di rinnovo | Nessun rimborso a metà ciclo |
Perché l'App Store nasconde il rimborso per l'upgrade al tuo server
Ecco la parte che rompe il rendiconto dei ricavi. Apple emette il rimborso per l'upgrade, ma non dice mai al tuo server quanto ha rimborsato.
isUpgraded è l'unico segnale, e il prezzo è sbagliato
La nuova transazione arriva con isUpgraded impostato su true, il che ti dice che è avvenuto un cambio di piano. Il campo del prezzo su quella transazione mostra ancora il prezzo di listino pieno del nuovo livello, non l'importo che Apple ha recuperato dal vecchio. Nessuna App Store Server Notification porta la cifra del rimborso. Nelle parole di Apple stessa sui forum per sviluppatori, l'importo del rimborso proporzionale non è disponibile tramite l'App Store Server API, le Notifications né StoreKit, e il reporting di App Store Connect è la tua fonte per ogni fine di contabilità finanziaria.
Il report finanziario è l'unico registro onesto
I report finanziari e di vendita di App Store Connect contabilizzano il rimborso per l'upgrade proporzionale, perché quei report determinano ciò che Apple ti paga davvero. Questo li rende la fonte di verità per ogni abbonato che abbia mai fatto un upgrade. Costruisci la tua contabilità a partire dai report, e tratta gli eventi del server come segnali di diritto d'accesso, non come ricavi.

Quanto ti costa, in denaro
Il rimborso per l'upgrade non è un errore di arrotondamento. Sono proventi reali, e su Google Play scegli anche quanto del tempo non usato regalare.
Il rimborso sono proventi che avevi già registrato
Prendi un abbonato al tuo livello da 9.99 al mese che fa upgrade a 19.99 il giorno 20 di un ciclo di 30 giorni. Circa un terzo del mese è non usato, quindi Apple rimborsa circa 3.33 dei 9.99 originali. Non perdi l'intera vendita. Restituisci la parte che il cliente ha pagato in anticipo e non userà. Ciò che conta è che la restituzione è automatica e ricade sulla vecchia vendita, quindi i proventi che avevi già contato si riducono a posteriori. Moltiplica questo per ogni abbonato che sale di livello a metà ciclo ed è una voce che dovresti poter vedere, non uno scarto che scopri nel pagamento.
Su Google Play la modalità di sostituzione è la vera leva di costo
Google Play non rimborsa denaro sulla carta in un upgrade. Salda il tempo non usato in uno di diversi modi, e tu scegli quale passando una modalità di sostituzione quando avvii il flusso di acquisto. La scelta decide se consegni al cliente tempo pagato o gli addebiti la differenza. Google raccomanda CHARGE_PRORATED_PRICE per gli upgrade e DEFERRED per i downgrade, ma il valore predefinito della libreria è WITH_TIME_PRORATION, quindi un flusso che non hai mai configurato sta accreditando tempo in silenzio.
| Modalità di sostituzione Google Play | Quando ha effetto | Cosa succede al tempo non usato |
|---|---|---|
| WITH_TIME_PRORATION (predefinita) | Immediatamente | Accreditato come tempo extra sul nuovo piano, la prossima data di fatturazione viene spostata in avanti |
| CHARGE_PRORATED_PRICE (solo upgrade) | Immediatamente | La differenza di prezzo per il periodo restante viene addebitata ora, la data di fatturazione non cambia |
| WITHOUT_PRORATION | Immediatamente | Nulla viene saldato ora, il nuovo prezzo parte al prossimo rinnovo |
| CHARGE_FULL_PRICE | Immediatamente | Il prezzo pieno del nuovo piano viene addebitato ora, il valore restante viene riportato o calcolato in proporzione |
| DEFERRED | Al prossimo rinnovo | Il piano attuale prosegue finché non scade, poi parte il nuovo piano |
Come evitare che i rimborsi per gli upgrade sorprendano la tua contabilità
Non puoi disattivare il calcolo proporzionale, e non vorresti, perché è ciò che rende un cambio di piano equo per il cliente. Quello che puoi fare è vederlo, valorizzarlo e tenerlo separato dai rimborsi che puoi davvero contestare.
Riconcilia gli upgrade di Apple con il report finanziario
Poiché l'importo del rimborso non raggiunge mai il tuo server, i report finanziari e di vendita di App Store Connect sono l'unico posto in cui un rimborso per l'upgrade proporzionale compare. Riconcilia i ricavi per abbonato con quei report a ogni periodo, e non calcolare i ricavi da un totale progressivo di Server Notifications. Il contrassegno isUpgraded ti dice che è avvenuto un cambio. Il report ti dice quanto è costato.
Scegli la modalità di sostituzione di Google Play di proposito
Passa una modalità di sostituzione per ogni cambio di piano in modo deliberato. Usa CHARGE_PRORATED_PRICE quando vuoi incassare ora la differenza di prezzo su un upgrade. Lascia in vigore WITH_TIME_PRORATION solo quando intendi davvero dare al cliente il tempo residuo. Usa DEFERRED per i downgrade così mantieni i ricavi attuali fino alla fine del termine. Il valore predefinito è una decisione, e il valore predefinito sbagliato regala margine un upgrade alla volta.
Tieni i rimborsi per gli upgrade separati dai rimborsi che puoi contestare
Un rimborso per l'upgrade è automatico e definitivo per progettazione. Non è un cliente che chiede indietro i suoi soldi. I rimborsi su cui puoi davvero incidere sono quelli avviati dal cliente, dove Apple invia un CONSUMPTION_REQUEST e ti dà 12 ore per rispondere, e dove Google Play apre una revisione di storno tramite orders.reviewrefund con una finestra di 24 ore. Etichetta i tuoi dati così che i due non si confondano mai. Una voce la riconcili. L'altra voce a cui rispondi, contro il tempo.
La versione breve
Quando un cliente fa l'upgrade di un abbonamento, lo store salda il tempo non usato al posto suo, in modo automatico. Apple rimborsa l'importo proporzionale del vecchio piano immediatamente e non invia mai la cifra al tuo server, quindi i report finanziari di App Store Connect sono l'unico registro accurato. Google Play accredita il tempo o addebita la differenza a seconda della modalità di sostituzione che imposti, e il valore predefinito consegna al cliente tempo pagato che tu eroghi a costo. Nulla di tutto ciò passa per un CONSUMPTION_REQUEST o una revisione di storno, quindi non c'è niente da contestare. Riconcilia il rimborso per l'upgrade, imposta la tua modalità di Google Play di proposito, e tienilo separato dai rimborsi che puoi ancora combattere.
Domande frequenti
- Un rimborso per l'upgrade di un abbonamento chiede la mia approvazione?
- No. Un rimborso per l'upgrade di un abbonamento è automatico. Quando un cliente passa a un livello superiore a metà ciclo, lo store salda il tempo non usato del vecchio piano da solo, senza alcuna richiesta verso di te e senza una finestra per rispondere. Apple rimborsa l'importo proporzionale dell'abbonamento originale, e Google Play accredita il tempo non usato o addebita la differenza di prezzo a seconda della modalità di sostituzione che imposti.
- Perché i miei ricavi dell'App Store non coincidono con il mio pagamento dopo gli upgrade?
- Perché Apple non invia al tuo server l'importo del rimborso per l'upgrade. La transazione di upgrade porta isUpgraded impostato su true, ma il campo del prezzo mostra ancora il prezzo pieno del nuovo livello, e nessuna App Store Server Notification include il rimborso. I ricavi calcolati dagli eventi del server contano la nuova vendita e mancano il rimborso sul vecchio piano, quindi risultano gonfiati finché non li riconcili con i report finanziari di App Store Connect.
- Google Play rimborsa denaro sulla carta quando un cliente fa un upgrade?
- No. Google Play tratta il tempo non usato come un credito, non come un rimborso in contanti. A seconda della modalità di sostituzione, accredita il tempo restante sul nuovo piano e sposta in avanti la prossima data di fatturazione, oppure addebita la differenza di prezzo per il periodo restante. La modalità predefinita è WITH_TIME_PRORATION, che accredita il tempo.
- Posso contestare un rimborso per l'upgrade di un abbonamento?
- No. Un rimborso per l'upgrade non è una richiesta di rimborso del cliente. Non c'è nessun CONSUMPTION_REQUEST da Apple né una revisione di storno da Google Play, quindi non c'è una finestra di 12 ore o di 24 ore e niente da inviare. Un rimborso per l'upgrade lo riconcili. Contesti solo i rimborsi e gli storni avviati dal cliente.
- Un downgrade dà un rimborso al cliente?
- No. Sull'App Store un downgrade ha effetto alla prossima data di rinnovo e non rimborsa nulla, poiché il cliente mantiene il livello superiore fino alla fine del periodo pagato. Su Google Play il modo raccomandato di gestire un downgrade è la modalità di sostituzione DEFERRED, che mantiene il piano attuale finché non scade e poi avvia quello inferiore.
- Quale modalità di sostituzione di Google Play dovrei usare per un upgrade?
- Google raccomanda CHARGE_PRORATED_PRICE per gli upgrade, che addebita la differenza di prezzo per il periodo restante immediatamente e lascia invariata la data di fatturazione. Il valore predefinito WITH_TIME_PRORATION accredita invece il tempo non usato come servizio extra al livello superiore, quindi usalo solo quando intendi regalare quel tempo.
Fonti e approfondimenti
- Apple Developer: Auto-renewable subscriptions (upgrade, downgrade, and crossgrade behavior and prorated refunds)
- Apple Developer Forums: Retrieving the prorated refund amount after an upgrade (Apple staff on isUpgraded, the price field, and financial reports as the source)
- Android Developers: BillingFlowParams.SubscriptionUpdateParams.ReplacementMode (all replacement mode constants)
- Android Developers: About subscriptions (proration, default replacement mode, upgrade and downgrade recommendations)
- Google Play Developer API: Method orders.reviewrefund (chargeback review, 24 hours)
- Apple Developer: Send Consumption Information (CONSUMPTION_REQUEST response window)
RefundHalt
Il pilota automatico dei rimborsi per App Store e Google Play
Continua a leggere
Gli acquisti in-app non autorizzati dai bambini vengono quasi sempre rimborsati al genitore, e il costo lo sostieni tu
Quando un bambino compra un pacchetto di monete sul telefono di un genitore, sia Apple sia Google lo rimborsano e nessuno dei due ti chiede prima. Sono i regolatori ad averlo costruito così. Ecco come funzionano questi rimborsi di acquisti in-app non autorizzati su ciascuno store, la finestra di 15 minuti in cui il denaro se ne va e quanto ti costa davvero uno di essi.
Non hai mai posseduto la tassa di rimborso delle app, quindi un rimborso ti costa la tua quota, non il totale sullo scontrino
Rimborsa un acquisto in-app e lo scontrino mostra il prezzo più la tassa che tornano indietro. Quella tassa non è mai stata denaro tuo. Apple e Google la riscuotono e la versano come merchant of record, poi la stornano su un rimborso senza toccare la tua quota. Ecco quanto costa davvero un rimborso, e l'unica configurazione in cui la tassa diventa tua.