I rimborsi dei componenti aggiuntivi degli abbonamenti Google Play possono colpire un elemento alla volta, ma il tuo cliente può annullare solo l'intero pacchetto
Google Play consente a un abbonamento base di includere fino a 49 componenti aggiuntivi su un unico token di acquisto. Ecco come funzionano i rimborsi dei componenti aggiuntivi, quale chiamata API rimborsa un elemento senza toccare il resto, dove Google la blocca e quanto ti costa ogni percorso di rimborso.

Punti chiave
- La funzione di abbonamento con componenti aggiuntivi di Google Play riunisce un abbonamento base e fino a 49 componenti aggiuntivi, 50 elementi in totale, in un unico acquisto, e tutti gli elementi devono avere lo stesso periodo di fatturazione ricorrente.
- Gli utenti di Google Play non possono annullare un singolo componente aggiuntivo dal Centro abbonamenti di Play. Possono annullare solo l'abbonamento base e i suoi componenti insieme, quindi la rimozione di un componente deve avvenire nell'app dello sviluppatore.
- Il metodo purchases.subscriptionsv2.revoke accetta un itemBasedRefund con un productId. Se altri elementi restano attivi, Google revoca e rimborsa per intero solo quell'elemento, e l'abbonamento continua.
- Google blocca un rimborso per elemento quando l'abbonamento è in uno stato di pagamento rifiutato, quando l'elemento è scaduto o non posseduto, e sugli abbonamenti prepagati.
- Un proratedRefund su un abbonamento con componenti aggiuntivi rimborsa l'ultimo ordine di ogni elemento, in proporzione al tempo rimanente fino al prossimo rinnovo, e revoca l'accesso a tutti gli elementi in una volta.
- Le notifiche in tempo reale per sviluppatori di un abbonamento con componenti aggiuntivi non contengono un subscriptionId, quindi il backend deve chiamare purchases.subscriptionsv2.get e leggere ogni lineItem per capire quali elementi sono ancora attivi.
- L'unico flusso di rimborso di Google Play che chiede prove allo sviluppatore è uno storno segnalato per revisione tramite orders.reviewrefund, con una finestra di 24 ore. Per gli ordini effettuati dopo il 3 agosto 2026, uno storno perso costa allo sviluppatore il prezzo di acquisto meno la commissione di servizio di Play, più le commissioni della banca.
Vendi un abbonamento base con tre componenti aggiuntivi su Google Play e potrai rimborsare uno qualsiasi di quei componenti senza annullare il resto. Il tuo cliente non può fare lo stesso dalla sua parte. Google consente agli utenti di annullare solo l'intero pacchetto, quindi gli strumenti precisi per i rimborsi dei componenti aggiuntivi degli abbonamenti Google Play sono nelle tue mani, quelle dello sviluppatore, e solo tramite l'API. Usali bene e rimborsi la voce che non ha funzionato. Usa la chiamata sbagliata e rimborsi, o revochi, tutto.
Come è costruito un abbonamento con componenti aggiuntivi
Google ha annunciato il checkout multiprodotto per gli abbonamenti all'I/O 2025. Un unico flusso di acquisto vende un abbonamento base più componenti aggiuntivi facoltativi, fatturati insieme con un'unica cadenza. La guida per sviluppatori di Google fissa limiti precisi:
- Solo i piani base a rinnovo automatico possono includere componenti aggiuntivi. I piani prepagati no.
- Tutti gli elementi devono avere lo stesso periodo di fatturazione ricorrente. Componenti mensili su una base annuale non sono consentiti.
- Un acquisto contiene al massimo 50 elementi, cioè una base e fino a 49 componenti aggiuntivi.
- La funzione non è disponibile in Corea del Sud.
Tutto vive su un unico token di acquisto. Quando chiami purchases.subscriptionsv2.get, la risposta contiene un elenco lineItems, con una voce per elemento. Ogni voce ha i propri productId, expiryTime e latestSuccessfulOrderId. È quest'ultimo campo a rendere possibili i rimborsi per elemento: ogni elemento ha il proprio ultimo ordine.
La ripartizione proporzionale parte dal primo giorno
Quando un utente aggiunge un componente a metà ciclo, Google addebita subito un importo proporzionale, così il componente si rinnova nella stessa data della base. L'esempio di Google è un componente mensile da $10 aggiunto il 15 agosto dopo una prova di 7 giorni, con un addebito di $2.90 per coprire il resto di agosto. Quindi un singolo componente può avere un primo ordine breve e di importo insolito prima del primo ordine pieno. Tienilo presente quando cerchi quale ordine verrà colpito da un rimborso.
Il tuo cliente può annullare solo l'intero pacchetto
La pagina di assistenza di Google per i consumatori è esplicita. Gli utenti possono annullare l'abbonamento base e i componenti aggiuntivi solo insieme, e al momento non possono annullare singoli componenti da Google Play. Nemmeno la sospensione è disponibile. Se un utente rifiuta un aumento di prezzo, Google annulla l'abbonamento base e tutti i suoi componenti.
Così il cliente che vuole uscire da un componente aggiuntivo ha due opzioni nel Play Store: annullare tutto o chiedere un rimborso. Nessuna delle due ti conviene. La guida di Google dice che la tua app può offrire la rimozione al loro posto. Un componente rimosso scade alla fine del periodo di fatturazione in corso, e il resto del pacchetto continua a rinnovarsi.
Gli strumenti di rimborso dei componenti aggiuntivi degli abbonamenti Google Play a confronto
Google ti offre cinque modi per restituire denaro su un abbonamento con componenti aggiuntivi. Cambiano in ciò che rimborsano e nel fatto che l'accesso termini o meno.
| Strumento | Cosa viene rimborsato | Cosa succede all'accesso |
|---|---|---|
| Rimborso in Play Console su un ordine specifico | Un importo che scegli su quell'ordine | Non viene revocato nulla |
| orders.refund, senza revoke | L'importo totale di un ordine | Non viene revocato nulla |
| subscriptionsv2.revoke con itemBasedRefund | L'intero ultimo addebito di un elemento | Termina solo quell'elemento, a meno che non fosse l'ultimo attivo |
| subscriptionsv2.revoke con proratedRefund | L'ultimo ordine di ogni elemento, in proporzione al tempo rimanente | Tutti gli elementi terminano subito |
| subscriptionsv2.revoke con fullRefund | L'intero ultimo addebito di ogni elemento | Tutti gli elementi terminano subito |
Google aggiunge un avviso netto nella guida ai componenti aggiuntivi: non chiamare il metodo deprecato purchases.subscriptions.refund su un abbonamento con componenti aggiuntivi. Inoltre orders.refund non può agire su ordini più vecchi di tre anni.
Come si comporta itemBasedRefund
L'oggetto itemBasedRefund richiede un campo obbligatorio, productId, che indica l'elemento da revocare. Google descrive due esiti:
- Altri elementi sono ancora attivi: solo l'elemento indicato viene revocato e rimborsato per intero, e l'abbonamento prosegue.
- Nessun altro elemento è attivo: l'elemento viene revocato, rimborsato per intero e l'intero abbonamento viene annullato.
Puoi indicare un elemento per richiesta. Per rimborsare due componenti aggiuntivi, fai due chiamate.
Quando Google blocca un rimborso per elemento
Google rifiuta un itemBasedRefund in tre casi. L'abbonamento è in un qualsiasi stato di pagamento rifiutato, che comprende il periodo di tolleranza e la sospensione dell'account. L'elemento indicato non è posseduto o è già scaduto. Oppure l'acquisto è un abbonamento prepagato, dove la rimozione di elementi non è supportata affatto.
Cosa fa un rimborso per ID ordine
La guida di Google osserva che il flag revoke di orders.refund termina l'accesso solo se l'ordine è il più recente dell'abbonamento. Su un ordine precedente, il rimborso va a buon fine e non viene revocato nulla. Play Console funziona allo stesso modo: rimborsa l'ordine più recente e l'abbonamento viene rimosso, rimborsane uno precedente e resta attivo. Con i componenti aggiuntivi, scegli l'ordine dal latestSuccessfulOrderId della voce giusta, altrimenti potresti rimborsare un addebito diverso da quello voluto.
Chi decide il rimborso, e quando ti chiedono prove
La maggior parte dei rimborsi su un abbonamento con componenti aggiuntivi viene decisa senza di te, come per qualsiasi altro abbonamento Play. Entro 48 ore da un acquisto, l'utente può chiederlo a Google tramite Segnala un problema, e decide Google. Dopo, Google lo indirizza a te. E se non confermi un nuovo acquisto di abbonamento entro tre giorni, Google rimborsa automaticamente l'utente e revoca l'acquisto.
Un solo flusso ti chiede la tua versione dei fatti. Quando il titolare di una carta apre uno storno e Google lo segnala per la revisione dello sviluppatore, ricevi una PendingRefundReviewNotification e hai 24 ore per chiamare orders.reviewrefund con una preferenza di rimborso e prove di utilizzo. Gli storni in sé li decide la banca, e la sua decisione è definitiva.
Tracciare i rimborsi dei componenti aggiuntivi sul tuo server
Il riferimento RTDN di Google elenca SUBSCRIPTION_ITEMS_CHANGED per le modifiche a un elemento di un pacchetto di abbonamento, e SUBSCRIPTION_REVOKED per un abbonamento revocato prima della scadenza. La guida di Google dice che una revoca tramite subscriptionsv2.revoke genera sia una notifica SUBSCRIPTION_REVOKED sia una VoidedPurchaseNotification, e viene registrata nella Voided Purchases API.
Il problema è il subscriptionId. Google dice che non viene fornito nelle RTDN per gli abbonamenti con componenti aggiuntivi. Quindi non affidarti alla notifica per sapere quale elemento è cambiato. A ogni notifica relativa a un pacchetto:
- Chiama purchases.subscriptionsv2.get con il purchaseToken.
- Leggi ogni lineItem e il suo expiryTime. Google dice che devi aggiornare l'expiryTime di tutti gli elementi, non solo di quello che ti aspetti.
- Concedi o rimuovi l'accesso per productId, non per token di acquisto.
- Interroga la Voided Purchases API come rete di sicurezza. Copre gli ultimi 30 giorni.
Periodo di tolleranza e sospensione dell'account valgono per il pacchetto
I problemi di pagamento colpiscono tutti gli elementi insieme. Google sceglie il periodo di tolleranza più breve tra gli elementi attivi e lo applica all'intero rinnovo. Durante la tolleranza, l'utente conserva tutti gli elementi. Con l'account sospeso, l'accesso a tutti gli elementi è sospeso. Se il pagamento non si sblocca mai, gli elementi rifiutati scadono e gli altri riprendono per il resto dei rispettivi periodi di fatturazione.

Quanto ti costa in denaro ogni percorso di rimborso
I componenti aggiuntivi di solito corrispondono a qualcosa che paghi tu. Lo spazio cloud extra te lo fattura il tuo fornitore di storage. Un pacchetto di crediti IA si paga in chiamate all'API del modello. Una postazione in più significa più calcolo, e un livello per creator può generare un pagamento. Ognuno di questi costi nasce quando l'utente usa il componente, e un rimborso restituisce il prezzo senza restituirti nessuno di essi.
Rimborsare troppo
L'errore costoso è ricorrere a fullRefund o proratedRefund quando il reclamo riguarda un solo componente aggiuntivo. Entrambi revocano tutti gli elementi, quindi restituisci anche il prezzo della base e perdi un abbonato che voleva restare. Un itemBasedRefund restituisce solo l'ultimo addebito di quel componente. Quando è bloccato, un orders.refund sull'ultimo ordine di quell'elemento restituisce il denaro senza interrompere nulla.
Rimborsi parziali e commissioni
Play Console ti consente di emettere rimborsi parziali sugli ordini di abbonamento, e Google dice che la percentuale di rimborso si applica anche al tuo pagamento e alla commissione di servizio. Rimborsa metà di un ordine e ti torna indietro metà della commissione di Google. I tuoi costi per erogare quel componente, invece, no.
Storni su un pacchetto
Per gli ordini effettuati dopo il 3 agosto 2026, Google sposta i costi degli storni sugli sviluppatori. Quando uno storno va a buon fine, paghi il prezzo di acquisto meno la commissione di servizio di Play, più le commissioni addebitate dalla banca. Un ordine in pacchetto con diversi componenti aggiuntivi è un ordine più grande da perdere. I log di utilizzo per componente, collegati all'ID account offuscato, sono ciò che invieresti in una revisione di 24 ore.
Una checklist per i rimborsi dei componenti aggiuntivi
- Offri in app un modo per rimuovere un componente aggiuntivo, visto che Google Play non lo offre.
- Salva productId, expiryTime e latestSuccessfulOrderId di ogni lineItem a ogni notifica.
- Usa itemBasedRefund come opzione predefinita quando il problema è un solo componente.
- Quando l'abbonamento è nel periodo di tolleranza o con l'account sospeso, rimborsa invece l'ordine dell'elemento con orders.refund.
- Non chiamare mai il metodo deprecato purchases.subscriptions.refund su un pacchetto.
- Registra l'utilizzo dei componenti per account, così una revisione dello storno può partire entro 24 ore.
- Monitora i tassi di rimborso per componente aggiuntivo, non solo per abbonamento, così un componente debole non si nasconde nei numeri del piano base.
Domande frequenti
- Un utente può annullare un solo componente aggiuntivo di un abbonamento Google Play?
- Non da Google Play. La pagina di assistenza di Google dice che gli utenti possono annullare l'abbonamento base e i componenti aggiuntivi solo insieme. La tua app può offrire la rimozione di un singolo componente, che poi scade alla fine del periodo di fatturazione in corso.
- Come rimborso un componente aggiuntivo senza annullare l'abbonamento?
- Chiama purchases.subscriptionsv2.revoke con un itemBasedRefund che indica il productId del componente. Se altri elementi restano attivi, Google revoca e rimborsa per intero solo quell'elemento. Puoi anche rimborsare l'ultimo ordine dell'elemento con orders.refund senza il flag revoke, che restituisce il denaro e lascia invariato l'accesso.
- Perché la mia chiamata itemBasedRefund non è andata a buon fine?
- Google la blocca quando l'abbonamento è in uno stato di pagamento rifiutato, quando l'elemento non è posseduto o è scaduto, e sugli abbonamenti prepagati. Controlla l'expiryTime della voce e lo stato dell'abbonamento prima di chiamare.
- Un rimborso proporzionale funziona su un abbonamento con componenti aggiuntivi?
- Sì, ma revoca tutto. Google rimborsa l'ultimo ordine di ogni elemento, in proporzione al tempo rimanente fino al prossimo rinnovo, e l'accesso a tutti gli elementi termina subito.
- Quale RTDN mi dice che un componente aggiuntivo è stato rimborsato?
- La guida di Google dice che la revoca genera SUBSCRIPTION_REVOKED e una VoidedPurchaseNotification, e che SUBSCRIPTION_ITEMS_CHANGED copre le modifiche a un elemento di un pacchetto. Poiché nei pacchetti manca il subscriptionId, chiama purchases.subscriptionsv2.get e leggi ogni lineItem per vedere cosa è cambiato.
Fonti e approfondimenti
- Google Play Billing: Subscription with add-ons
- Google Play Help: Subscriptions with add-ons
- Google Play Developer API: purchases.subscriptionsv2.revoke
- Google Play Developer API: orders.refund
- Google Play Billing: Manage subscriptions and one-time purchases
- Play Console Help: Issue refunds and cancel orders
- Google Play Billing: Real-time developer notifications reference
- Google Play Billing: Subscription lifecycle
- Google Play Help: Request a refund on Google Play
- Google Play Developer API: orders.reviewrefund
- Play Console Help: Updates to refund protection and chargeback cost responsibility
RefundHalt
Il pilota automatico dei rimborsi per App Store e Google Play
Continua a leggere
Le richieste di rimborso eccessive possono costarti più dei rimborsi stessi, perché entrambi gli store le trattano come un segnale di qualità
La linea guida 5.6.4 di Apple indica le richieste di rimborso eccessive come segnale che un'app non rispetta gli standard di qualità, e l'accordo di distribuzione di Google le consente di rimuovere le app dei nuovi sviluppatori in base ai tassi di rimborso. Ecco cosa dice ciascuno store, quanto costa una rimozione e come restarne alla larga.
Verifica le notifiche server dell'App Store prima di agire su un rimborso, perché chiunque può inviare richieste al tuo URL di webhook
Una notifica di rimborso è solo una richiesta HTTPS finché non ne controlli la firma. Ecco come verificare le notifiche server dell'App Store e i messaggi RTDN di Google Play, che cosa firma ciascuno store e quanto ti costa un rimborso falsificato o respinto per errore.