Come aggiungere un flusso di disdetta agli abbonamenti GoCardless
GoCardless permette di mettere in pausa, riprendere, modificare e disdire abbonamenti via API. Come costruirci un flusso di disdetta con motivi e un'offerta.
Un cliente in addebito diretto che vuole andarsene ha due uscite: la tua app o la sua banca. Se la tua app rende la cosa difficile, la banca è a una telefonata di distanza, e un mandato revocato o una richiesta di indennizzo sono una fine peggiore per entrambi rispetto a una disdetta pulita. Un buon flusso di disdetta su GoCardless serve quindi in parte a trattenere i clienti e in parte ad assicurarti che chi se ne va lo faccia tramite te.
Questa guida mostra cosa ti permette di fare l’API Subscriptions di GoCardless quando un cliente vuole disdire, e come costruirci sopra un breve flusso di disdetta. Si attiene alla documentazione di GoCardless: il riferimento dell’API subscriptions, il riferimento degli eventi subscription e la guida per sviluppatori Responding to mandate events (tutti consultati a novembre 2026). Il sito di documentazione di GoCardless non era raggiungibile dal nostro ambiente di ricerca, quindi abbiamo verificato il comportamento degli endpoint sulle librerie client ufficiali dell’API di GoCardless, come gocardless-pro-ruby, che sono generate dallo stesso schema dell’API e riportano le stesse descrizioni.
Cosa ti dà GoCardless
Un abbonamento GoCardless crea pagamenti su un mandato secondo il suo calendario. Il suo status è uno tra:
| Stato | Significato |
|---|---|
pending_customer_approval |
In attesa dell’approvazione del cliente |
customer_approval_denied |
Il cliente non l’ha approvato |
active |
Continuerà a creare pagamenti |
paused |
Non creerà pagamenti |
finished |
Tutti i pagamenti programmati sono stati creati |
cancelled |
Non creerà più pagamenti |
Le quattro chiamate di cui ha bisogno un flusso di disdetta:
Disdire
POST /subscriptions/:id/actions/cancel disdice immediatamente l’abbonamento; non vengono più creati pagamenti al suo interno. Fallisce con cancellation_failed se l’abbonamento è già disdetto o terminato.
Un pagamento già creato può essere annullato solo finché il suo stato è pending_submission (POST /payments/:id/actions/cancel). Una volta inviato alle banche, verrà incassato o fallirà da solo. Controlla i pagamenti in arrivo quando confermi la disdetta, così non prometti “nessun altro pagamento” quando uno è già in viaggio.
Mettere in pausa e riprendere
POST /subscriptions/:id/actions/pause impedisce all’abbonamento di creare pagamenti:
- Senza
pause_cycles, resta in pausa finché non chiami resume. - Con
pause_cycles, resta in pausa per quel numero di cicli, eupcoming_paymentsmostra comunque le date di addebito successive. - Funziona per gli abbonamenti senza fine o che incassano un numero fisso (
count) di pagamenti, non per quelli con unaend_date. Fallisce consubscription_cannot_be_pausedquando la pausa non è possibile.
POST /subscriptions/:id/actions/resume riavvia la creazione dei pagamenti. La data di addebito del pagamento successivo è la earliest_charge_date_after_resume dell’abbonamento.
Questo rende “metti in pausa invece di disdire” un’offerta nativa su GoCardless, cosa che non vale per ogni piattaforma di pagamento.
Modificare
PUT /subscriptions/:id modifica campi come l’importo. GoCardless documenta limiti che contano per le offerte di sconto:
- Fallisce con
number_of_subscription_amendments_exceededse l’importo è già stato modificato 10 volte. - Fallisce con
mandate_payments_require_approvalse l’importo cambia e il mandato richiede l’approvazione. - Fallisce con
subscription_not_activese l’abbonamento non è più attivo.
Uno sconto temporaneo costa quindi due modifiche (giù, poi di nuovo su). Tieni il conto.
Non toccare il mandato
Disdire un abbonamento non revoca il mandato. La guida per sviluppatori di GoCardless dice di revocare un mandato solo se il cliente lo ha chiesto esplicitamente. Mantenerlo significa che un cliente che ritorna può ripartire senza impostare un nuovo addebito diretto. Se il cliente ti chiede di revocare l’addebito diretto stesso, fallo, e dillo nella conferma.
Progettare il flusso
1. Chiedi perché
Una domanda, un elenco breve, un tocco:
- Troppo caro
- Non lo uso abbastanza
- Mi serviva solo per un periodo
- Manca qualcosa
- Passo a un altro fornitore
- Altro
Salva il motivo con il cliente. Puoi anche metterlo nei metadata dell’abbonamento prima di disdire, così resta con il record di GoCardless.
2. Un’offerta adatta al motivo
| Motivo | Offerta | Su GoCardless |
|---|---|---|
| Mi serviva solo per un periodo | Pausa da 1 a 3 cicli | pause con pause_cycles |
| Troppo caro | Un prezzo più basso per qualche mese | update dell’importo, programma il ritorno al prezzo pieno (2 modifiche) |
| Non lo uso abbastanza | Un piano più economico | update dell’importo, o disdetta e nuovo abbonamento sullo stesso mandato |
| Manca qualcosa, passo altrove | Nessuno sconto; chiedi dettagli | Niente da modificare |
Indica l’effetto esatto prima che il cliente accetti: per una pausa, la data del prossimo addebito; per uno sconto, l’importo ridotto, quanti pagamenti copre e l’importo successivo.
3. Disdetta, sempre visibile
Il pulsante di disdetta va su ogni passaggio, non dopo l’offerta. Un cliente che rifiuta l’offerta è a un clic dalla conferma, che dice:
- che l’abbonamento è disdetto;
- se un pagamento già inviato verrà comunque incassato, e in che data;
- fino a quando mantiene l’accesso;
- se il mandato di addebito diretto resta attivo (e come revocarlo se lo desidera).
Quest’ultimo punto conta con l’addebito diretto. Un cliente che vede un mandato ancora elencato presso la sua banca potrebbe revocarlo lì “per sicurezza”. È un suo diritto, ed è meglio che sappia che non è necessario.
Collegare tutto
- Carica l’abbonamento e i suoi pagamenti in arrivo quando si apre il flusso.
- Usa una chiave di idempotenza sulle chiamate di pausa, ripresa e disdetta (le librerie client ufficiali di GoCardless gestiscono i conflitti di idempotenza su queste azioni), e disattiva i pulsanti dopo il primo clic.
- Ascolta gli eventi degli abbonamenti (vedi il riferimento degli eventi per l’elenco completo delle azioni) così la tua app resta allineata quando le modifiche arrivano dalla dashboard o da GoCardless stesso, per esempio quando un mandato viene revocato e i suoi abbonamenti con lui.
- Programma i seguiti di cui hanno bisogno le tue offerte: il ritorno al prezzo pieno, la fine di una pausa a tempo indeterminato, un promemoria prima che un abbonamento in pausa riparta.
- Registra ogni passaggio: motivo, offerta mostrata, risposta, ora della disdetta. Se più tardi arriva una richiesta di indennizzo, questa traccia ti aiuta a capire cosa è andato storto.
Misura la cosa giusta
- Offerte accettate, per motivo.
- Abbonamenti in pausa che riprendono e pagano ancora tre mesi dopo.
- Disdette tramite il tuo flusso rispetto ai mandati revocati in banca. Se molti clienti se ne vanno tramite la banca, l’opzione di disdetta è troppo difficile da trovare.
Farlo con NoChurn
GoCardless tiene l’abbonamento, il mandato e l’incasso. NoChurn aggiunge il flusso di disdetta: motivi, un’offerta adatta a ogni motivo e una disdetta in un clic sempre visibile, ospitata da NoChurn o integrata nella tua interfaccia con l’API headless. Su GoCardless, una disdetta chiude l’abbonamento GoCardless e il mandato resta come sceglie il cliente. I motivi di disdetta guidano le email di win-back a 30, 60 e 90 giorni e alimentano il churn score. Vedi NoChurn + GoCardless.