I rimborsi degli abbonamenti non funzionano come i rimborsi una tantum, e lo store su cui ti trovi decide quanta voce in capitolo hai
Un rimborso di abbonamento annulla un intero periodo di fatturazione, non una singola vendita. Sull'App Store, Apple decide e il tuo server viene solo a sapere l'esito. Su Google Play scegli tu stesso un rimborso completo o proporzionale. Ecco come ogni store gestisce i rimborsi degli abbonamenti, e quanto te ne costa uno.

Punti chiave
- Un rimborso di abbonamento non è la stessa cosa di un rimborso una tantum. L'unità che si annulla è un periodo di fatturazione, e su entrambi gli store rimborsare un ordine di abbonamento annulla l'abbonamento e interrompe l'accesso.
- Sull'App Store, Apple decide ogni rimborso di abbonamento. Il cliente lo chiede ad Apple su reportaproblem.apple.com, Apple decide, e il tuo server viene solo a sapere l'esito tramite una notifica REFUND, REFUND_DECLINED o REFUND_REVERSED.
- Quando Apple concede un rimborso di abbonamento, la transazione riceve un revocationDate e il autoRenewStatus dell'abbonamento viene impostato su false, così smette di rinnovarsi e il cliente perde l'accesso.
- Apple misura un abbonamento con rinnovo automatico in base al tempo trascorso, non alle tue metriche di utilizzo. Chi è a sei mesi di un piano annuale ne ha consumato circa il 50 percento, e GRANT_PRORATED è l'unica preferenza di rimborso che puoi esprimere per esso.
- Su Google Play emetti tu stesso il rimborso. purchases.subscriptionsv2.revoke accetta o fullRefund, che restituisce l'intero periodo corrente, o proratedRefund, che restituisce solo il tempo di diritto non utilizzato.
- Quale ordine rimborsi su Google Play cambia l'esito. Rimborsa l'ordine più recente e l'abbonamento viene rimosso immediatamente con i rinnovi futuri annullati. Rimborsa un ordine più vecchio e l'abbonamento resta attivo.
- I limiti di Google Play sono rigidi. Gli ordini più vecchi di tre anni non possono essere rimborsati, i rimborsi parziali funzionano solo su ordini effettuati dopo March 2018, non si applicano alle app a pagamento, e nessun rimborso può essere annullato una volta emesso.
Rimborsare un abbonamento e rimborsare un singolo acquisto in-app sembrano lo stesso pulsante. Non lo sono. Un acquisto una tantum è un addebito che restituisci. Un abbonamento è un addebito ricorrente con un diritto attivo collegato, quindi i rimborsi degli abbonamenti devono rispondere a due domande che un rimborso una tantum non pone mai: quanta parte del periodo corrente restituisci, e se l'abbonamento continua a funzionare. L'App Store e Google Play rispondono a queste due domande in modi opposti, e la differenza decide quanto controllo hai e quanto denaro esce dal tuo conto.
Ecco la mappa breve. Sull'App Store, Apple detiene la decisione e tu lo scopri a cose fatte. Su Google Play, tieni tu i comandi e scegli da solo completo o proporzionale. Questo percorre entrambi gli store, i campi e le notifiche esatti che ciascuno usa, quale ordine tocchi quando un abbonamento è stato fatturato molte volte, e quanto costa davvero un rimborso di abbonamento una volta che conti il calcolo che hai già speso.
In cosa i rimborsi degli abbonamenti differiscono dai rimborsi una tantum
Entrambi gli store trattano un rimborso come l'annullamento di un ordine specifico. Per un acquisto una tantum c'è un solo ordine, quindi non c'è nulla da scegliere. Un abbonamento è una catena di ordini, uno per periodo di fatturazione, con un diritto che è attivo o no. Questa struttura è il motivo per cui un rimborso di abbonamento comporta scelte che un rimborso una tantum non ha.
L'unità che si annulla è un periodo di fatturazione
Quando rimborsi un abbonamento, non stai restituendo un'intera vita di pagamenti. Stai agendo su un ordine della catena, di solito il più recente, che è un singolo periodo di fatturazione. Un rimborso completo restituisce tutto quel periodo. Un rimborso proporzionale restituisce solo la parte del periodo che il cliente non ha ancora usato. In ogni caso la vendita che annulli è il prezzo di un periodo, non l'intera storia del cliente con l'app.
Chi decide è la vera differenza
La divisione più netta è l'autorità. Sull'App Store, Apple decide se un rimborso di abbonamento avvenga o meno, e tu al massimo fornisci contesto. Su Google Play, decidi tu, e l'API fa esattamente ciò che le dici. Stesso esito per il cliente, un posto completamente diverso per lo sviluppatore, e cambia ciò che costruisci per gestire ciascuno.
Come l'App Store gestisce un rimborso di abbonamento
Dal lato di Apple sei uno spettatore con un piccolo microfono. Il cliente parla con Apple, Apple decide, e il tuo server legge l'esito.
Il cliente chiede ad Apple, e Apple decide
Un cliente dell'App Store richiede un rimborso di abbonamento su reportaproblem.apple.com, non a te. Apple esamina la richiesta con i propri segnali e decide. Tu non la approvi, e non esiste alcun pulsante nella console di Apple che ti permetta di emettere un rimborso di abbonamento come fa Google Play. Apple ha fino a 90 giorni dall'acquisto per accettare una richiesta di esame, e una volta che decide, la decisione è di Apple.
Cosa vede il tuo server quando arriva il rimborso
Vieni a sapere l'esito tramite le App Store Server Notifications V2. Un rimborso concesso arriva come una notifica REFUND, e la transazione ora porta un revocationDate che segna quando l'accesso deve terminare. Il autoRenewStatus dell'abbonamento viene impostato su false, così smette di rinnovarsi e il cliente perde il diritto. Se Apple rifiuta la richiesta ricevi REFUND_DECLINED, e se Apple in seguito annulla un rimborso che aveva già concesso ricevi REFUND_REVERSED e l'abbonamento torna. Il tuo compito è leggere questo e commutare l'accesso, non esprimere un voto.
| Notifica | Cosa significa | Cosa fai |
|---|---|---|
| REFUND | Apple ha concesso il rimborso; la transazione riceve un revocationDate | Revoca l'accesso, tratta autoRenewStatus come false |
| REFUND_DECLINED | Apple ha rifiutato la richiesta di rimborso del cliente | Non cambia nulla; l'abbonamento resta |
| REFUND_REVERSED | Apple ha annullato un rimborso che aveva concesso | Ripristina l'accesso e la vendita |
Apple misura un abbonamento in base al tempo, non alle tue metriche
Per un consumabile, puoi dire ad Apple quanto è stato usato tramite i dati di consumo. Per un abbonamento con rinnovo automatico, Apple calcola il consumo dal tempo trascorso per conto proprio. L'esempio di Apple stessa è un cliente a sei mesi di un abbonamento annuale, che ne ha consumato circa il 50 percento. Quindi le tue metriche di utilizzo non fissano il numero per un abbonamento. L'unica leva che puoi tirare è refundPreference, e per un abbonamento il valore rilevante è GRANT_PRORATED, che dice che preferiresti che Apple restituisse solo la parte non utilizzata. È una preferenza, non una decisione. Apple decide comunque.
Come Google Play gestisce un rimborso di abbonamento
Google Play mette la decisione nelle tue mani. C'è una schermata nella Play Console e un insieme di metodi API che ti permettono di rimborsare un abbonamento direttamente, scegliere quanto, e decidere se l'accesso termina. Questa è la postura opposta a quella di Apple, e comporta scelte che devi azzeccare.
Completo o proporzionale, e la scelta è tua
Il modo attuale di rimborsare e revocare un abbonamento è purchases.subscriptionsv2.revoke, chiamato con un revocationContext. Passa fullRefund e Google Play chiude l'abbonamento e restituisce l'importo intero del periodo di fatturazione corrente. Passa proratedRefund e Google Play chiude l'abbonamento e restituisce solo il tempo di diritto residuo e non utilizzato. Il metodo precedente poteva fare solo rimborsi completi, che è il motivo per usare quello più nuovo. Una revoca proporzionale è un corpo di due righe, un revocationContext che avvolge proratedRefund, e sostituisci con fullRefund per l'intero periodo. L'una o l'altra revoca attiva una notifica per sviluppatori in tempo reale SUBSCRIPTION_REVOKED, che è il tuo segnale per interrompere l'accesso.
Quale ordine rimborsi cambia ciò che accade
Google Play ti permette anche di rimborsare un ordine senza revocare, tramite orders.refund, e qui morde una regola sottile. Se rimborsi l'ordine più recente di un abbonamento, l'ordine viene rimborsato, l'abbonamento viene rimosso immediatamente, e le ricorrenze future vengono annullate. Se rimborsi un ordine più vecchio della catena, quell'ordine viene rimborsato ma l'abbonamento resta attivo. Su orders.refund il parametro revoke revoca solo quando l'ordine è il più recente, quindi per terminare l'accesso su un abbonamento attivo usi invece purchases.subscriptionsv2.revoke.
| Azione | Ordine rimborsato | Cosa accade all'abbonamento |
|---|---|---|
| Rimborsare l'ordine più recente | L'ultimo periodo di fatturazione | Rimosso immediatamente, rinnovi futuri annullati |
| Rimborsare un ordine più vecchio | Un periodo di fatturazione passato | Resta attivo, continua a rinnovarsi |
| subscriptionsv2.revoke, completo o proporzionale | Periodo corrente | Terminato ora, SUBSCRIPTION_REVOKED inviato |

I limiti che fanno inciampare gli sviluppatori
Alcuni spigoli vivi colgono le persone, e nessuno di essi è nel percorso ideale.
- Gli ordini più vecchi di tre anni non possono essere rimborsati affatto.
- I rimborsi parziali funzionano solo su ordini effettuati dopo March 2018, e mai su acquisti di app a pagamento.
- Puoi accumulare più rimborsi parziali su un ordine, ma non fino al totale dell'ordine né oltre.
- Un rimborso non può essere annullato una volta emesso.
Google Play di solito restituisce una decisione di rimborso entro un giorno, anche se può richiedere fino a quattro. Metti in conto questo ritardo quando un rimborso deve riflettersi nei tuoi controlli di accesso.
Quanto ti costa davvero un rimborso di abbonamento
L'addebito rimborsato non è mai l'intera fattura. Nel momento in cui un ordine di abbonamento è stato consegnato, avevi già speso denaro vero su di esso: calcolo, chiamate API al modello, archiviazione, e qualsiasi pagamento legato a quel periodo. Un rimborso restituisce la vendita. Non restituisce ciò che hai speso per erogarla. Su un abbonamento, la forma della perdita dipende da quale rimborso emetti.
Completo rispetto a proporzionale è una decisione di denaro
Un rimborso completo su Google Play restituisce l'intero periodo corrente, quindi perdi i ricavi dell'intero periodo pur mantenendo ogni costo che hai già sostenuto in quel periodo. Un rimborso proporzionale restituisce solo la fetta non utilizzata, quindi mantieni i ricavi della parte che il cliente ha effettivamente avuto. Se un cliente è al 60 percento di un periodo mensile su un piano da 10 dollari, un rimborso completo ti costa i 10 dollari interi, e un rimborso proporzionale ti costa circa 4 dollari, il 40 percento non utilizzato. Apple applica la stessa logica del tempo trascorso dal suo lato quando dimensiona un rimborso di abbonamento.
| Tipo di rimborso | Cosa riceve indietro il cliente | Cosa mantieni |
|---|---|---|
| Rimborso completo | L'intero periodo corrente, 10.00 | Nulla di questo periodo |
| Rimborso proporzionale | Il 40 percento non utilizzato, circa 4.00 | Il 60 percento utilizzato, circa 6.00 |
I costi che non tornano mai
Qualunque rimborso emetti, i costi a valle di quel periodo sono persi. Una chiamata API al modello che hai pagato, un video che hai renderizzato, l'archiviazione che hai predisposto, un pagamento a un creator che hai già inviato, niente di tutto ciò si annulla quando il rimborso di abbonamento va a buon fine. Dimensiona il rimborso su ciò che il cliente ha effettivamente usato, mai su quanto tempo fa si è abbonato, perché il tempo trascorso non è un costo e nessuno dei due store lo tratta come tale. E dopo il August 3, 2026, se un addebito di abbonamento Google Play finisce in un chargeback bancario anziché in un rimborso che emetti tu, assorbi anche la commissione di chargeback della banca, che un rimborso che concedi prima evita.
Come gestire i rimborsi degli abbonamenti senza una persona che sorveglia
Niente di tutto questo dovrebbe aspettare che qualcuno legga una dashboard. Le notifiche arrivano a qualsiasi ora, e l'accesso dovrebbe commutare nel momento in cui arriva un rimborso, non la mattina dopo.
Leggi l'esito e revoca l'accesso su entrambi gli store
Sull'App Store, resta in ascolto di REFUND, REFUND_DECLINED e REFUND_REVERSED, e usa il revocationDate e il autoRenewStatus per terminare o ripristinare l'accesso automaticamente. Su Google Play, resta in ascolto di SUBSCRIPTION_REVOKED e dei segnali di acquisto annullato e fai lo stesso. Questa è l'idraulica che RefundHalt esegue per te: notifica in entrata, account abbinato, accesso commutato, nessuna persona nel ciclo.
Tieni pronte le prove prima della disputa
Le finestre strette che davvero chiedono il tuo contributo, il CONSUMPTION_REQUEST di 12 ore di Apple sui consumabili e l'esame di chargeback di 24 ore di Google Play, aiutano solo se le prove esistono già. Allega un identificativo di account a ogni acquisto, un appAccountToken UUID su Apple e un setObfuscatedAccountId con hash di 64 caratteri o meno su Google Play, e registra ciò che ogni periodo pagato ha consegnato. Poi, quando arriva un token, il caso è già costruito, e rispondere entro la finestra è compito di una macchina, non una corsa affannosa.
Domande frequenti
- Rimborsare un abbonamento è diverso dal rimborsare un acquisto una tantum?
- Sì. Un acquisto una tantum è un singolo ordine che restituisci. Un abbonamento è una catena di ordini con un diritto attivo, quindi un rimborso di abbonamento agisce su un periodo di fatturazione e decide anche se l'abbonamento continua a funzionare. Sia sull'App Store sia su Google Play, rimborsare un ordine di abbonamento annulla l'abbonamento e termina l'accesso, e spesso puoi scegliere tra restituire l'intero periodo o solo la parte non utilizzata.
- Uno sviluppatore può emettere direttamente un rimborso di abbonamento App Store?
- No. Apple decide i rimborsi degli abbonamenti App Store. Il cliente ne richiede uno su reportaproblem.apple.com, Apple decide, e tu vieni a sapere l'esito tramite una notifica REFUND, REFUND_DECLINED o REFUND_REVERSED. L'unico contributo che puoi offrire è un refundPreference, come GRANT_PRORATED, e Apple lo tratta come una preferenza, non come una decisione.
- Come si emette un rimborso di abbonamento proporzionale su Google Play?
- Chiama purchases.subscriptionsv2.revoke con un revocationContext impostato su proratedRefund. Google Play chiude l'abbonamento e restituisce solo il tempo di diritto residuo e non utilizzato, poi invia una notifica SUBSCRIPTION_REVOKED. Passa invece fullRefund per restituire l'intero periodo corrente. Il metodo revoke precedente poteva fare solo rimborsi completi.
- Perché il mio rimborso di Google Play non ha annullato l'abbonamento?
- Perché hai rimborsato un ordine più vecchio della catena. Su Google Play, rimborsare l'ordine più recente rimuove l'abbonamento immediatamente e annulla i rinnovi futuri, ma rimborsare un ordine più vecchio rimborsa quel periodo mentre l'abbonamento resta attivo. Il parametro revoke su orders.refund revoca solo quando l'ordine è il più recente, quindi per terminare un abbonamento attivo usa purchases.subscriptionsv2.revoke.
- Fino a quando indietro si può rimborsare un ordine di abbonamento?
- Su Google Play, gli ordini più vecchi di tre anni non possono essere rimborsati. I rimborsi parziali funzionano solo su ordini effettuati dopo March 2018 e mai su app a pagamento, e nessun rimborso può essere annullato una volta emesso. Sull'App Store, Apple accetta le richieste di rimborso dei clienti fino a 90 giorni dall'acquisto e decide ciascuna da sé.
Fonti e approfondimenti
- Android Developers: Manage subscriptions and one-time purchases
- Play Console Help: Manage your app's orders and issue refunds
- Google Play Developer API: orders.refund
- Google Play Developer API: purchases.subscriptionsv2.revoke
- Google Play Help: Refund policies for apps, games, and in-app purchases
- Apple Developer: Handling refund notifications
- Apple Developer WWDC21: Support customers and handle refunds
RefundHalt
Il pilota automatico dei rimborsi per App Store e Google Play
Continua a leggere
La differenza tra un chargeback e un rimborso si riduce a chi decide, e solo uno dei due è definitivo
Un rimborso sull'App Store o Google Play viene emesso dallo store, ed è lo store a deciderlo. Un chargeback è la banca del cliente che ritira il denaro, ed è la banca a deciderlo, senza appello. Per gli sviluppatori di app, la differenza tra i due ora è denaro, perché dal 3 agosto 2026 Google Play mette i costi del chargeback a tuo carico.
Dal 3 agosto, i costi di chargeback di Google Play sono passati agli sviluppatori, ed ecco cosa ogni contestazione ti toglie ora
Google Play ha smesso di assorbire i chargeback senza clamore. Per gli ordini effettuati a partire dal 3 agosto 2026, su ogni ordine contestato rimborsi il prezzo d'acquisto meno la commissione di servizio di Play più una commissione bancaria. Ecco cosa è cambiato, quanto costa ora un singolo chargeback e la finestra di 24 ore in cui puoi reagire.