# Guideline 3.1.2: aplicație respinsă din cauza abonamentului

> Guideline 3.1.2: suma facturată trebuie să fie prețul cel mai vizibil din paywall, cu durată, reînnoire și linkuri spre termeni. Două respingeri reale.

Pagina originală: [Guideline 3.1.2: aplicație respinsă din cauza abonamentului](https://devoria.fr/ro/blog/guideline-3-1-2-aplicatie-respinsa-abonament)
Autor: [Mehdi Azizi](https://devoria.fr/ro/mehdi-azizi)
Publicare: 2026-10-17
Ultima revizuire a conținutului: 2026-10-17


Guideline 3.1.2 reglementează abonamentele cu reînnoire automată. Dacă Apple o invocă, verifică două lucruri: **suma facturată efectiv trebuie să fie prețul cel mai vizibil din paywall-ul tău**, iar aplicația și pagina ei din App Store trebuie să arate durata, prețul și linkuri funcționale spre termenii de utilizare și politica de confidențialitate.

Am primit această respingere pe două dintre aplicațiile mele în octombrie 2026: Solys pe 10, TradaZen pe 12. Problema era aceeași afișare: un preț pe săptămână mare, suma reală facturată mică. Mai jos găsești textul regulii, cele două cazuri și apoi checklistul pe care îl aplic acum. Pentru alte motive, citește [de ce respinge Apple o aplicație](https://devoria.fr/ro/blog/aplicatie-respinsa-apple-cazuri-reale).

## Ce spune guideline 3.1.2?

3.1.2, „Subscriptions”, se află în secțiunea 3 „Business” din [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#3.1.2), partea 3.1 „Payments”. De aici și titlul emailului: „Guideline 3.1.2 - Business - Payments - Subscriptions”. Are trei alineate, iar **litera dintre paranteze îți spune unde să cauți**.

| Alineat                           | Ce cere Apple                    | Respingerea tipică                        |
| --------------------------------- | -------------------------------- | ----------------------------------------- |
| 3.1.2(a) Permissible uses         | Valoare continuă, minimum 7 zile | Abonament fără conținut care evoluează    |
| 3.1.2(b) Upgrades and Downgrades  | Schimbarea planului fără dublură | Două planuri plătite în același timp      |
| 3.1.2(c) Subscription Information | Ce primești și la ce preț        | Preț calculat mai mare decât cel facturat |

Textul din [3.1.2(c)](https://developer.apple.com/app-store/review/guidelines/#3.1.2c) e scurt. Înainte să-i ceri cuiva să se aboneze, trebuie să „clearly describe what the user will get for the price”: să descrii clar ce primește pentru acel preț. Apoi trimite la anexa 2 (Schedule 2) din [licența programului pentru dezvoltatori](https://developer.apple.com/support/terms/apple-developer-program-license-agreement/#S2). Anexa enumeră ce trebuie să afișezi „clearly and conspicuously”, clar și vizibil:

- titlul abonamentului;
- durata lui;
- prețul, și prețul pe unitate dacă e relevant;
- linkuri spre politica de confidențialitate și termenii de utilizare, accesibile în aplicație.

Regula despre mărimea prețurilor e pe [pagina Apple dedicată abonamentelor](https://developer.apple.com/app-store/subscriptions/). În fluxul de cumpărare, „the amount that will be billed must be the most prominent pricing element in the layout”: suma care va fi debitată trebuie să fie elementul de preț cel mai vizibil. Un echivalent lunar sau o economie sunt permise, cu condiția să fie pe poziție secundară și mai mici. Aceeași pagină cere ca, la o perioadă de probă gratuită, să indici durata ei și prețul facturat la final.

## Cele două respingeri 3.1.2(c) pe care le-am primit

### Solys: 0,38 € mare, 19,99 € mic

Solys e alarma mea care îți adoarme rețelele sociale. Pe paywall-ul din onboarding, cardul „Anual” afișa „0,38 €/săpt.” cu 21 de puncte, bold. Dedesubt, cu 15 puncte: „adică 19,99 €/an”. Dar se debitează 19,99 €, nu 0,38 €.

Pe 10 octombrie 2026, Apple respinge versiunea invocând 3.1.2(c). Mesajul cere ca suma facturată să fie elementul de preț cel mai clar și cel mai vizibil. Perioada de probă gratuită, prețul de lansare și prețurile calculate trebuie să-i rămână subordonate. Apple își menționează criteriile: fontul, mărimea, culoarea și poziția.

Păstrasem afișarea asta în cunoștință de cauză: o versiune anterioară a TradaZen, construită pe același principiu, fusese acceptată. A fost un pariu și m-a costat un ciclu de review.

**Corecția**: „19,99 €/an” mare, „adică 0,38 €/săpt.” ca legendă gri dedesubt, în toate cele 30 de limbi ale aplicației. Cum paywall-ul e în cod, a fost nevoie de un build nou înainte să retrimit versiunea.

![O balanță cântărește cele două prețuri din paywall-ul Solys, turnate în blocuri de plumb. Înainte, „0,38 €/săpt.” cu 21 de puncte trage mai greu decât „adică 19,99 €/an” cu 15 puncte, iar acul indică respins; după, „19,99 €/an” cu 21 de puncte trage mai greu, iar acul indică conform.](https://devoria.fr/ios/figures/balance-3-1-2c.svg)

### TradaZen: același motiv, două zile mai târziu

TradaZen e simulatorul meu de trading. Pe 12 octombrie 2026, versiunea 1.5.1 e respinsă pentru aceeași regulă. Mesajul vorbește despre un preț „weekly calculated” afișat „more clearly and conspicuously than the billed amount”: echivalentul săptămânal era mai vizibil decât suma facturată.

Prima mea corecție nu a fost suficientă, și mi-am dat seama înainte de trimitere. Micșorasem „0,92 €/săpt.” dar îl lăsasem în dreapta, pe linia prețului. Însă cardul abonamentului săptămânal afișa, în aceeași coloană, prețul lui real: „8,99 €/săpt.”. Cele două sume se citeau la același nivel. **Un preț calculat pus în coloana prețurilor reale se citește ca un preț facturat**, chiar dacă e mic.

**Corecția finală**: fiecare card are suma facturată mare, în dreapta. Prețul pe săptămână devine legendă gri dedesubt. În stânga, doar numele planului. La review-ul următor, Apple nu a mai semnalat 3.1.2(c).

Celelalte lecții ale acestei aplicații sunt în [studiul de caz TradaZen](https://devoria.fr/ro/blog/studiu-de-caz-tradazen-lansare-aplicatie-iphone).

## Ce a respins Apple, ce a trecut

Iată afișările reale, în ordine, cu rezultatul lor.

| Afișarea prețului                                                | Rezultat                                    |
| ---------------------------------------------------------------- | ------------------------------------------- |
| TradaZen, versiune anterioară: preț pe săptămână în prim-plan    | Acceptat la un review anterior              |
| Solys: „0,38 €/săpt.” bold, „19,99 €/an” dedesubt                | Respins pe 10.10.2026, 3.1.2(c)             |
| TradaZen 1.5.1: preț pe săptămână mai vizibil decât cel facturat | Respins pe 12.10.2026, 3.1.2(c)             |
| TradaZen: preț pe săptămână micșorat, dar în coloana prețurilor  | Eliminat de mine înainte de trimitere       |
| TradaZen: facturat mare în dreapta, săptămâna ca legendă         | Nu a mai fost semnalat la review-ul următor |
| Solys: „19,99 €/an” mare, săptămâna ca legendă gri               | Corectat și retrimis la Apple               |

Primul rând e cel mai important. **Un review acceptat nu îți validează paywall-ul pentru următorul.** Fiecare versiune trece din nou pe la un reviewer, care poate citi regula mai strict decât precedentul. Singura afișare sigură e cea care respectă textul.

> Suma debitată e singurul preț mare. Orice echivalent, pe săptămână, pe lună sau pe zi, e o legendă mai mică și mai palidă, niciodată în locul ei.

## Checklistul pentru un paywall conform 3.1.2

E lista pe care o parcurg acum pe fiecare paywall din aplicațiile mele, înainte de fiecare trimitere:

- Pe fiecare card, suma facturată e prețul cel mai mare, cu cel mai mult contrast și cel mai bine plasat.
- Orice preț calculat (pe săptămână, pe lună, pe zi) e legendă, mai mic și mai palid, sub suma facturată.
- Niciun preț calculat nu ocupă coloana în care alt plan își afișează prețul real.
- Durata e scrisă clar: „pe an”, „pe săptămână”.
- Perioada de probă gratuită își spune durata și suma facturată la finalul ei.
- O frază spune că abonamentul se reînnoiește automat și se anulează din setările contului Apple.
- Ce deblochează abonamentul e scris înainte de butonul de cumpărare.
- Un buton „Restore Purchases” e vizibil pe paywall.
- Linkurile spre termenii de utilizare și politica de confidențialitate sunt pe paywall și se deschid.
- Dacă oferi mai multe planuri, sunt într-un singur grup de abonamente, cum recomandă Apple.
- Afișarea e verificată pe cel mai mic iPhone și cu cel mai lung preț. Pe TradaZen, testez prețul în dong vietnamez: o sumă care trece pe rândul următor strică ierarhia.

Dacă folosești paywall-urile RevenueCat, [documentația RevenueCat](https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/app-review) face același avertisment: o variabilă de preț lunar singură nu e suficientă dacă suma facturată și periodicitatea ei nu apar în altă parte. Integrarea completă e în [RevenueCat: cum configurezi un abonament in-app](https://devoria.fr/ro/blog/revenuecat-abonament-in-app-ios), iar greșelile de design în [paywall iOS: 7 greșeli de începător](https://devoria.fr/ro/blog/paywall-ios-greseli-vanzari).

## Linkurile spre termeni și confidențialitate: în aplicație și în pagina din App Store

Cealaltă formă de respingere 3.1.2 nu vizează paywall-ul, ci metadatele. Mesajele publicate de dezvoltatori pe [forumurile Apple](https://developer.apple.com/forums/thread/807082) precizează locul așteptat: linkul spre politica de confidențialitate în câmpul dedicat din App Store Connect, iar linkul spre termenii de utilizare (EULA) în descriere sau în câmpul EULA.

Capcana vine din contractul standard. Conform [ajutorului App Store Connect](https://developer.apple.com/help/app-store-connect/manage-app-information/provide-a-custom-license-agreement), dacă nu adaugi un contract personalizat, se aplică contractul standard Apple și „the license agreement link isn't shown on your App Store product page”: niciun link nu apare în pagina ta. **Dacă folosești contractul standard, e treaba ta să pui linkul lui în descriere**, spre pagina ta de termeni sau spre [contractul de licență standard Apple](https://www.apple.com/legal/internet-services/itunes/dev/stdeula/).

La aplicațiile mele cu abonament, închei descrierea cu două rânduri, în fiecare limbă a paginii. Iată modelul, de adaptat la oferta și domeniul tău:

```text
Perioadă de probă gratuită de 7 zile, apoi abonament anual sau săptămânal,
anulabil oricând.
Termeni: https://your-domain.com/terms
Confidențialitate: https://your-domain.com/privacy
```

Deschide ambele linkuri înainte să le lipești: o pagină inexistentă valorează cât un link absent. Ce trebuie să conțină politica e detaliat în [politica de confidențialitate a unei aplicații](https://devoria.fr/ro/blog/politica-confidentialitate-aplicatie-ios), iar restul paginii pe pagina [ASO App Store](https://devoria.fr/ro/expertise/aso-app-store).

**Problema asta se corectează fără build nou**: descrierea și câmpurile din App Store Connect sunt metadate.

## 3.1.2(a): un abonament trebuie să aducă valoare continuă

Celălalt alineat care duce la respingere vizează modelul, nu ecranul. [3.1.2(a)](https://developer.apple.com/app-store/review/guidelines/#3.1.2a) cere „ongoing value”: o valoare care continuă în timp. Perioada durează cel puțin șapte zile, iar abonamentul funcționează pe toate dispozitivele utilizatorului. Abonatul primește ce a plătit fără sarcini în plus, cum ar fi să posteze pe o rețea socială.

Dacă aplicația ta oferă un serviciu o singură dată, poate că o achiziție unică se potrivește mai bine. Cele două modele sunt comparate în [abonament sau achiziție unică](https://devoria.fr/ro/blog/abonament-sau-achizitie-unica-aplicatie-ios).

## Ce îi răspunzi lui Apple după o respingere 3.1.2

Conversația are loc în secțiunea App Review a aplicației tale. Procedura pentru a [răspunde la App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/) e aceeași ca la celelalte reguli. Sunt două cazuri:

- **Problema e în aplicație** (mărimea prețurilor, mențiunile din paywall): ai nevoie de un build nou, ca la Solys și TradaZen. Reviewerul testează codul inclus în build, explic asta în ghidul despre [guideline 2.1](https://devoria.fr/ro/blog/guideline-2-1-app-store-respingere).
- **Problema e în pagina din App Store** (linkuri absente sau moarte): corectezi metadatele, răspunzi, și aceeași trimitere pleacă din nou.

Scrie în engleză, sobru: ce era problema, ce s-a schimbat, cum se verifică. Iată modelul pe care îl folosesc (înlocuiește numărul build-ului, prețurile și parcursul cu ale tale):

```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,
```

## Corectează-ți paywall-ul înainte de următoarea trimitere

Dacă aplicația ta tocmai a fost respinsă pe 3.1.2, [Apple Review Kit](https://devoria.fr/ro/kits/review-apple) te ajută să găsești regula invocată, ce cere ea și un exemplu de corecție și de răspuns. Skill-urile lui pentru Claude Code îți verifică și paywall-ul și pagina înainte de trimitere. Pentru o privire umană, [rezervă o oră cu mine](https://devoria.fr/ro/coaching): citim mesajul Apple și refacem paywall-ul pe ecranul tău. Demersul complet e pe pagina [aplicație respinsă de Apple](https://devoria.fr/ro/expertise/aplicatie-respinsa-de-apple), iar configurarea abonamentului pe pagina [abonament in-app iOS](https://devoria.fr/ro/expertise/abonament-in-app-ios).

Dacă îți pregătești prima lansare, [fă diagnosticul gratuit](https://devoria.fr/ro/diagnostic): pune pașii în ordine și îți trimite checklistul meu anti-respingere Apple. Ca să [creezi o aplicație mobilă](https://devoria.fr/ro) care încasează bani din prima zi, [iOS Kit](https://devoria.fr/ro/kits/ios) dedică al treilea pas, „conectarea banilor”, abonamentului și paywall-ului.

Nimeni nu poate garanta că Apple îți va accepta aplicația. Ce pot face eu e să te scap de respingerea 3.1.2(c) pe care am plătit-o de două ori.

## Întrebări frecvente

### Ce înseamnă „Guideline 3.1.2 - Business - Payments - Subscriptions”?

E titlul complet al regulii despre abonamente. Semnalează un preț ierarhizat greșit, o informație lipsă din paywall, un link absent din pagina din App Store sau un abonament fără valoare continuă. Litera dintre paranteze, de exemplu 3.1.2(c), indică alineatul vizat.

### Mai pot afișa un preț pe săptămână sau pe lună?

Da. Apple permite un echivalent pe săptămână sau pe lună, sau o economie, cu condiția să rămână mai mici și mai puțin vizibile decât suma facturată efectiv. În aplicațiile mele, echivalentul e o legendă gri sub prețul facturat, niciodată în coloana prețurilor reale.

### Am nevoie de un build nou după o respingere 3.1.2?

Da, dacă problema e în paywall, pentru că reviewerul testează codul inclus în build. Nu, dacă e în pagina din App Store, de exemplu un link absent din descriere: corectezi metadatele și aceeași trimitere pleacă din nou.

### Unde pun linkul spre termenii de utilizare (EULA)?

În aplicație, pe paywall. În pagina din App Store, în descriere sau în câmpul EULA din App Store Connect dacă ai un contract personalizat. Cu contractul standard Apple, niciun link nu apare în pagina ta: adaugă-l tu în descriere, în fiecare limbă.

### Paywall-ul meu a fost deja acceptat, de ce e respins acum?

Pentru că fiecare versiune trece din nou prin review, uneori la alt reviewer. Un preț pe săptămână pus în prim-plan fusese acceptat pe TradaZen, apoi respins pe Solys și pe TradaZen în octombrie 2026. Doar textul regulii te protejează.


## Proiectul tău

[Apple Review Kit](https://devoria.fr/ro/kits/review-apple): Checklistul de review App Store pe care îl folosesc, respingerile mele de la Apple corectate, notele pentru tester și două skill-uri Claude Code care îți verifică aplicația. 29 €.

[iOS Kit](https://devoria.fr/ro/kits/ios): Creează-ți aplicația iPhone cu Claude Code: codul de pornire al aplicațiilor mele, skill-urile care îi verifică munca și Apple Review Kit, App Store Screenshots Kit și ASO Kit. 129,99 €.
