Tutti gli articoli
Playbook8 min di lettura

L'abuso ripetuto dei rimborsi ti costa due volte, ecco come gli store ti lasciano reagire

Il cliente che si fa rimborsare più e più volte non è un caso. L'abuso dei rimborsi ti costa il denaro restituito più il calcolo che hai già speso, ed entrambi gli store ti forniscono un segnale di identità, l'appAccountToken di Apple e l'ID account offuscato di Google, per collegare lo schema.

Un tornello in un atrio di transito in penombra con una figura che lo attraversa più e più volte, a illustrare l'abuso ripetuto dei rimborsi

Punti chiave

  • Solo due flussi di rimborso permettono a uno sviluppatore di presentare prove contro l'abuso dei rimborsi: il CONSUMPTION_REQUEST di Apple, con una finestra di 12 ore, e la revisione dei chargeback di Google Play tramite la Review Refund API, con una finestra di 24 ore.
  • L'appAccountToken di Apple è un UUID che generi e alleghi a un acquisto, e StoreKit lo lega alla transazione risultante, così il tuo server può ricondurre ogni rimborso all'account esatto che lo ha effettuato.
  • L'ID account offuscato di Google Play è una stringa con hash, limitata a 64 caratteri, che Google stessa usa per rilevare attività irregolari, come molti dispositivi che acquistano su un unico account in un breve arco di tempo.
  • Memorizzare dati personali in chiaro nell'ID account offuscato di Google fa bloccare i tuoi acquisti, quindi il campo deve essere un valore cifrato o un hash unidirezionale, mai un'e-mail grezza.
  • Il campo voidedReason di Google Play contrassegna friendly_fraud e fraud come motivi distinti da un normale rimborso di tipo remorse, il che ti permette di instradare gli abusatori recidivi verso una coda di revisione invece di un percorso automatico di rimborsa e dimentica.
  • Google afferma di aver bloccato oltre 2 miliardi di dollari di transazioni fraudolente e abusive nel 2022, e i campi di identità che alimentano quel sistema funzionano solo se li popoli a ogni acquisto.
  • Ogni acquisto rimborsato che mantiene il suo accesso è calcolo, archiviazione e spesa di API che continui a pagare su denaro che hai già restituito, e un rimborsatore recidivo moltiplica quella fattura di proposito.

Un singolo rimborso è un costo del fare impresa. Lo stesso account che si fa rimborsare per la quarta volta, dopo aver usato ciò che ha acquistato ogni volta, è abuso dei rimborsi, ed è uno schema che puoi vedere solo se ogni acquisto porta un'identità che controlli tu. Apple e Google ti danno entrambi quell'identità, ed entrambi ti danno una finestra stretta per presentarla allo store prima che un rimborso o un chargeback venga deciso. Perdi la finestra, o non alleghi mai l'identità, e un rimborsatore recidivo sembra esattamente uguale a un cliente insoddisfatto alla prima volta. Ecco come distinguerli, e quanto vale quella differenza in denaro.

Perché l'abuso dei rimborsi è un problema di identità, non di rimborso

Lo store decide il rimborso. Non puoi impedire a un cliente di chiedere, e nella maggior parte dei flussi non puoi impedire allo store di concedere. Quello che puoi fare è decidere se un dato account lo ha già fatto in passato, e se il contenuto che ha acquistato è stato davvero consegnato e usato. Entrambe sono domande sull'identità: quale dei tuoi utenti è dietro questa transazione, e qual è la sua storia. Se i tuoi acquisti non portano un identificatore stabile che rimanda ai tuoi stessi record utente, non puoi rispondere a nessuna delle due, e ogni rimborso arriva senza contesto.

Questo è il vero divario. La meccanica del rimborso è fissata dalla policy. Le prove che vi porti sono interamente tue da costruire, e cominciano al momento dell'acquisto, non al momento del rimborso.

Le due finestre in cui le prove cambiano l'esito

Ci sono esattamente due flussi in cui qualcosa che invii può spostare una decisione. Il CONSUMPTION_REQUEST di Apple scatta quando un cliente chiede un rimborso su un consumabile o un abbonamento a rinnovo automatico, e hai 12 ore per rispondere. La revisione dei chargeback di Google Play scatta quando un utente contesta un addebito con la sua banca, e hai 24 ore per rispondere tramite la Review Refund API. Ogni altro rimborso, il rimborso self-service di 48 ore di Play, un rimborso concesso dal supporto, un rimborso automatico per acquisto non riconosciuto, viene deciso senza di te.

Entrambi questi canali di prova sono molto più solidi quando la transazione porta già il tuo identificatore. Le informazioni di consumo di Apple possono includere l'appAccountToken insieme alla storia e alla spesa dell'account, e la revisione di Google può appoggiarsi all'ID account offuscato che tiene d'occhio fin dall'acquisto. Un account senza identificatore è un account senza storia da presentare.

I due campi di identità, fianco a fianco

Apple e Google hanno risolto lo stesso problema in modo quasi identico, con nomi diversi e regole diverse. Entrambi ti permettono di marcare un acquisto con un valore che rimanda al tuo stesso record utente. Nessuno dei due è attivo per impostazione predefinita. Entrambi sono inutili se non li imposti al momento dell'acquisto.

Apple: appAccountToken

appAccountToken è un UUID che generi e passi quando comincia un acquisto. StoreKit lo associa alla transazione risultante, e compare nei dati della transazione che il tuo server verifica e nelle informazioni di consumo che restituisci durante un CONSUMPTION_REQUEST. Poiché è il tuo valore, mappa una transazione dello store direttamente sull'account nel tuo database, senza e-mail né nome coinvolti. Deve essere un UUID reale, e qualsiasi altra cosa viene rifiutata. Apple ha poi aggiunto un endpoint Set App Account Token che può allegare o aggiornare il token su transazioni passate, inclusi acquisti effettuati fuori dalla tua app come i riscatti di codici promozionali.

Google Play: l'ID account offuscato

L'equivalente di Google è setObfuscatedAccountId, una stringa facoltativa legata all'account acquirente. La documentazione di Google stessa è netta sul suo scopo: Google Play lo usa per rilevare attività irregolari, come molti dispositivi che effettuano acquisti sullo stesso account in un breve arco di tempo, e per bloccare alcune transazioni fraudolente prima che si completino. È limitata a 64 caratteri, e non deve contenere dati personali in chiaro. Memorizza lì un'e-mail grezza e Google blocca l'acquisto senza mezzi termini, perché il campo si aspetta un valore cifrato o un hash unidirezionale. Un campo gemello, setObfuscatedProfileId, esiste per le app in cui un account contiene più profili.

CampoStoreTipo e limiteImpostato daPredefinitoCosa ne fa lo store
appAccountTokenAppleUUIDTu, all'acquistoNon impostatoLega la transazione al tuo utente, restituito nei dati di transazione e di consumo
obfuscatedAccountIdGoogle PlayStringa con hash, max 64 caratteriTu, all'acquistoNon impostatoRileva attività irregolari e blocca una parte delle frodi prima del completamento

Quanto costa davvero un rimborso di un abusatore recidivo

Il rimborso in sé è la parte più piccola del conto. Quando uno store concede un rimborso, restituisci il ricavo, e quello è ciò che è visibile a bilancio. Ciò che non è sulla riga del rimborso è tutto quello che hai speso per consegnare il prodotto che ora è gratis.

Immagina un consumabile che innesca lavoro reale: una generazione di immagini, un lotto di chiamate all'API di un fornitore di modelli, un'esportazione video, un pagamento a un creator. Hai pagato quel calcolo nel momento in cui il cliente lo ha usato. Il rimborso recupera il prezzo, ma non recupera la fattura del fornitore. Un rimborsatore recidivo è qualcuno che ha imparato che il contenuto sopravvive al rimborso, così ripete il ciclo: compra, consuma, si fa rimborsare, ripete. A ogni ciclo, ti accolli il costo di consegna una seconda volta.

Poi c'è lo spostamento dei costi dello store stesso. Dal 3 agosto 2026, Google Play sposta il prezzo di acquisto e le commissioni di chargeback della banca sullo sviluppatore per gli ordini effettuati dopo tale data. Un chargeback che prima era per lo più un problema di Google diventa il tuo ricavo più una commissione, e un contestatore recidivo alza quel numero ogni volta. I campi di identità sono ciò che ti permette di alimentare la Review Refund API con le prove per contestare una disputa illegittima entro la finestra di 24 ore.

Google presenta la scala senza giri di parole: afferma di aver bloccato oltre 2 miliardi di dollari di transazioni fraudolente e abusive nel 2022. Quel numero esiste perché i segnali, l'ID account offuscato tra questi, erano popolati. Un'app che spedisce acquisti con campi di identità vuoti rinuncia a quella protezione.

Un'impronta digitale letta su un sensore di vetro illuminato, a illustrare come i campi di identità dello store colleghino un acquisto all'account dietro l'abuso dei rimborsi

Come cogliere i rimborsatori recidivi prima che lo store decida

Marca ogni acquisto con un'identità che è tua

Imposta appAccountToken su ogni acquisto StoreKit e setObfuscatedAccountId su ogni acquisto Play Billing, entrambi generati dal tuo stesso record utente. Su Apple, usa un UUID reale mappato all'account. Su Google, applica l'hash alla chiave dell'account così che nessun dato personale viaggi in chiaro. Fallo al momento dell'acquisto, perché su Google è l'unico passo che non puoi recuperare in seguito.

Tieni un registro indicizzato su quell'identità

Memorizza ogni acquisto, consegna, evento di consumo e rimborso a fronte dell'identificatore. Quando arriva un CONSUMPTION_REQUEST o una revisione di chargeback, la storia completa dell'account, rimborsi precedenti inclusi, è a una sola ricerca di distanza. Le informazioni di consumo di Apple hanno campi espliciti proprio per questo: consumptionStatus, deliveryStatus, playTime, accountTenure, lifetimeDollarsPurchased, e la tua refundPreference.

Leggi voidedReason e instrada gli abusatori in modo diverso

Quando un acquisto Google viene annullato, il campo voidedReason ti dice perché, e friendly_fraud e fraud sono valori separati da un normale rimborso di tipo remorse. Instrada quelli verso una coda di revisione e una policy più severa, non lo stesso percorso automatico di un rimborso alla prima volta. La guida di Google stessa è un modello a più avvertimenti: avverti un primo trasgressore, prendi misure più decise sui recidivi, e disabilita gli acquisti per un account che insiste.

Rispondi alla finestra ogni volta

Le prove contano solo all'interno delle due finestre. Automatizza la risposta al CONSUMPTION_REQUEST perché scatti ben entro le 12 ore, e la revisione di chargeback perché scatti entro le 24. Una storia perfetta che invii in ritardo è una storia che lo store non legge mai.

Segnale che vuoi cogliereDove si trovaIl campo o il flusso che lo rivela
Stesso account, molti dispositivi, breve arco di tempoGoogle PlayRilevamento di attività irregolari dell'ID account offuscato
Questo account si è già fatto rimborsareIl tuo registroStoria indicizzata su appAccountToken o sull'ID account offuscato
Il contenuto è stato consegnato e consumatoAppledeliveryStatus e consumptionStatus nelle info di consumo
Una disputa è in realtà frode del titolareGoogle PlayValore friendly_fraud di voidedReason

Cosa faranno e cosa non faranno gli store per te

Vale la pena essere precisi sulla divisione del lavoro, perché è facile supporre che gli store gestiscano l'abuso, e per lo più non ti avvisano quando non lo fanno. Google usa attivamente l'ID account offuscato per bloccare una parte delle frodi prima che un acquisto si completi, e i suoi sistemi ne intercettano una gran parte a livello di piattaforma. Apple decide ogni rimborso da sola e tratta le tue informazioni di consumo come un input, mai un voto. Nessuno store tiene la tua lista di abusatori al posto tuo, deduce un consumabile rimborsato dal tuo saldo, né dice no a un rimborsatore recidivo per tuo conto. L'identità è dello store per agire ai margini e tua per agire in tutto il resto.

Questa è la stessa ragione per cui RefundHalt indicizza tutto sull'identità dell'acquisto: un rimborso, una revisione di chargeback e una richiesta di consumo per lo stesso account si risolvono in un'unica storia, così un rimborsatore recidivo emerge come uno schema la prima volta che ripete, non dopo la quarta fattura che hai già pagato.

Domande frequenti

Cos'è l'abuso dei rimborsi in un'app?
L'abuso dei rimborsi è un cliente che richiede rimborsi ripetutamente dopo aver ricevuto e usato ciò che ha acquistato, così da tenere il contenuto o il beneficio pur riavendo indietro il denaro. Sugli store di app di solito si manifesta come lo stesso account che si fa rimborsare consumabili o abbonamenti più e più volte, o come friendly fraud, dove un addebito legittimo viene contestato con la banca.
Come collego un acquisto in-app a un utente specifico?
Su Apple, genera un UUID e passalo come appAccountToken quando l'acquisto inizia, e StoreKit lo lega alla transazione e lo restituisce nei dati di transazione e di consumo. Su Google Play, chiama setObfuscatedAccountId con un valore con hash legato all'account. Entrambi mappano una transazione dello store sul tuo stesso record utente senza esporre dati personali.
Apple o Google possono dirmi che un account è un rimborsatore recidivo?
Non direttamente. Google usa l'ID account offuscato per rilevare attività irregolari e bloccare una parte delle frodi prima dell'acquisto, e Apple ti permette di presentare la storia dell'account durante una richiesta di consumo, ma nessuno store ti consegna una lista di rimborsatori recidivi. La costruisci tu stesso a partire dal tuo registro indicizzato sui campi di identità.
Perché Google blocca il mio acquisto quando imposto l'ID account?
Perché l'ID account offuscato non deve contenere dati personali in chiaro. Memorizzarvi qualcosa come un indirizzo e-mail grezzo fa sì che Google Play blocchi l'acquisto. Usa un valore cifrato o un hash unidirezionale, e mantienilo entro il limite di 64 caratteri.
Contestare i rimborsi tramite la richiesta di consumo ferma l'abuso?
Può ridurlo. Il CONSUMPTION_REQUEST è uno dei soli due flussi in cui le tue prove raggiungono lo store prima che decida, e la storia dell'account più i dati di consegna e consumo aiutano Apple a identificare l'abuso dei resi e la friendly fraud. Non è però un blocco. Apple decide comunque, e l'abuso che arriva tramite flussi non contestabili non è influenzato.

Fonti e approfondimenti

RefundHalt

Il pilota automatico dei rimborsi per App Store e Google Play

Continua a leggere

La prossima richiesta di rimborso è già in arrivo.

Configura RefundHalt nel tempo che impiegheresti a leggere un'altra e-mail dell'assistenza su un rimborso che non sei riuscito a contestare.