Skip to main content
Gli abbonamenti automatizzano i ricavi ricorrenti. Crea cicli di fatturazione flessibili, periodi di prova gratuiti o a pagamento, modifiche ai piani con pro-rata e componenti aggiuntivi. I clienti rinnovano automaticamente fino alla cancellazione o alla scadenza del periodo.

Upgrade & Downgrade

Gestisci le modifiche dei piani con la proratazione e gli aggiornamenti delle quantità.

On‑Demand Subscriptions

Autorizza ora un mandato e addebita in seguito importi personalizzati.

Customer Portal

Consenti ai clienti di gestire piani, fatturazione e cancellazioni.

Subscription Webhooks

Reagisci agli eventi del ciclo di vita, come creazione, rinnovo e cancellazione.

Cosa sono gli abbonamenti?

Un abbonamento è un prodotto ricorrente che addebita i clienti secondo una pianificazione. È ideale per SaaS, abbonamenti, contenuti digitali e piani di assistenza.
  • Licenze SaaS: app, API o accesso alla piattaforma
  • Membership: community, programmi o club
  • Contenuti digitali: corsi, media o contenuti premium
  • Piani di assistenza: SLA, pacchetti di successo o manutenzione

Vantaggi principali

  • Ricavi prevedibili: fatturazione ricorrente con rinnovi automatizzati
  • Cicli flessibili: intervalli mensili, annuali, personalizzati e periodi di prova
  • Agilità dei piani: pro-rata per upgrade e downgrade
  • Componenti aggiuntivi e postazioni: aggiungi upgrade opzionali e quantificabili
  • Checkout ospitato: pagine di checkout e Customer Portal
  • Developer-first: API chiare per creazione, modifiche e monitoraggio dell’utilizzo

Creazione degli abbonamenti

Crea prodotti in abbonamento nella dashboard di Dodo Payments, quindi vendili tramite checkout o API. Separare i prodotti dagli abbonamenti attivi consente di creare versioni dei prezzi, aggiungere componenti aggiuntivi e monitorare le prestazioni in modo indipendente.

Creazione di un prodotto in abbonamento

Configura i campi nella dashboard per definire come il tuo abbonamento viene venduto, rinnovato e fatturato. Le sezioni seguenti corrispondono direttamente a ciò che vedi nel modulo di creazione.

Dettagli del prodotto

  • Nome del prodotto (obbligatorio): il nome visualizzato nel checkout, nel Customer Portal e nelle fatture.
  • Descrizione del prodotto (facoltativa): una descrizione chiara del valore che appare nel checkout e nelle fatture.
  • Immagine del prodotto (facoltativa): PNG/JPG/WebP fino a 3 MB. Utilizzata nel checkout e nelle fatture.
  • Brand: associa il prodotto a un brand specifico per la personalizzazione del tema e delle email.
  • Categoria fiscale (obbligatoria): scegli la categoria (ad esempio, SaaS) per determinare le regole fiscali.
Scegli la categoria fiscale più accurata per garantire una corretta riscossione delle imposte per ogni area geografica.

Prezzi

  • Tipo di prezzo: scegli Subscription (questa guida). Le alternative sono Single Payment e Usage Based Billing.
  • Prezzo (obbligatorio): prezzo ricorrente di base con valuta. Un prezzo diverso da zero deve essere almeno $1 (o l’equivalente nella valuta scelta); gli importi inferiori a questo minimo non sono supportati. Un prezzo esattamente pari a $0 è un caso distinto e supportato; consulta Card-Optional at Zero Price.
  • Sconto applicabile (%): sconto percentuale facoltativo applicato al prezzo di base; viene riportato nel checkout e nelle fatture.
  • Ripeti il pagamento ogni (obbligatorio): intervallo per i rinnovi, ad esempio ogni 1 Month. Seleziona la frequenza (mesi o anni) e la quantità.
  • Periodo dell’abbonamento (obbligatorio): durata totale per cui l’abbonamento rimane attivo (ad esempio 10 Years). Al termine di questo periodo, i rinnovi si interrompono se non viene esteso.
  • Giorni del periodo di prova (obbligatorio): imposta la durata del periodo di prova in giorni. Usa 0 per disabilitare i periodi di prova. Il primo addebito avviene automaticamente al termine del periodo di prova.
  • Importo del periodo di prova: addebito iniziale facoltativo per un periodo di prova a pagamento. Lascialo non impostato per un periodo di prova gratuito. Consulta Paid Trials.
  • Card-optional at $0 Price: consenti ai clienti di avviare l’abbonamento senza aggiungere una carta quando il prezzo è pari a $0 o uno sconto non lascia nulla da pagare oggi. Un periodo di prova gratuito dispone della propria casella Start the trial without a card. Consulta Card-Optional at Zero Price.
  • Seleziona componente aggiuntivo: aggiungi fino a 10 componenti aggiuntivi che i clienti possono acquistare insieme al piano di base.
La modifica del prezzo di un prodotto attivo cambia quanto pagano i nuovi clienti. Gli abbonamenti esistenti non vengono mai ricalcolati: ciascuno mantiene il prezzo con cui è stato creato e si rinnova a quel prezzo finché rimane attivo.Per trasferire un abbonato esistente a un prezzo diverso, modifica esplicitamente il suo piano con Change Plan, oppure consenti il passaggio tramite il Customer Portal se hai abilitato le modifiche autonome del piano. Le impostazioni di proroga si applicano alla modifica del piano, non alle modifiche del prezzo del prodotto.
I componenti aggiuntivi sono ideali per extra quantificabili come postazioni o spazio di archiviazione. Puoi controllare le quantità consentite e il comportamento del pro-rata quando i clienti le modificano.

Impostazioni avanzate

  • Prezzi comprensivi delle imposte: mostra i prezzi comprensivi delle imposte applicabili. Il calcolo fiscale finale varia comunque in base alla posizione del cliente.
  • Genera chiavi di licenza: assegna una chiave univoca a ogni cliente dopo l’acquisto. Consulta la guida License Keys.
  • Distribuzione di prodotti digitali: distribuisci automaticamente file o contenuti dopo l’acquisto. Scopri di più in Digital Product Delivery.
  • Metadati: associa coppie chiave-valore personalizzate per tag interni o integrazioni client. Consulta Metadata.
Usa i metadati per memorizzare gli identificativi del tuo sistema (ad esempio, accountId), così potrai riconciliare successivamente eventi e fatture.

Periodi di prova degli abbonamenti

I periodi di prova consentono ai clienti di valutare un abbonamento prima di pagare il prezzo ricorrente completo. Un periodo di prova può essere gratuito (nessun addebito fino alla scadenza) o a pagamento (un importo ridotto addebitato in anticipo). Dopo il periodo di prova, il prezzo completo viene addebitato al primo rinnovo.

Configurazione dei periodi di prova

Imposta Trial Period Days nella sezione dei prezzi del prodotto (usa 0 per disabilitare). Sostituiscilo quando crei un abbonamento:
trial_period_days deve essere compreso tra 0 e 10.000 giorni.

Periodi di prova a pagamento

Addebita in anticipo un importo ridotto per il periodo di prova. Imposta Trial Amount sul prezzo del prodotto. Il prezzo ricorrente completo viene addebitato al primo rinnovo.
Modulo di prezzo dell'abbonamento con durata della prova e importo facoltativo per una prova a pagamento
Le prove a pagamento vengono configurate sul prezzo del prodotto, non per abbonamento o sessione di checkout:
L’importo del periodo di prova è soggetto a imposte ed è incluso nei calcoli del checkout e nei prezzi dei payment link. Il markup di Adaptive Currency si applica per valuta. L’endpoint di anteprima restituisce trial_amount e trial_period_days, così puoi mostrare l’importo dovuto oggi prima di creare l’abbonamento.

Card-Optional at Zero Price

Consenti ai clienti di avviare un abbonamento senza aggiungere un metodo di pagamento quando oggi non è dovuto alcun importo. Abilita questa opzione per ciascun prezzo nella sezione dei prezzi del prodotto, con una casella separata per ogni caso riportato di seguito.
Modulo dei prezzi dell'abbonamento con la casella Card-Optional at $0 Price accanto a Trial Period e Default Discount
Non è dovuto alcun importo oggi in due casi:
  • Un periodo di prova gratuito: trial_period_days è impostato senza trial_amount, quindi il primo addebito è pari a $0 durante il periodo di prova. Seleziona Start the trial without a card in Trial Period (Days).
  • Un prezzo ricorrente di $0: il prezzo è pari a $0 oppure uno sconto lo porta a $0 (il Default Discount (%) del prodotto o un codice sconto applicato durante il checkout). Seleziona Card-optional at $0 Price.
Un periodo di prova a pagamento richiede sempre una carta. Impostare un Trial Amount significa che è dovuto un importo, quindi l’obbligo della carta rimane attivo.
Ogni casella corrisponde al proprio campo API: trial_payment_method_optional (caso del periodo di prova gratuito) e zero_amount_payment_method_optional (caso del prezzo di $0). Puoi abilitarle singolarmente.

Cosa succede senza una carta

Un abbonamento con carta facoltativa viene creato e attivato immediatamente senza alcun metodo di pagamento registrato. La risposta di creazione restituisce payment_method_required: false e l’oggetto dell’abbonamento mostra has_payment_method: false. Poi:
  1. Viene inviata un’e-mail di promemoria prima dell’inizio della fatturazione. Il numero di giorni è impostato in Settings → Subscriptions → Payment Method Reminder (consulta Subscription Settings). L’e-mail Add Payment Method Reminder (consulta Customer Emails) indirizza il cliente al Customer Portal per aggiungere una carta.
  2. Se non viene aggiunta una carta in tempo, l’abbonamento passa a on_hold al termine del periodo di prova o del periodo scontato, quando è dovuto un addebito reale. Il cliente riceve l’e-mail Subscription On Hold, No Payment Method.
  3. L’aggiunta di un metodo di pagamento riattiva l’abbonamento (consulta Reactivating from On Hold). Viene creato un addebito per l’importo ora dovuto e, in caso di successo, l’abbonamento torna a active.
  4. Viene inviata un’email di promemoria prima dell’inizio della fatturazione effettiva. Il numero di giorni di anticipo viene impostato a livello aziendale in Payment Method Reminder, nella sezione Settings → Subscriptions; consulta Subscription Settings. L’email Add Payment Method Reminder del cliente (consulta Customer Emails) contiene un link diretto al Customer Portal per aggiungere una carta.
  5. Se non viene aggiunta una carta in tempo, l’abbonamento passa a on_hold quando termina la prova o il periodo scontato e diventa dovuto un addebito effettivo: è lo stesso stato on_hold in cui può entrare qualsiasi abbonamento, in questo caso perché non è mai stato aggiunto un metodo di pagamento. Il cliente riceve l’email Subscription On Hold, No Payment Method.
  6. L’aggiunta di un metodo di pagamento lo riattiva, esattamente come descritto in Reactivating from On Hold: viene creato un addebito per l’importo ora dovuto e, in caso di successo, l’abbonamento torna a active.
Scheda delle impostazioni degli abbonamenti con il campo dei giorni di Payment Method Reminder

Prevenzione dell’uso improprio dei periodi di prova

Impedisci ai clienti di richiedere ripetutamente periodi di prova dello stesso prodotto. Quando questa opzione è abilitata, un cliente che ha già usufruito del periodo di prova di un prodotto riceve un abbonamento a pagamento invece di un nuovo periodo di prova per quel prodotto. Prevent Trial Misuse impedisce ai clienti di richiedere ripetutamente prove per la stessa attività. Quando è abilitato, un cliente che ha già utilizzato una prova viene automaticamente convertito in un acquisto a pagamento senza prova, invece di ricevere una nuova prova. Abilitala da Settings → Subscriptions. Una volta abilitata:
  • I clienti vengono associati tramite e-mail normalizzata (gli alias con il simbolo più vengono rimossi), quindi user+trial@example.com e user@example.com vengono considerati la stessa persona.
  • Le richieste vengono registrate all’attivazione del periodo di prova, quindi un cliente che annulla lo stesso giorno ha comunque utilizzato il proprio periodo di prova.
  • I clienti esistenti vengono recuperati dai periodi di prova storici tramite e-mail, quindi gli utenti che hanno già usufruito di un periodo di prova vengono riconosciuti immediatamente.
  • Passare trial_period_days esplicitamente in una checkout session o in un abbonamento ignora il controllo e concede il periodo di prova.
  • I clienti vengono associati tramite email normalizzata, rimuovendo gli alias con il simbolo più, quindi user+trial@example.com e user@example.com vengono considerati la stessa persona.
  • Gli utilizzi vengono registrati al momento dell’attivazione della prova, quindi un cliente che annulla lo stesso giorno ha comunque consumato la propria prova.
  • I clienti esistenti vengono recuperati dalle loro prove storiche tramite email, quindi gli utenti che hanno già usufruito di una prova vengono riconosciuti immediatamente.

Rilevamento dello stato del periodo di prova

Rilevamento dello stato della prova

Attualmente non esiste un campo diretto per rilevare lo stato della prova. La soluzione alternativa seguente richiede l’interrogazione dei pagamenti, che è inefficiente. Stiamo lavorando a una soluzione più efficiente.
Per determinare se un abbonamento con prova gratuita è in prova, recupera l’elenco dei pagamenti dell’abbonamento. Se esiste esattamente un pagamento con importo pari a 0, l’abbonamento è nel periodo di prova:

Aggiornamento del periodo di prova

Questo controllo dell’importo zero funziona solo per le prove gratuite. Per una prova a pagamento, il primo pagamento è uguale all’importo della prova, non a 0. Confronta invece il primo pagamento con trial_amount dell’abbonamento oppure verifica se next_billing_date rientra ancora nel periodo di prova.

Aggiornamento del periodo di prova

Estendi la prova aggiornando next_billing_date:

Modifiche al piano dell’abbonamento

Esegui l’upgrade o il downgrade degli abbonamenti, modifica le quantità o migra verso prodotti diversi. La modalità pro-rata determina se la modifica genera un addebito immediato, un credito o nessun adeguamento della fatturazione.

Modifiche al piano dell’abbonamento

Le modifiche al piano consentono di effettuare upgrade o downgrade degli abbonamenti, modificare le quantità o migrare a prodotti diversi. A seconda della modalità di proroga selezionata, una modifica può generare un addebito immediato, creare un credito o non applicare alcun adeguamento di fatturazione.
Puoi modificare i piani degli abbonamenti e aggiornare direttamente la data del prossimo addebito dal dashboard di Dodo Payments. Questo offre un modo rapido per modificare gli abbonamenti in risposta a richieste di assistenza, upgrade promozionali o migrazioni di piano senza effettuare chiamate API.

Modalità di pro-rata

Scegli come fatturare i clienti quando modificano i piani:

Product Collections

Raggruppa i prodotti correlati in collection per abilitare percorsi fluidi di upgrade e downgrade nel Customer Portal.

Modalità di proroga

Scegli come addebitare i clienti quando modificano il piano:
Confronto rapido delle quattro modalità di proroga:

prorated_immediately

Accredita la parte inutilizzata del ciclo di fatturazione corrente, poi addebita un ciclo completo al nuovo piano. Il nuovo piano non viene mai addebitato in proporzione. Addebito immediato netto = (nuovo ciclo completo) meno (frazione rimanente x vecchio ciclo completo). Se il credito è maggiore dell’addebito del nuovo ciclo, la differenza viene conservata come credito associato all’abbonamento per i rinnovi futuri. Il ciclo di fatturazione viene riallineato alla data della modifica.

difference_immediately

Addebita immediatamente la differenza di prezzo (upgrade) oppure aggiunge un credito per i rinnovi futuri (downgrade). Ideale per semplici scenari di upgrade/downgrade.
I crediti derivanti dai downgrade che utilizzano difference_immediately sono associati all’abbonamento e vengono applicati automaticamente ai rinnovi futuri. Sono distinti dalle entitlements di Credit-Based Billing.
Quando un cliente effettua un downgrade con difference_immediately, il valore inutilizzato diventa un credito associato all’abbonamento che compensa automaticamente i rinnovi futuri:

full_immediately

Addebita immediatamente l’intero importo del nuovo piano, ignorando il tempo rimanente. Ideale per reimpostare i cicli di fatturazione.

do_not_bill

Passa immediatamente al nuovo piano senza alcun adeguamento della fatturazione. Nessun addebito di proroga e nessun credito: il cliente passa semplicemente al nuovo piano. Il nuovo piano è attivo non appena la chiamata va a buon fine, ma non viene addebitato fino al rinnovo successivo; il cliente usufruisce quindi gratuitamente del piano aggiornato per il resto del ciclo corrente. La data di rinnovo originale viene mantenuta e il prezzo del nuovo piano si applica a partire da tale rinnovo. Ideale per migrazioni di cortesia, passaggi gratuiti di piano o scenari in cui vuoi assorbire la differenza di costo.
Scenario: un cliente con Basic (30/mese)effettual′upgradeaPro(30/mese) effettua l'upgrade a Pro (80/mese) il giorno 16 di un ciclo di 30 giorni usando prorated_immediately.
Il cliente inizia oggi un nuovo mese completo di Pro, quindi Pro viene addebitato per intero e viene accreditato solo il tempo inutilizzato di Basic.Prossimo rinnovo il 15 febbraio (16 gennaio + 30 giorni): $80.00/mese.
Per esempi di calcolo più dettagliati e casi limite, consulta la nostra Upgrade & Downgrade Guide.
Scenario: un cliente con Pro (80/mese)effettuaildowngradeaStarter(80/mese) effettua il downgrade a Starter (20/mese) usando difference_immediately.
Il credito di $60 viene applicato automaticamente ai rinnovi futuri:
  • Rinnovo 1: 20−20 − 20 (credito) = **0.00∗∗(creditoresiduo:0.00** (credito residuo: 40)
  • Rinnovo 2: 20−20 − 20 (credito) = **0.00∗∗(creditoresiduo:0.00** (credito residuo: 20)
  • Rinnovo 3: 20−20 − 20 (credito) = $0.00 (credito esaurito)
  • Rinnovo 4: $20.00 (prezzo completo)
Scopri di più sulla gestione dei crediti nella Upgrade & Downgrade Guide.

Modifica dei piani con componenti aggiuntivi

Modifica i componenti aggiuntivi durante il cambio di piano. I componenti aggiuntivi sono inclusi nei calcoli della proroga:
Per impostazione predefinita (effective_at: 'immediately'), le modifiche al piano generano addebiti immediati. Passa effective_at: 'next_billing_date' per programmare la modifica alla prossima data di fatturazione; la modifica in sospeso viene restituita sull’abbonamento come scheduled_change e può essere annullata con Cancel Scheduled Plan Change. Gli addebiti non riusciti possono spostare l’abbonamento allo stato on_hold, a meno che tu non passi on_payment_failure: 'prevent_change', che mantiene l’abbonamento sul piano corrente finché il pagamento non va a buon fine. Tieni traccia delle modifiche tramite gli eventi webhook subscription.plan_changed. Le modifiche al piano vengono rifiutate mentre un abbonamento è past_due; consulta Grace Period.

Anteprima delle modifiche al piano

Prima di confermare una modifica al piano, visualizza in anteprima l’addebito esatto e l’abbonamento risultante:

Sospensione e ripresa degli abbonamenti

Sospendi un abbonamento per congelarlo invece di terminarlo. La fatturazione si interrompe, l’accesso viene revocato e l’abbonamento conserva piano e cronologia. Usalo come alternativa alla cancellazione per fidelizzare i clienti.

Sospensione e ripresa degli abbonamenti

La sospensione congela un abbonamento invece di terminarlo. La fatturazione si interrompe, l’accesso viene revocato e l’abbonamento conserva piano e cronologia, così il cliente può riprendere esattamente da dove aveva interrotto. Usala come alternativa alla cancellazione per la fidelizzazione.

Cosa succede quando sospendi

Pagina dei dettagli dell'abbonamento nel dashboard con i pulsanti Update, Pause subscription e Cancel Subscription

Cosa accade quando sospendi

  • I rinnovi si interrompono. Durante la sospensione non viene generata alcuna fattura né tentato alcun addebito di rinnovo.
  • L’accesso viene revocato immediatamente. La sospensione revoca ogni entitlement grant già distribuito o in sospeso sull’abbonamento, disabilitando le relative license keys e impedendo la generazione di nuovi URL per il download di prodotti digitali. La ripresa li assegna nuovamente, come avviene recuperando da on_hold.
  • L’orologio della fatturazione si congela. next_billing_date e expires_at avanzano entrambi esattamente per la durata della sospensione, così il cliente conserva il tempo già pagato.
  • Non esiste un limite alla durata della sospensione. Un abbonamento sospeso rimane tale finché qualcuno non lo riprende. Non è necessario impostare in anticipo la durata della sospensione.
La sospensione revoca immediatamente l’accesso, non alla fine del periodo di fatturazione. Se un abbonamento controlla l’accesso al tuo prodotto, comunicalo chiaramente al cliente prima della conferma.
La ripresa riporta l’abbonamento a active e ripristina le relative entitlements. Poiché l’orologio era congelato, il rinnovo successivo avviene dopo la durata della sospensione rispetto alla data originaria: un abbonamento sospeso per 12 giorni si rinnova con 12 giorni di ritardo.

Sospensione degli abbonamenti basati sull’utilizzo

Un abbonamento basato sull’utilizzo può avere utilizzo registrato ma non ancora fatturato al momento della sospensione. Bill Usage at Pause, in Settings → Subscriptions, determina cosa accade: In questo modo viene regolato solo l’utilizzo misurato: la tariffa ricorrente di base non viene mai addebitata al momento della sospensione. Gli abbonamenti standard e on-demand non hanno nulla da regolare, quindi questa impostazione non li riguarda.
Bill Usage at Pause viene registrato per ciclo di fatturazione. La modifica a metà ciclo non cambia il modo in cui viene regolato il ciclo già iniziato; il nuovo valore si applica dal ciclo successivo.
La fattura di regolazione viene riscossa come qualsiasi altra fattura, quindi può non andare a buon fine. Se rimane insoluta oltre il periodo di tolleranza di dunning, l’abbonamento passa a on_hold mantenendo però il flag di sospensione.
Un abbonamento in questo stato ha due possibili vie d’uscita, che differiscono per chi assorbe l’utilizzo dovuto:

Consentire ai clienti di sospendere autonomamente gli abbonamenti

La ripresa è una via d’uscita valida da questa sospensione: non è necessario riscuotere prima la fattura di regolazione. Tieni presente che la ripresa condona l’utilizzo insoluto invece di posticiparlo.

Consentire ai clienti di sospendere autonomamente gli abbonamenti

Allow Subscription Pause, in Settings → Subscriptions, controlla se i clienti possono sospendere e riprendere l’abbonamento dal Customer Portal. È disattivato per impostazione predefinita, quindi la sospensione autonoma è facoltativa.
Scheda delle impostazioni degli abbonamenti con gli interruttori Allow Subscription Pause e Bill Usage at Pause
Questa impostazione riguarda solo il Customer Portal. Puoi sempre sospendere e riprendere dal dashboard o dall’API, indipendentemente dalla posizione dell’interruttore.

Sospensione tramite API

Pausing from the Customer Portal

Scopri cosa vede il cliente, inclusa la finestra di conferma.

Sospensione tramite API

La sospensione e la ripresa utilizzano il campo status dell’endpoint di aggiornamento dell’abbonamento. Non esiste un endpoint separato per la sospensione.
Invia paused o active da solo: combinarlo con qualsiasi altro campo viene rifiutato con 422. Il precedente campo booleano pause è stato rimosso e ora fallisce sempre con 422, quindi un chiamante che lo utilizza ancora riceve un errore esplicito invece di un’operazione ignorata.
La sospensione emette subscription.paused e la ripresa emette subscription.unpaused. Entrambi contengono l’oggetto completo dell’abbonamento, con paused_at impostato durante la sospensione e null dopo la ripresa.

Stati dell’abbonamento

  • La cancellazione continua a funzionare. Puoi cancellare un abbonamento sospeso esattamente come uno attivo. Qualsiasi fattura di regolazione aperta derivante dalla sospensione viene stornata.
  • Le modifiche programmate del piano vengono ritardate, non eliminate. Una modifica del piano programmata per la prossima data di fatturazione rimane intatta durante la sospensione e viene applicata alla data di fatturazione posticipata quando l’abbonamento riprende. Il suo scheduled_change.effective_at è un’istantanea del momento della programmazione e non viene modificato dalla sospensione, quindi può mostrare una data passata: leggilo come “era programmato per”, non come una data garantita. Per eliminare la modifica invece di mantenerla, usa Cancel Scheduled Plan Change.

Stati degli abbonamenti

Un abbonamento attraversa un insieme definito di stati durante il proprio ciclo di vita. Questa tabella è il riferimento per ogni stato, per le cause e per le modalità di recupero, se disponibili.
on_hold e failed vengono spesso confusi. on_hold è uno stato recuperabile per un abbonamento già attivo il cui rinnovo non è riuscito. failed è uno stato terminale che si verifica solo quando non riesce la creazione iniziale dell’abbonamento e non può essere riattivato.

Macchina a stati

Anche on_hold e paused sono distinti. on_hold è involontario: un pagamento non è riuscito. paused è deliberato: tu o il cliente avete scelto di congelare l’abbonamento e non viene tentato alcun rinnovo finché resta sospeso. Un abbonamento basato sull’utilizzo può comunque avere una fattura di regolazione una tantum dovuta al momento della sospensione; consulta Pausing Usage-Based Subscriptions.

Stato sospeso

Stato On Hold

Un abbonamento entra nello stato on_hold quando:
  • Un pagamento di rinnovo non va a buon fine (fondi insufficienti, carta scaduta ecc.)
  • Un addebito per una modifica del piano non va a buon fine
  • L’autorizzazione del metodo di pagamento non va a buon fine
  • Una fattura di regolazione della sospensione per un abbonamento basato sull’utilizzo rimane insoluta
  • Un periodo di tolleranza termina con il debito del rinnovo insoluto e l’azione di scadenza è on_hold
  • Il periodo di prova gratuito o il periodo a 0diunabbonamento[Card−Optionalat0 di un abbonamento [Card-Optional at 0 Price](#card-optional-at-0-price) termina senza che sia mai stato aggiunto un metodo di pagamento

Riattivazione dallo stato sospeso

Quando un abbonamento è nello stato on_hold, non si rinnoverà automaticamente. Devi aggiornare il metodo di pagamento per riattivarlo.

Riattivazione dallo stato On Hold

Per riattivare un abbonamento dallo stato on_hold, aggiorna il metodo di pagamento. Questo:
  1. Crea un addebito per gli importi ancora dovuti
  2. Genera una fattura
  3. Elabora il pagamento usando il nuovo metodo di pagamento
  4. Riattiva l’abbonamento allo stato active dopo il pagamento riuscito
L’unica eccezione è una sospensione causata da una fattura di regolazione non pagata. La cancellazione di tale fattura riporta l’abbonamento a paused, non a active, perché la sospensione era lo stato precedente al fallimento del pagamento. Riprendilo esplicitamente dopo il saldo della fattura.

Periodo di tolleranza

Dopo aver aggiornato correttamente il metodo di pagamento per un abbonamento on_hold, riceverai gli eventi webhook payment.succeeded seguiti da subscription.active.

Periodo di tolleranza

Un periodo di tolleranza è una finestra tra un rinnovo non riuscito e la perdita dell’accesso. L’abbonamento passa a past_due invece di on_hold e il cliente mantiene tutto ciò che ha acquistato fino alla fine della finestra. Questo gli dà il tempo di correggere i dati della carta senza perdere il prodotto. I periodi di tolleranza sono disattivati per impostazione predefinita. Abilitane uno dal dashboard in Settings → Subscriptions → Subscription Grace Period.
Scheda delle impostazioni degli abbonamenti con l'interruttore Subscription Grace Period, il campo dei giorni e lo stato dopo il periodo di tolleranza

Impostazioni

Cosa accade durante la finestra

Mentre un abbonamento è past_due:
  • Il cliente mantiene l’accesso. Le entitlement grant, le license keys e i download dei prodotti digitali rimangono attivi.
  • La fatturazione basata sull’utilizzo continua a registrare l’utilizzo.
  • L’abbonamento non si rinnova.
  • L’abbonamento non può essere sospeso.
  • Vengono inviate email di Dunning e continuano i payment retries.
  • subscription.past_due viene emesso all’ingresso nello stato.
Il webhook subscription.past_due contiene la scadenza come past_due_ends_at. Salvalo quando arriva l’evento: l’API degli abbonamenti non restituisce questo campo. Ogni webhook dell’abbonamento generato mentre la finestra è aperta contiene lo stesso valore, accanto a un status di past_due.
La finestra viene fissata quando l’abbonamento vi entra. Se modifichi successivamente la durata o l’azione di scadenza, una finestra già aperta conserva i valori assegnati. I nuovi valori si applicano al successivo abbonamento che entra in una finestra.

Recupero

La finestra si chiude quando il debito del rinnovo viene saldato, tramite un tentativo riuscito oppure quando il cliente aggiorna il metodo di pagamento. L’abbonamento torna a active e viene inviato un webhook subscription.active. Solo il rinnovo non riuscito apre una finestra. Un addebito del merchant non correlato che rimane insoluto non sposta l’abbonamento a past_due.

Quando termina la finestra

Se il debito del rinnovo è ancora insoluto alla scadenza, l’abbonamento passa a on_hold o a cancelled, secondo la configurazione. Contemporaneamente:
  • Una modifica programmata del piano sull’abbonamento viene cancellata.
  • Una modifica del piano in sospeso la cui fattura è ancora insoluta viene cancellata.
Se l’azione di scadenza è cancel_subscription, anche le fatture aperte vengono stornate e i relativi tentativi di pagamento si interrompono.
Una modifica del piano in sospeso la cui fattura è stata pagata viene applicata mentre la finestra è ancora aperta, non alla scadenza. Una fattura pagata regola la modifica indipendentemente dallo stato dell’abbonamento.
Le modifiche al piano vengono rifiutate mentre un abbonamento è past_due. Salda prima il debito del rinnovo.

Eventi webhook per transizione

Ogni transizione emette un webhook, così puoi gestire la logica delle entitlement senza eseguire polling:

Gestione tramite API

Subscription Webhook Payloads

Visualizza lo schema completo del payload per gli eventi del ciclo di vita degli abbonamenti.

Gestione tramite API

Usa POST /checkouts per creare abbonamenti programmaticamente dai prodotti, con prove facoltative (subscription_data.trial_period_days) e componenti aggiuntivi (product_cart[].addons).
POST /subscriptions è deprecato. Le integrazioni esistenti continuano a funzionare, ma le nuove integrazioni devono usare Checkout Sessions.

API Reference

Visualizza l’API per la creazione della sessione di checkout.
Usa PATCH /subscriptions/{subscription_id} per cancellare alla prossima data di fatturazione, estendere il periodo dell’abbonamento, aggiornare i dati di fatturazione o modificare i metadati. Per modificare la quantità, usa invece la Change Plan API: PATCH non accetta quantity.

API Reference

Scopri come aggiornare i dettagli dell’abbonamento.
La sospensione e la ripresa utilizzano lo stesso endpoint PATCH /subscriptions/{subscription_id} e il campo status: status: paused sospende un abbonamento attivo e status: active lo riprende. Nessuno dei due valori può essere combinato con altri campi nella stessa richiesta. Per il comportamento completo, gli effetti sulla fatturazione e le impostazioni aziendali correlate, consulta Pausing and Resuming Subscriptions.

API Reference

Visualizza l’API di aggiornamento dell’abbonamento, incluso il campo status.
Modifica il prodotto attivo e le quantità con i controlli di proroga.

API Reference

Esamina le opzioni di modifica del piano.
Per gli abbonamenti on-demand, addebita importi specifici quando necessario.

API Reference

Addebita un abbonamento on-demand.
Usa GET /subscriptions per elencare tutti gli abbonamenti e GET /subscriptions/{id} per recuperarne uno.

API Reference

Consulta le API di elenco e recupero.
Recupera l’utilizzo registrato per modelli di prezzo misurati o ibridi.

API Reference

Consulta l’API della cronologia dell’utilizzo.
Aggiorna il metodo di pagamento per un abbonamento. Per gli abbonamenti attivi, aggiorna il metodo di pagamento per i rinnovi futuri. Per gli abbonamenti nello stato on_hold, riattiva l’abbonamento creando un addebito per gli importi ancora dovuti.

Casi d’uso comuni

API Reference

Scopri come aggiornare i metodi di pagamento e riattivare gli abbonamenti.

Esempi di integrazione

  • SaaS e API: accesso a livelli con componenti aggiuntivi per posti o utilizzo
  • Contenuti e media: accesso mensile con prove introduttive
  • Piani di supporto B2B: contratti annuali con componenti aggiuntivi di supporto premium
  • Strumenti e plugin: chiavi di licenza e release versionate

Esempi di integrazione

Checkout Sessions (abbonamenti)

Quando crei sessioni di checkout, includi il prodotto in abbonamento e i componenti aggiuntivi facoltativi:

Modifiche del piano con proroga

Effettua l’upgrade o il downgrade di un abbonamento e controlla il comportamento della proroga:

Cancellazione alla prossima data di fatturazione

Programma una cancellazione effettiva al termine del periodo di fatturazione corrente:

Estensione del periodo dell’abbonamento

Estendi la durata dell’abbonamento passando un nuovo subscription_period_count e subscription_period_interval a PATCH /subscriptions/{subscription_id}. La scadenza dell’abbonamento viene ricalcolata dal nuovo conteggio e intervallo; ad esempio, per concedere a un cliente tempo aggiuntivo sul piano corrente:
Il periodo di un abbonamento può essere solo aumentato, mai ridotto.

Abbonamenti on-demand

Crea un abbonamento on-demand e addebita in seguito quando necessario:

Aggiornamento del metodo di pagamento per un abbonamento attivo

Aggiorna il metodo di pagamento per un abbonamento attivo:

Riattivazione di un abbonamento da on_hold

Riattiva un abbonamento sospeso a causa di un pagamento non riuscito:

Abbonamenti con mandati conformi a RBI

Gli abbonamenti UPI e con carte indiane operano secondo le normative RBI (Reserve Bank of India), con requisiti specifici per i mandati:

Limiti dei mandati

Il tipo e l’importo del mandato dipendono dall’addebito ricorrente dell’abbonamento:
  • Addebiti inferiori alla soglia del mandato (₹15.000 per impostazione predefinita): creiamo un mandato on-demand per l’importo della soglia. L’importo dell’abbonamento viene addebitato periodicamente in base alla frequenza, fino al limite del mandato.
  • Addebiti pari o superiori alla soglia del mandato: creiamo un mandato di abbonamento (o un mandato on-demand) per l’importo esatto dell’abbonamento.
La soglia del mandato è configurabile per merchant o per richiesta tramite mandate_min_amount_inr_paise (paise INR). L’importo registrato presso la banca è max(mandate_floor, billing_amount): la soglia diventa quindi di fatto il limite massimo di autorizzazione visibile al cliente quando la fatturazione è inferiore. Per informazioni dettagliate sui mandati conformi a RBI e sulla soglia configurabile per i metodi di pagamento indiani, consulta la pagina India Payment Methods.

Considerazioni su upgrade e downgrade

Importante: quando effettui l’upgrade o il downgrade degli abbonamenti, considera attentamente i limiti del mandato:
  • Se un upgrade o downgrade produce un importo superiore a Rs 15.000 e oltrepassa il limite di pagamento on-demand esistente, l’addebito della transazione potrebbe non riuscire.
  • In questi casi, il cliente potrebbe dover aggiornare il metodo di pagamento o modificare nuovamente l’abbonamento per stabilire un nuovo mandato con il limite corretto.

Autorizzazione per addebiti di importo elevato

Per addebiti di abbonamento pari o superiori a Rs 15.000:
  • La banca chiederà al cliente di autorizzare la transazione.
  • Se il cliente non autorizza la transazione, questa non andrà a buon fine e l’abbonamento verrà sospeso.

Ritardo di elaborazione di 48 ore

  • Se un upgrade/downgrade comporta un importo addebitato superiore alla soglia minima del mandato (₹15.000 per impostazione predefinita) e oltrepassa il limite di pagamento on-demand esistente, l’addebito della transazione potrebbe non riuscire.
  • Il cliente potrebbe dover aggiornare il metodo di pagamento o modificare nuovamente l’abbonamento per stabilire un nuovo mandato con il limite corretto.
    • Gli addebiti vengono avviati nella data programmata secondo la frequenza dell’abbonamento.
    • L’effettiva detrazione dal conto del cliente avviene solo dopo 48 ore dall’avvio del pagamento.
    • Questa finestra di 48 ore può estendersi fino a 2-3 ore aggiuntive a seconda delle risposte delle API bancarie.

    Finestra di cancellazione del mandato

    Durante la finestra di elaborazione di 48 ore:
    • I clienti possono cancellare il mandato tramite le proprie app bancarie.
    • Se un cliente cancella il mandato durante questo periodo, l’abbonamento rimane attivo (si tratta di un caso limite specifico degli abbonamenti con carte indiane e UPI AutoPay).
    • Tuttavia, la detrazione effettiva potrebbe non riuscire e, in tal caso, l’abbonamento verrà messo on hold.
    Gestione dei casi limite: se fornisci vantaggi, crediti o utilizzo dell’abbonamento ai clienti immediatamente dopo l’avvio dell’addebito, devi gestire correttamente questa finestra di 48 ore nella tua applicazione. Valuta di:
    • Ritardare l’attivazione dei vantaggi fino alla conferma del pagamento
    • Implementare periodi di tolleranza o accesso temporaneo
    • Monitorare lo stato dell’abbonamento per rilevare cancellazioni dei mandati
    • Gestire gli stati di sospensione dell’abbonamento nella logica dell’applicazione
    Monitora i webhook degli abbonamenti per seguire le modifiche dello stato dei pagamenti e gestire i casi limite in cui i mandati vengono cancellati durante la finestra di 48 ore.

Procedure consigliate

  • Inizia con livelli chiari: 2-3 piani con differenze evidenti
  • Comunica i prezzi: mostra totali, proroga e prossimo rinnovo
  • Usa i periodi di prova con criterio: converti con l’onboarding, non solo con il tempo
  • Sfrutta i componenti aggiuntivi: mantieni semplici i piani di base e fai upselling degli extra
  • Testa le modifiche: convalida le modifiche del piano e la proroga in modalità di test
Gli abbonamenti sono una base flessibile per i ricavi ricorrenti. Inizia in modo semplice, testa accuratamente e migliora in base alle metriche di adozione, churn ed espansione.
  • Delay benefit activation until payment confirmation
  • Implement grace periods or temporary access
  • Monitor subscription status for mandate cancellations
  • Handle subscription hold states in your application logic
Monitor subscription webhooks to track payment status changes and handle edge cases where mandates are cancelled during the 48-hour window.

Procedure consigliate

  • Start with clear tiers: 2-3 plans with obvious differences
  • Communicate pricing: Show totals, proration, and next renewal date
  • Use trials thoughtfully: Convert with onboarding, not just time
  • Leverage add-ons: Keep base plans simple and upsell extras
  • Test changes: Validate plan changes and proration in test mode
Subscriptions are a flexible foundation for recurring revenue. Start simple, test thoroughly, and iterate based on adoption, churn, and expansion metrics.
Ultima modifica il 26 settembre 2026