# Guideline 3.1.2: app rifiutata per l'abbonamento

> Guideline 3.1.2: l'importo addebitato deve essere il prezzo più visibile del paywall, con durata, rinnovo e link ai termini. Due rifiuti reali e la loro correzione.

Pagina originale: [Guideline 3.1.2: app rifiutata per l'abbonamento](https://devoria.fr/it/blog/guideline-3-1-2-app-rifiutata-abbonamento)
Autore: [Mehdi Azizi](https://devoria.fr/it/mehdi-azizi)
Pubblicazione: 2026-10-17
Ultima revisione dei contenuti: 2026-10-17


La guideline 3.1.2 regola gli abbonamenti con rinnovo automatico. Se Apple la cita, controlla due cose: **l'importo realmente addebitato deve essere il prezzo più visibile del tuo paywall**, e sia l'app sia la sua scheda devono indicare durata, prezzo e link funzionanti ai tuoi termini di utilizzo e alla tua privacy policy.

Ho ricevuto questo rifiuto su due delle mie app a ottobre 2026: Solys il 10, TradaZen il 12. Il problema era lo stesso: un prezzo settimanale in grande, il vero importo addebitato in piccolo. Qui trovi il testo della regola, i due casi e poi la checklist che applico adesso. Per gli altri motivi, leggi [perché Apple rifiuta un'app](https://devoria.fr/it/blog/app-rifiutata-da-apple-perche-casi-reali).

## Cosa dice la guideline 3.1.2?

La 3.1.2, "Subscriptions", si trova nella sezione 3 "Business" delle [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#3.1.2), parte 3.1 "Payments". Da qui l'oggetto della mail: "Guideline 3.1.2 - Business - Payments - Subscriptions". Ha tre commi, e **la lettera tra parentesi ti dice dove cercare**.

| Comma                             | Cosa chiede Apple                | Il rifiuto tipico                         |
| --------------------------------- | -------------------------------- | ----------------------------------------- |
| 3.1.2(a) Permissible uses         | Valore continuo, minimo 7 giorni | Abbonamento senza contenuti che evolvono  |
| 3.1.2(b) Upgrades and Downgrades  | Cambiare piano senza doppioni    | Due piani pagati contemporaneamente       |
| 3.1.2(c) Subscription Information | Cosa si ottiene, a quale prezzo  | Prezzo calcolato più grande dell'addebito |

Il testo della [3.1.2(c)](https://developer.apple.com/app-store/review/guidelines/#3.1.2c) è breve. Prima di chiedere a qualcuno di abbonarsi, devi "clearly describe what the user will get for the price": descrivere chiaramente cosa ottiene per quel prezzo. Poi rimanda all'allegato 2 (Schedule 2) della [licenza del programma sviluppatori](https://developer.apple.com/support/terms/apple-developer-program-license-agreement/#S2). Questo allegato elenca ciò che devi mostrare "clearly and conspicuously", in modo chiaro e ben visibile:

- il titolo dell'abbonamento;
- la sua durata;
- il suo prezzo, e il prezzo per unità se pertinente;
- i link alla tua privacy policy e ai tuoi termini di utilizzo, accessibili nell'app.

La regola sulla dimensione dei prezzi è nella [pagina di Apple dedicata agli abbonamenti](https://developer.apple.com/app-store/subscriptions/). Nel flusso d'acquisto, "the amount that will be billed must be the most prominent pricing element in the layout": l'importo che verrà addebitato deve essere l'elemento di prezzo più visibile. Un equivalente mensile o un risparmio restano ammessi, purché in posizione secondaria e più piccoli. La stessa pagina chiede, per una prova gratuita, di indicarne la durata e il prezzo addebitato alla fine.

## I due rifiuti 3.1.2(c) che ho ricevuto

### Solys: 0,38 € in grande, 19,99 € in piccolo

Solys è la mia sveglia che addormenta i tuoi social. Sul paywall dell'onboarding, la card "Annuale" mostrava "0,38 €/sett." a 21 punti e in grassetto. Sotto, a 15 punti: "cioè 19,99 €/anno". Ma quello addebitato è 19,99 €, non 0,38 €.

Il 10 ottobre 2026 Apple rifiuta la versione citando la 3.1.2(c). Il messaggio chiede che l'importo addebitato sia l'elemento di prezzo più chiaro e visibile. Prova gratuita, prezzo di lancio e prezzi calcolati devono restargli subordinati. Apple cita i suoi criteri: font, dimensione, colore e posizione.

Avevo tenuto quella grafica consapevolmente: una versione precedente di TradaZen, costruita sullo stesso principio, era stata accettata. Era una scommessa, e mi è costata un ciclo di revisione.

**La correzione**: "19,99 €/anno" in grande, "cioè 0,38 €/sett." come didascalia grigia sotto, in tutte le 30 lingue dell'app. Visto che il paywall è nel codice, è servita una nuova build prima di reinviare la versione.

![Una bilancia pesa i due prezzi del paywall di Solys, fusi in blocchi di piombo. Prima, "0,38 €/sett." a 21 punti pesa più di "cioè 19,99 €/anno" a 15 punti e la lancetta indica rifiutato; dopo, "19,99 €/anno" a 21 punti pesa di più e la lancetta indica conforme.](https://devoria.fr/ios/figures/balance-3-1-2c.svg)

### TradaZen: stesso motivo, due giorni dopo

TradaZen è il mio simulatore di trading. Il 12 ottobre 2026 la versione 1.5.1 viene rifiutata per la stessa regola. Il messaggio parla di un prezzo "weekly calculated" mostrato "more clearly and conspicuously than the billed amount": l'equivalente settimanale era più visibile dell'importo addebitato.

La mia prima correzione non bastava, e me ne sono accorto prima dell'invio. Avevo rimpicciolito "0,92 €/sett" lasciandolo a destra, sulla riga del prezzo. Ma la card dell'abbonamento settimanale mostrava, nella stessa colonna, il suo prezzo vero: "8,99 €/sett". I due importi si leggevano allo stesso livello. **Un prezzo calcolato messo nella colonna dei prezzi veri si legge come un prezzo addebitato**, anche se piccolo.

**La correzione adottata**: ogni card mostra il suo importo addebitato in grande, a destra. Il prezzo settimanale diventa una didascalia grigia sotto. A sinistra, solo il nome del piano. Alla revisione successiva, Apple non ha più segnalato la 3.1.2(c).

Le altre lezioni di questa app sono nel [caso studio TradaZen](https://devoria.fr/it/blog/caso-studio-tradazen-lanciare-app-iphone).

## Cosa ha rifiutato Apple, cosa è passato

Ecco le grafiche reali, in ordine, con il loro esito.

| Visualizzazione del prezzo                                        | Esito                                  |
| ----------------------------------------------------------------- | -------------------------------------- |
| TradaZen, versione precedente: prezzo settimanale in evidenza     | Accettato in una revisione precedente  |
| Solys: "0,38 €/sett." in grassetto, "19,99 €/anno" sotto          | Rifiutato il 10/10/2026, 3.1.2(c)      |
| TradaZen 1.5.1: prezzo settimanale più visibile dell'addebito     | Rifiutato il 12/10/2026, 3.1.2(c)      |
| TradaZen: prezzo settimanale ridotto, ma nella colonna dei prezzi | Scartato da me prima dell'invio        |
| TradaZen: addebito in grande a destra, settimana in didascalia    | Non più citato alla revisione seguente |
| Solys: "19,99 €/anno" in grande, settimana in didascalia grigia   | Corretto e reinviato ad Apple          |

La prima riga è la più importante. **Una revisione accettata non convalida il tuo paywall per la successiva.** Ogni versione ripassa davanti a un revisore, che può leggere la regola in modo più severo del precedente. L'unica grafica sicura è quella che rispetta il testo.

> L'importo addebitato è l'unico prezzo in grande. Qualsiasi equivalente, settimanale, mensile o giornaliero, è una didascalia più piccola e più chiara, mai al suo posto.

## La checklist del paywall conforme alla 3.1.2

È la lista che ora seguo su ogni paywall delle mie app, prima di ogni invio:

- Su ogni card, l'importo addebitato è il prezzo più grande, più contrastato e meglio posizionato.
- Ogni prezzo calcolato (settimanale, mensile, giornaliero) è una didascalia, più piccola e più chiara, sotto l'importo addebitato.
- Nessun prezzo calcolato occupa la colonna in cui un altro piano mostra il suo prezzo vero.
- La durata è scritta chiaramente: "all'anno", "a settimana".
- La prova gratuita indica la sua durata e l'importo addebitato alla fine della prova.
- Una frase dice che l'abbonamento si rinnova automaticamente e si disdice nelle impostazioni dell'account Apple.
- Ciò che l'abbonamento sblocca è scritto prima del pulsante d'acquisto.
- Un pulsante "Ripristina acquisti" è visibile sul paywall.
- I link ai termini di utilizzo e alla privacy policy sono sul paywall e si aprono.
- Se proponi più piani, stanno in un unico gruppo di abbonamenti, come consiglia Apple.
- La resa è verificata sull'iPhone più piccolo e con il prezzo più lungo. Su TradaZen provo il prezzo in dong vietnamita: un importo che va a capo rompe la gerarchia.

Se usi i paywall di RevenueCat, la [documentazione di RevenueCat](https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/app-review) fa lo stesso avvertimento: una variabile di prezzo mensile da sola non basta se l'importo addebitato e la sua periodicità non compaiono altrove. L'integrazione completa è in [RevenueCat: configurare un abbonamento in-app](https://devoria.fr/it/blog/revenuecat-abbonamento-in-app-ios), e gli errori di progettazione in [paywall iOS: 7 errori da principiante](https://devoria.fr/it/blog/paywall-ios-errori-principiante-vendite).

## I link a termini e privacy: nell'app e nella scheda

L'altra forma di rifiuto 3.1.2 non riguarda il paywall, ma i metadati. I messaggi pubblicati dagli sviluppatori sui [forum di Apple](https://developer.apple.com/forums/thread/807082) precisano dove sono attesi: il link alla privacy policy nel campo apposito di App Store Connect, e il link ai termini di utilizzo (EULA) nella descrizione o nel campo EULA.

La trappola viene dal contratto standard. Secondo la [guida di App Store Connect](https://developer.apple.com/help/app-store-connect/manage-app-information/provide-a-custom-license-agreement), se non aggiungi un contratto personalizzato si applica quello standard di Apple e "the license agreement link isn't shown on your App Store product page": nessun link compare sulla tua scheda. **Se usi il contratto standard, tocca a te mettere il suo link nella descrizione**, verso la tua pagina dei termini o verso il [contratto di licenza standard di Apple](https://www.apple.com/legal/internet-services/itunes/dev/stdeula/).

Sulle mie app in abbonamento, chiudo la descrizione con due righe, in ogni lingua della scheda. Ecco il modello, da adattare alla tua offerta e al tuo dominio:

```text
Prova gratuita di 7 giorni, poi abbonamento annuale o settimanale,
disdicibile in qualsiasi momento.
Termini: https://your-domain.com/terms
Privacy: https://your-domain.com/privacy
```

Apri entrambi i link prima di incollarli: una pagina non trovata vale quanto un link assente. Cosa deve contenere la policy è spiegato in [privacy policy di un'app](https://devoria.fr/it/blog/privacy-policy-app-ios-apple), e il resto della scheda nella pagina [ASO App Store](https://devoria.fr/it/expertise/aso-app-store).

**Questo punto si corregge senza nuova build**: la descrizione e i campi di App Store Connect sono metadati.

## 3.1.2(a): un abbonamento deve offrire un valore continuo

L'altro comma che porta al rifiuto riguarda il modello, non la schermata. La [3.1.2(a)](https://developer.apple.com/app-store/review/guidelines/#3.1.2a) chiede "ongoing value": un valore che continua nel tempo. Il periodo dura almeno sette giorni, e l'abbonamento funziona su tutti i dispositivi dell'utente. L'abbonato ottiene ciò che ha pagato senza compiti aggiuntivi, come pubblicare su un social.

Se la tua app offre un servizio una volta per tutte, forse un acquisto singolo è più adatto. I due modelli sono confrontati in [abbonamento o acquisto singolo](https://devoria.fr/it/blog/abbonamento-o-acquisto-unico-app-ios).

## Cosa rispondere ad Apple dopo un rifiuto 3.1.2

La conversazione avviene nella sezione App Review della tua app. La procedura per [rispondere ad App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/) è la stessa delle altre regole. I casi sono due:

- **Il problema è nell'app** (dimensione dei prezzi, diciture del paywall): serve una nuova build, come per Solys e TradaZen. Il revisore testa il codice incluso, lo spiego nella guida sulla [guideline 2.1](https://devoria.fr/it/blog/guideline-2-1-app-store-rifiuto).
- **Il problema è nella scheda** (link assenti o non funzionanti): correggi i metadati, rispondi, e la stessa submission riparte.

Scrivi in inglese, in modo sobrio: cosa non andava, cosa è cambiato, come verificarlo. Ecco il modello che uso (sostituisci numero di build, prezzi e percorso con i tuoi):

```text
Hello,

Thank you for your review.

Issue: on the paywall, the weekly equivalent price was displayed
more prominently than the billed amount.

Fix in build X:
- Each plan now shows its billed amount (e.g. "€19.99/year")
  as the largest price on the card.
- The weekly equivalent is a smaller grey caption below it.
- The paywall states the duration, the auto-renewal, and links
  to our Terms of Use and Privacy Policy.

How to verify: launch the app and complete the onboarding.
The paywall appears at the end.

Best regards,
```

## Correggere il paywall prima del prossimo invio

Se la tua app è appena stata rifiutata per la 3.1.2, l'[Apple Review Kit](https://devoria.fr/it/kits/review-apple) ti aiuta a ritrovare la regola citata, cosa chiede e un esempio di correzione e di risposta. Le sue skill per Claude Code rileggono anche il tuo paywall e la tua scheda prima dell'invio. Per uno sguardo umano, [prenota un'ora con me](https://devoria.fr/it/coaching): leggiamo il messaggio di Apple e rivediamo il tuo paywall sul tuo schermo. La procedura completa è nella pagina [app rifiutata da Apple](https://devoria.fr/it/expertise/app-rifiutata-da-apple), e la configurazione dell'abbonamento nella pagina [abbonamento in-app iOS](https://devoria.fr/it/expertise/abbonamento-in-app-ios).

Se stai preparando la tua prima uscita, [fai la tua diagnosi gratuita](https://devoria.fr/it/diagnostic): rimette in ordine i passaggi e ti invia la mia checklist anti-rifiuto Apple. Per [creare un'app mobile](https://devoria.fr/it) che incassa fin dal lancio, l'[iOS Kit](https://devoria.fr/it/kits/ios) dedica il suo terzo passaggio, "collegare i soldi", all'abbonamento e al paywall.

Nessuno può garantire che Apple accetterà la tua app. Quello che posso fare è evitarti il rifiuto 3.1.2(c) che io ho pagato due volte.

## Domande frequenti

### Cosa significa "Guideline 3.1.2 - Business - Payments - Subscriptions"?

È il titolo completo della regola sugli abbonamenti. Segnala un prezzo con una gerarchia sbagliata, un'informazione mancante sul paywall, un link assente dalla scheda o un abbonamento senza valore continuo. La lettera tra parentesi, per esempio 3.1.2(c), indica il comma in questione.

### Si può ancora mostrare un prezzo settimanale o mensile?

Sì. Apple permette un equivalente settimanale o mensile, o un risparmio, purché restino più piccoli e meno visibili dell'importo realmente addebitato. Nelle mie app, l'equivalente è una didascalia grigia sotto il prezzo addebitato, mai nella colonna dei prezzi veri.

### Serve una nuova build dopo un rifiuto 3.1.2?

Sì se il problema è nel paywall, perché il revisore testa il codice incluso. No se è nella scheda, come un link assente dalla descrizione: correggi i metadati e la stessa submission riparte.

### Dove metto il link ai termini di utilizzo (EULA)?

Nell'app, sul paywall. Nella scheda, nella descrizione o nel campo EULA di App Store Connect se hai un contratto personalizzato. Con il contratto standard di Apple nessun link compare sulla tua scheda: aggiungilo tu nella descrizione, in ogni lingua.

### Il mio paywall era già stato accettato, perché ora viene rifiutato?

Perché ogni versione ripassa in revisione, a volte davanti a un altro revisore. Un prezzo settimanale in evidenza era stato accettato su TradaZen, poi rifiutato su Solys e su TradaZen a ottobre 2026. Solo il testo della regola ti protegge.


## Il tuo progetto

[Apple Review Kit](https://devoria.fr/it/kits/review-apple): La checklist review App Store che uso, i miei rifiuti di Apple corretti, le note per il revisore e due skill Claude Code che rileggono la tua app. 29 €.

[iOS Kit](https://devoria.fr/it/kits/ios): Crea la tua app iPhone con Claude Code: lo Starter Code delle mie app, gli skill che verificano il suo lavoro, e l'Apple Review Kit, l'App Store Screenshots Kit e l'ASO Kit. 129,99 €.
