Ogni rinnovo ha il proprio ID ordine di Google Play, ed è quel numero che devi controllare prima di rimborsare chiunque
Un ID ordine di Google Play come GPA.1234-5678-9012-34567..2 indica un addebito preciso. Ecco come leggere il suffisso del rinnovo, cercare un ordine in Play Console o con la Orders API e rimborsare l'addebito a cui si riferisce il cliente senza pagare per quello sbagliato.

Punti chiave
- Un ID ordine di Google Play ha la forma GPA.1234-5678-9012-34567, e i rinnovi degli abbonamenti aggiungono un suffisso, quindi GPA.1234-5678-9012-34567..0 è il primo rinnovo di quell'abbonamento.
- getOrderId() della Play Billing Library restituisce l'ID dell'ordine iniziale per i rinnovi degli abbonamenti, non l'ID del rinnovo stesso, e restituisce null finché un acquisto è nello stato PENDING.
- Google ha aggiunto get e batchGet alla risorsa Orders della Play Developer API il 21 maggio 2025. batchGet accetta da 1 a 1.000 ID ordine distinti e fa fallire l'intera richiesta se anche uno solo non viene trovato.
- Un Order della Orders API ha uno stato PENDING, PROCESSED, CANCELED, PENDING_REFUND, PARTIALLY_REFUNDED o REFUNDED, oltre a developerRevenueInBuyerCurrency, al netto di rimborsi parziali, tasse e commissioni.
- Il metodo orders.refund di Google Play non può rimborsare ordini più vecchi di 3 anni, e passare revoke=true interrompe subito l'accesso del cliente all'abbonamento o all'articolo.
- In Play Console, Rimborsa e revoca (Refund and revoke) si applica all'ordine più recente di un abbonamento, mentre Solo rimborso (Refund only) si applica a un ordine precedente e lascia attivo l'abbonamento.
- Google Play gestisce da sé le richieste di rimborso entro 48 ore dall'acquisto. Dopo 48 ore indirizza il cliente allo sviluppatore, ed è di solito allora che un ID ordine arriva nella tua casella di supporto.
Guarda la fine del numero d'ordine prima di rimborsare un cliente Google Play. GPA.1234-5678-9012-34567 è il primo addebito di un abbonamento. GPA.1234-5678-9012-34567..2 è il terzo. Condividono la base, sono pagamenti diversi, e Play Console li tratta in modo diverso quando rimborsi. L'ID ordine di Google Play è l'unico identificativo che il cliente vede, quindi è quello che finisce nella tua casella di supporto. Se lo leggi bene, rimborsi una sola volta l'addebito che davvero ha infastidito il cliente.
Cosa ti dice un ID ordine di Google Play
La documentazione della Play Billing Library di Google mostra il formato con degli esempi. Un ID ordine inizia con GPA, seguito da gruppi di cifre. Per gli abbonamenti, ogni rinnovo riceve l'ID ordine di base più due punti e un contatore che parte da zero. Così l'acquisto originale non ha suffisso, il primo rinnovo è ..0, il secondo è ..1, e così via.
Il suffisso ti dice quindi a colpo d'occhio da quanto tempo qualcuno paga. Un cliente che scrive per GPA.3333-4137-0319-36762..11 è stato rinnovato dodici volte. Un cliente che cita solo l'ID di base o ha comprato qualcosa una volta sola o si riferisce al suo primissimo pagamento.
| ID ordine | Che cos'è |
|---|---|
| GPA.1234-5678-9012-34567 | Un acquisto singolo, o il primo addebito di un abbonamento |
| GPA.1234-5678-9012-34567..0 | Il primo rinnovo di quell'abbonamento |
| GPA.1234-5678-9012-34567..1 | Il secondo rinnovo |
| null nella Billing Library | Un acquisto ancora nello stato PENDING, prima che Google elabori il pagamento |
Dove compare l'ID ordine, e quale versione ottieni
È qui che i team inciampano. Ogni punto ti dà una forma diversa dello stesso ID.
- La ricevuta di Google Play del cliente mostra l'ID ordine dell'addebito a cui si riferisce, rinnovi inclusi.
- Nella tua app, Purchase.getOrderId() della Play Billing Library restituisce l'ID dell'ordine iniziale per i rinnovi degli abbonamenti. L'esempio di Google stesso: invece di GPA.1234-5678-9012-34567..0, ottieni GPA.1234-5678-9012-34567.
- Sul tuo server, purchases.subscriptionsv2 assegna a ogni voce un latestSuccessfulOrderId, l'ID dell'ultimo ordine andato a buon fine per quell'articolo. Google ha aggiunto il campo il 21 maggio 2025.
- Nella Voided Purchases API, orderId identifica in modo univoco un acquisto singolo, un acquisto di abbonamento o un rinnovo di abbonamento. La documentazione di Google dice di usare orderId, non il token di acquisto, per distinguere i rinnovi.
A cosa serve invece il token di acquisto
Il token di acquisto identifica l'acquisto nel suo insieme. Per un abbonamento, un solo token copre l'addebito originale e tutti i rinnovi successivi. Per questo è la chiave giusta per i diritti di accesso e quella sbagliata per un rimborso. Rimborsi e chargeback riguardano un singolo addebito, e solo l'ID ordine indica un singolo addebito.
Come cercare un ordine di Google Play
In Play Console
Gestione ordini (Order management) accetta nella casella di ricerca un ID ordine o l'indirizzo email completo del cliente. Ogni ordine mostra uno di questi stati: Elaborato, Annullato, In attesa, Rimborso in attesa, Rimborsato, Rimborso parziale in attesa o Rimborsato parzialmente. Se il cliente ti dà un'email invece di una ricevuta, cerca per email, scegli l'addebito in base alla data, poi conferma il suffisso prima di agire.
Con la Orders API
Dal 21 maggio 2025, la risorsa Orders della Google Play Developer API offre orders.get per un ordine e orders.batchget per un elenco. In pratica contano alcuni limiti:
- batchget accetta da 1 a 1.000 ID ordine per richiesta, e devono essere distinti.
- Se anche un solo ID ordine non viene trovato o non appartiene al pacchetto, l'intera richiesta batchget fallisce.
- Le chiamate alla Orders API rientrano nella tua quota della Play Developer API, che per impostazione predefinita è di 200.000 chiamate al giorno.
La parte utile è l'Order che ricevi. Contiene lo stato dell'ordine, il suo purchaseToken, createTime e lastEventTime, il totale e l'imposta, un salesChannel come IN_APP o PLAY_STORE, e un orderHistory con gli eventi di elaborazione, annullamento, rimborso e rimborso parziale. Contiene anche developerRevenueInBuyerCurrency, che Google definisce come i tuoi ricavi nella valuta dell'acquirente, al netto di rimborsi parziali, tasse e commissioni. Quando Google è il merchant of record, l'indirizzo dell'acquirente riporta solo il paese.
| Stato dell'ordine | Cosa dice la documentazione di riferimento di Google |
|---|---|
| PENDING | Creato e in attesa di elaborazione |
| PROCESSED | Elaborato correttamente |
| CANCELED | Annullato prima dell'elaborazione |
| PENDING_REFUND | Un rimborso richiesto è in attesa di elaborazione |
| PARTIALLY_REFUNDED | È stata rimborsata una parte dell'importo dell'ordine |
| REFUNDED | È stato rimborsato l'intero importo dell'ordine |
Rimborsare l'ordine giusto
Una volta capito a quale addebito si riferisce il cliente, Play Console ti offre una scelta che dipende dalla posizione di quell'ordine nell'abbonamento.
| Opzione | Si applica a | Cosa succede |
|---|---|---|
| Rimborsa e revoca | L'ordine più recente di un abbonamento | Rimborso emesso, abbonamento rimosso subito, rinnovi futuri annullati |
| Solo rimborso | Un ordine precedente di un abbonamento | Rimborso emesso, l'abbonamento resta attivo |
| Rimborso parziale | Acquisti in-app e abbonamenti ordinati dopo marzo 2018, non le app a pagamento | Qualsiasi percentuale inferiore al 100%, o un importo al netto delle imposte inferiore al totale dell'ordine |
| Annulla abbonamento | Un abbonamento attivo | Nessun rimborso, l'accesso dura fino alla fine del periodo di fatturazione in corso |
Tramite API, orders.refund riceve il nome del pacchetto e l'ID ordine. Gli ordini più vecchi di 3 anni non possono essere rimborsati. Il parametro facoltativo revoke, impostato su true, interrompe subito l'accesso all'abbonamento o all'articolo in-app. La guida di Google precisa anche che i rimborsi non si possono annullare una volta emessi, quindi l'ID ordine che passi è definitivo.
Perché compare un ordine da 0,00 $ per un abbonato?
Lo spiega la documentazione di Google sul ciclo di vita degli abbonamenti. Quando un utente si riabbona dalla tua app allo stesso piano base prima che l'abbonamento scada, Google Play crea un ordine da 0,00 $. Non gli viene addebitato nulla, perché ha già pagato il periodo in corso, e la fatturazione normale riprende alla data di rinnovo originale. Non è una prova gratuita né una promozione. Su quell'ordine non c'è niente da rimborsare. Se il cliente vuole indietro i soldi, trova l'ordine pagato che lo precede.
Quanto ti costa rimborsare l'ordine sbagliato
Un rimborso restituisce il prezzo. I rimborsi parziali funzionano allo stesso modo, in proporzione. L'esempio di Google: un rimborso parziale del 50% riprende anche il 50% del tuo pagamento e il 50% della commissione di servizio. Quello che non torna indietro è tutto ciò che hai speso per servire quel cliente: calcolo, chiamate ad API di terze parti, storage, eventuali compensi agli affiliati. Rimborsa l'ordine sbagliato e lo paghi due volte.
Ecco come succede. Un cliente con piano mensile scrive per l'addebito ..4, quello della settimana scorsa. Qualcuno del tuo team cerca per email, vede il primo ordine in cima e clicca Solo rimborso sull'ordine di base di mesi fa. Ora il cliente ha indietro i soldi di un periodo che ha usato. L'addebito di cui si lamentava resta intatto, e l'abbonamento continua a rinnovarsi. Può ancora chiedere alla sua banca di stornare l'addebito della settimana scorsa.

Ora la strada della banca è quella costosa. Per gli ordini effettuati dopo il 3 agosto 2026, Google afferma che, quando un chargeback va a buon fine, lo sviluppatore risponde del prezzo di acquisto, meno la commissione di servizio di Play, più le commissioni di chargeback addebitate dalla banca. I chargeback sono definitivi presso la banca. Un suffisso letto male può finire con l'equivalente di due rimborsi perso, più le commissioni.
Quali rimborsi non arrivano mai nella tua casella
La maggior parte dei rimborsi di Google Play non ha bisogno né di te né dell'ID ordine. La politica di rimborso di Google dice che un cliente può ottenere un rimborso tramite Google Play entro 48 ore dall'acquisto e che dopo 48 ore deve contattare lo sviluppatore. Google rimborsa e revoca anche gli abbonamenti che non confermi entro tre giorni. Lo scopri dopo tramite la Voided Purchases API, che riporta il voidedSource (0 per l'utente, 1 per lo sviluppatore, 2 per Google) e un voidedReason come Remorse, Chargeback o Unacknowledged_purchase.
Solo un flusso di rimborso di Google Play chiede la tua versione. Quando un chargeback richiede la revisione dello sviluppatore, hai 24 ore per rispondere tramite orders.reviewrefund con una preferenza di rimborso APPROVE, DECLINE o NEUTRAL e prove dell'utilizzo dell'acquisto. RefundHalt risponde a quella revisione entro il termine al posto tuo, usando i dati di utilizzo che hai già, così un ordine contestato riceve le tue prove invece del silenzio.
Una breve checklist per i ticket di supporto con ID ordine
- Chiedi l'ID ordine completo dalla ricevuta di Google Play, suffisso incluso.
- Cercalo in Play Console o con orders.get e controlla prima il suo stato.
- Verifica che la data dell'addebito corrisponda a quanto descrive il cliente.
- Usa Rimborsa e revoca solo sull'ordine più recente, e Solo rimborso su quelli precedenti.
- Annota l'ID ordine che hai rimborsato, così un successivo chargeback su un altro ordine è facile da individuare.
Domande frequenti
- Cosa significa ..0 alla fine di un ID ordine di Google Play?
- Indica il primo rinnovo di un abbonamento. Google Play assegna a ogni rinnovo l'ID ordine di base dell'abbonamento più due punti e un contatore che parte da zero, quindi GPA.1234-5678-9012-34567..0 è il primo rinnovo e ..1 il secondo. L'ID di base senza suffisso è l'addebito originale.
- Perché getOrderId() nella mia app restituisce un ID ordine diverso da quello della ricevuta del cliente?
- Perché la Play Billing Library restituisce l'ID dell'ordine iniziale per i rinnovi degli abbonamenti. L'esempio di Google è che, invece di GPA.1234-5678-9012-34567..0 per il primo rinnovo, getOrderId() restituisce GPA.1234-5678-9012-34567. Usa latestSuccessfulOrderId di purchases.subscriptionsv2 sul tuo server per ottenere l'ID del rinnovo stesso.
- Come cerco un ordine di Google Play tramite ID ordine?
- Cercalo in Gestione ordini di Play Console, che accetta un ID ordine o l'indirizzo email completo del cliente, oppure chiama orders.get nella Google Play Developer API. orders.batchget cerca da 1 a 1.000 ID ordine distinti alla volta, e l'intera richiesta fallisce se anche uno solo non viene trovato.
- Posso rimborsare un ordine di Google Play di più di un anno fa?
- Sì, fino a 3 anni. La documentazione di riferimento di orders.refund di Google dice che gli ordini più vecchi di 3 anni non possono essere rimborsati. Per un ordine precedente di un abbonamento, l'opzione Solo rimborso di Play Console restituisce i soldi e lascia attivo l'abbonamento.
- Perché esiste un ordine Google Play da 0,00 $ per un abbonato?
- Compare quando un utente si riabbona dalla tua app allo stesso piano base prima che l'abbonamento scada. All'utente non viene addebitato nulla perché ha già pagato il periodo in corso, e la fatturazione regolare riprende alla data di rinnovo originale. Google precisa che non significa che sia stata concessa una prova gratuita o uno sconto promozionale.
Fonti e approfondimenti
- Android Developers: Purchase (Play Billing Library), getOrderId
- Google Play Developer API: REST Resource orders
- Google Play Developer API: orders.batchget
- Google Play Developer API: orders.refund
- Google Play Developer API release notes
- Google Play Developer API: purchases.voidedpurchases
- Play Console Help: Issue refunds or cancel orders
- Google Play Billing: Subscription lifecycle
- Google Play Help: Apps, games and in-app purchases refund policies
- Google 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.