Un rimborso di Family Sharing annulla un solo pagamento ma può lasciare altre cinque persone a usare ancora la tua app, e solo il tuo server può escluderle
Un rimborso di Family Sharing annulla un solo pagamento ma può lasciare fino a cinque membri della famiglia sulle tue funzioni a pagamento. Apple invia un REVOKE e si aspetta che sia il tuo server a terminare l'accesso. Ecco come funzionano i rimborsi condivisi in famiglia e quanto ne costa uno.

Punti chiave
- Apple contrassegna ogni transazione condivisa in famiglia con un inAppOwnershipType FAMILY_SHARED e ogni acquisto diretto con PURCHASED. Il campo compare solo sugli acquisti in-app non consumabili e sugli abbonamenti a rinnovo automatico, i due tipi di prodotto supportati da Family Sharing.
- Un singolo acquisto condivisibile in famiglia può dare diritto fino a sei persone, l'acquirente più cinque membri della famiglia, quindi un solo pagamento può muovere il calcolo, le chiamate API, lo storage e i pagamenti che il tuo prodotto spende per sei persone.
- Quando Apple rimborsa la persona che ha comprato un acquisto condiviso, invia un App Store Server Notification REVOKE, e revocare l'accesso, inclusa ogni copia condivisa in famiglia, è compito del tuo server. Apple restituisce il denaro ma non chiude i tuoi diritti al posto tuo.
- Una transazione FAMILY_SHARED in un REVOKE porta un revocationDate solo quando la revoca è stata causata da un rimborso all'acquirente. Se un membro della famiglia semplicemente lascia il gruppo, lo stesso REVOKE arriva senza revocationDate, secondo gli stessi ingegneri di Apple.
- Apple ritarda un nuovo acquisto condiviso in famiglia di circa un'ora prima che raggiunga i membri della famiglia, di proposito, così che l'acquirente abbia il tempo di disattivare la condivisione prima che chiunque altro ottenga l'accesso.
- Attivare Family Sharing su un acquisto in-app in App Store Connect non può essere annullato, quindi una volta che un prodotto è condivisibile resta condivisibile, e la tua gestione dei rimborsi deve tenere conto delle transazioni FAMILY_SHARED da quel momento in poi.
- I consumabili non vengono mai condivisi in famiglia, quindi un membro della famiglia non attiva mai un CONSUMPTION_REQUEST né compare nella tua rendicontazione dei consumi. I rimborsi di Family Sharing riguardano sempre e solo i non consumabili e gli abbonamenti a rinnovo automatico.
Un solo acquisto in un gruppo Family Sharing può consegnare la tua app a sei persone. Chi ha pagato è una di loro. Le altre cinque non hanno mai aperto il portafoglio, e Apple si aspetta comunque che la tua app funzioni per tutte. Questo è il patto che accetti nel momento in cui attivi Family Sharing per un acquisto in-app. È anche il motivo per cui un rimborso di Family Sharing è una bestia diversa da uno ordinario. Quando l'acquirente riottiene i suoi soldi, la vendita si annulla per un account, ma l'accesso che hai concesso ad altre cinque persone al massimo non si spegne da solo. Deve farlo il tuo server, e se è stato scritto per sorvegliare solo l'acquirente, non lo farà.
Ecco il quadro completo in un unico posto. Questo articolo ripercorre come Apple contrassegna un acquisto condiviso, l'unico campo che distingue l'acquirente dalla famiglia, esattamente quando Apple ti invia un REVOKE e come leggerlo, il dettaglio silenzioso che separa un rimborso da qualcuno che semplicemente lascia la famiglia, e quanto costa davvero un rimborso condiviso una volta che conti il calcolo che hai già speso per persone che non ti hanno mai pagato.
Cosa distribuisce Family Sharing, e a quante persone
Attiva Family Sharing per un prodotto e cambi chi è il tuo cliente pagante. Un gruppo famiglia su Apple può contenere fino a sei persone, un organizzatore e fino a cinque membri. Quando chiunque nel gruppo compra un prodotto condivisibile in famiglia, tutti nel gruppo ottengono l'accesso. Non pagano. Non compaiono nel tuo fatturato. Compaiono semplicemente nella tua app con un diritto valido, perché Apple emette a ciascuno di loro una transazione che punta allo stesso acquisto.
Solo due tipi di prodotto sono condivisibili, e i consumabili non sono tra questi
Family Sharing copre esattamente due tipi di acquisto in-app: non consumabili e abbonamenti a rinnovo automatico. I consumabili, i prodotti a monete e crediti, non vengono mai condivisi, ed è per questo che un membro della famiglia non attiva mai un CONSUMPTION_REQUEST né compare nella tua rendicontazione dei consumi. Se la tua app vende solo consumabili, i rimborsi di Family Sharing non sono un tuo problema. Se vendi uno sblocco a vita o un piano ricorrente, lo sono.
Il campo che distingue un acquirente da un beneficiario
Ogni transazione che Apple emette porta un inAppOwnershipType. Ha due valori. PURCHASED significa che questo account ha pagato il prodotto e può gestirlo, incluso annullarlo o richiederne il rimborso. FAMILY_SHARED significa che questo account è un membro della famiglia che ha accesso tramite l'acquisto di qualcun altro. Entrambi danno diritto alla persona di usare il tuo prodotto. Solo uno di loro ha pagato. Il campo è sulla transazione StoreKit, sulla ricevuta e sull'App Store Server API, quindi puoi leggerlo ovunque tu controlli già i diritti.
| inAppOwnershipType | Chi è | Può gestire o rimborsare l'acquisto | Ti ha pagato |
|---|---|---|---|
| PURCHASED | L'account che ha comprato il prodotto | Sì | Sì |
| FAMILY_SHARED | Un membro della famiglia con accesso condiviso | No | No |
Come un rimborso di Family Sharing raggiunge il tuo server
Un rimborso su un acquisto condiviso inizia nello stesso modo di qualsiasi rimborso Apple. L'acquirente, l'unica persona che può, chiede ad Apple i suoi soldi indietro. Apple decide. Se Apple lo concede, l'acquisto dell'acquirente viene annullato e Apple invia al tuo server un App Store Server Notification REVOKE. Sia la V1 sia la V2 della notifica lo trasportano. Il REVOKE è il tuo unico segnale che il diritto che vi sta dietro, e ogni sua copia condivisa in famiglia, è ora nullo.
Non revocare una transazione, rileggi l'intera cronologia
L'indicazione di Apple su un REVOKE è netta: non trattarlo come un singolo interruttore. Quando ne ricevi uno, percorri l'intera cronologia delle transazioni del cliente e ricostruisci i suoi diritti da zero, perché una persona può avere più di una transazione che concede lo stesso prodotto o uno diverso. Revoca solo la transazione nominata nella notifica e puoi lasciare un membro della famiglia rimborsato con l'accesso attivo, oppure escludere qualcuno che ha ancora un secondo diritto valido. Ristabilisci il quadro completo ogni volta.

L'unico dettaglio che separa un rimborso da una rottura familiare
Ecco la trappola che costa a un team un pomeriggio di debugging. Un REVOKE può significare due cose molto diverse per una transazione FAMILY_SHARED, e il modo per distinguerle è un campo che a volte è semplicemente assente. Quando l'acquirente ottiene un rimborso, la transazione FAMILY_SHARED arriva con un revocationDate. Quando un membro della famiglia semplicemente lascia il gruppo, lo stesso tipo di REVOKE arriva senza alcun revocationDate. Gli ingegneri del commercio di Apple lo hanno detto direttamente sui forum per sviluppatori. In entrambi i casi togli l'accesso, ma solo quello con la data è un rimborso, e solo il rimborso è quello che ha anche annullato un pagamento.
Quanto ti costa davvero un rimborso condiviso
Segui il denaro, perché è qui che Family Sharing cambia silenziosamente i conti. Un rimborso normale annulla una vendita. Apple restituisce il prezzo all'acquirente e ridà la sua commissione, quindi il lato store va quasi in pari. Ciò che non torna mai è quanto hai già speso per erogare il prodotto. Con Family Sharing, non l'hai speso una volta sola. L'hai speso per un massimo di sei persone. L'acquirente e fino a cinque membri della famiglia hanno ciascuno fatto girare il tuo calcolo, chiamato le tue API, riempito il tuo storage e prelevato qualsiasi pagamento tu finanzi, tutto sulla forza di un solo pagamento.
Ora l'acquirente chiede il rimborso. L'unico pagamento si annulla. L'accesso di ogni membro della famiglia dovrebbe terminare nello stesso momento, perché la cosa che giustificava il servirli, un solo acquisto pagato, non c'è più. Se il tuo server revoca solo la transazione PURCHASED e lascia attive quelle FAMILY_SHARED, fino a cinque persone tengono le tue funzioni a pagamento gratis, e tu continui a pagare per servirle, senza più nulla nel sistema su cui fatturare. Non è un errore di arrotondamento. È cinque volte il costo di erogazione della vendita che hai appena restituito.
| Cosa revochi su un rimborso condiviso | Chi perde l'accesso | Per cosa continui a pagare |
|---|---|---|
| L'intera cronologia delle transazioni | L'acquirente e tutti i membri della famiglia | Nulla, l'accesso finisce per tutti |
| Solo la transazione PURCHASED | Il solo acquirente | Fino a cinque membri della famiglia, ancora sul tuo calcolo, API, storage e pagamenti |
| Nulla, perché hai mancato il REVOKE | Nessuno | L'acquirente e fino a cinque membri, tutti gratis |
Gli abbonamenti rendono la falla ricorrente
Per un non consumabile, un membro della famiglia non revocato è una perdita una tantum che dura finché non te ne accorgi. Per un abbonamento a rinnovo automatico è peggio, perché il diritto era già ricorrente. Un rimborso sull'ordine dell'abbonamento dovrebbe terminare la condivisione per l'intero gruppo, ma un membro della famiglia lasciato attivo mantiene il livello a pagamento a ogni periodo di fatturazione in cui non lo chiudi. La soluzione è la stessa, ristabilire i diritti dall'intera cronologia a ogni REVOKE, ma il costo di saltarla si accumula.
Farlo bene, e testarlo prima che lo faccia un rimborso vero
Non c'è nulla di esotico da costruire qui. L'intero lavoro è ancorare l'accesso al diritto, non all'acquirente, e ricostruire quell'accesso a ogni REVOKE.
- Memorizza l'accesso rispetto alla transazione e al suo
inAppOwnershipType, non rispetto a un singolo account acquirente, così che una transazioneFAMILY_SHAREDconceda l'accesso da sola e possa essere revocata da sola. - Su qualsiasi notifica REVOKE, rileggi l'intera cronologia delle transazioni del cliente e ricalcola i diritti, invece di spegnere l'unica transazione nominata.
- Tratta una transazione
FAMILY_SHAREDcon unrevocationDatecome un rimborso e termina l'accesso di quel membro. Tratta una senzarevocationDatecome un'uscita dalla famiglia e terminala comunque. - Non affrettare un acquisto condiviso appena effettuato in servizio. Apple lo trattiene per circa un'ora così che l'acquirente possa tirarsi indietro, quindi rispetta la transazione che Apple emette davvero invece di concedere al tocco d'acquisto.
- Fai le prove. Lo strumento Testing Family Sharing di Apple ti permette di simulare una transazione condivisa, e un rimborso in sandbox scatena lo stesso REVOKE che riceverà il tuo server di produzione.
Fai questo e un rimborso di Family Sharing diventa un non evento. L'acquirente riottiene i suoi soldi, l'intero gruppo perde l'accesso nello stesso battito, e tu smetti di pagare per servire persone che non ti stavano mai pagando.
Domande frequenti
- Cos'è inAppOwnershipType e quali sono i suoi valori?
- inAppOwnershipType è un campo che Apple mette su ogni transazione di acquisto in-app, con due valori: PURCHASED per l'account che ha comprato il prodotto, e FAMILY_SHARED per un membro della famiglia che ha accesso tramite l'acquisto di qualcun altro. Compare solo sui non consumabili e sugli abbonamenti a rinnovo automatico, i tipi di prodotto supportati da Family Sharing.
- Apple revoca automaticamente l'accesso dei membri della famiglia quando l'acquirente ottiene un rimborso?
- No. Apple annulla il pagamento dell'acquirente e invia al tuo server un App Store Server Notification REVOKE, ma revocare il diritto, inclusa ogni copia condivisa in famiglia, è compito del tuo server. Se non agisci sul REVOKE, i membri della famiglia mantengono l'accesso dopo il rimborso.
- Come distinguo un rimborso di Family Sharing da un membro della famiglia che lascia il gruppo?
- Controlla la presenza di un revocationDate sulla transazione FAMILY_SHARED. Quando la revoca è causata da un rimborso all'acquirente, la transazione porta un revocationDate. Quando un membro della famiglia semplicemente lascia il gruppo, il REVOKE arriva senza revocationDate. Entrambi i casi terminano il diritto, ma solo quello con la data ha annullato un pagamento.
- Quante persone possono usare un singolo acquisto condiviso in famiglia?
- Fino a sei, l'organizzatore più un massimo di cinque membri della famiglia. Un solo pagamento può quindi dare diritto a sei persone al tuo prodotto, ed è per questo che un rimborso condiviso può lasciare fino a cinque persone sulle tue funzioni a pagamento se revochi solo la transazione dell'acquirente.
- Posso disattivare Family Sharing per un acquisto in-app dopo averlo attivato?
- No. Attivare Family Sharing su un acquisto in-app in App Store Connect non può essere annullato. Una volta che un prodotto è condivisibile resta condivisibile, quindi la tua gestione dei rimborsi deve tenere conto delle transazioni FAMILY_SHARED da quel momento in poi.
- Gli acquisti consumabili vengono condivisi con la famiglia?
- No. Family Sharing copre solo i non consumabili e gli abbonamenti a rinnovo automatico. I consumabili non vengono mai condivisi, quindi un membro della famiglia non attiva mai un CONSUMPTION_REQUEST né compare nella tua rendicontazione dei consumi.
Fonti e approfondimenti
- Apple Developer: inAppOwnershipType (App Store Server API)
- Apple Developer Tech Talks: Explore Family Sharing for In-App Purchases
- Apple Developer: Supporting Family Sharing in your app
- Apple Developer: Testing Family Sharing
- App Store Connect Help: Turn on Family Sharing for in-app purchases
- Apple Developer Forums: family sharing REVOKE server-to-server notifications
- Apple Support: How Family Sharing works
RefundHalt
Il pilota automatico dei rimborsi per App Store e Google Play
Continua a leggere
La gestione dei rimborsi si rompe in modi silenziosi, quindi testa i rimborsi degli acquisti in-app nel sandbox prima che lo faccia un cliente reale
La tua gestione dei rimborsi viene eseguita solo dopo che il cliente se n'è già andato, quindi un bug al suo interno resta invisibile finché non costa denaro reale. Entrambi gli store ti permettono di attivare prima un rimborso in un ambiente di test. Ecco come testare i rimborsi degli acquisti in-app sull'App Store e su Google Play prima che uno sia reale.
Ciò che un rimborso costa alla tua app è più del prezzo che restituisci
Il prezzo rimborsato è la voce più piccola del conto. Un rimborso annulla anche la commissione dello store, quindi perdi la tua quota, e il calcolo, le chiamate API, lo storage e i pagamenti già spesi sono persi. Un chargeback su Google Play dopo il 3 agosto 2026 aggiunge sopra la commissione della banca. Ecco il conto completo.