Ajouter un parcours d’annulation aux abonnements GoCardless
GoCardless permet de suspendre, reprendre, modifier et résilier les abonnements par API. Un parcours d’annulation : raisons, pause ou prix, et résiliation.
Un client en prélèvement (Direct Debit) qui veut partir a deux portes de sortie : votre appli, ou sa banque. Si votre appli complique les choses, la banque est à un coup de fil, et un mandat annulé ou une demande de remboursement (indemnity claim) est une fin pire pour vous deux qu’une résiliation propre. Un bon parcours d’annulation sur GoCardless sert donc en partie à garder des clients, et en partie à faire en sorte que ceux qui partent le fassent par vous.
Ce guide montre ce que l’API Subscriptions de GoCardless vous permet de faire quand un client veut résilier, et comment construire un parcours d’annulation court par-dessus. Il s’en tient à la documentation de GoCardless : la référence de l’API des abonnements, la référence des événements d’abonnement et le guide développeur Responding to mandate events (tous consultés en novembre 2026). Le site de documentation de GoCardless n’était pas accessible depuis notre environnement de recherche ; nous avons donc vérifié le comportement des endpoints dans les bibliothèques clientes officielles de l’API GoCardless, comme gocardless-pro-ruby, qui sont générées à partir du même schéma d’API et portent les mêmes descriptions.
Ce que GoCardless vous donne
Un abonnement GoCardless crée des paiements sur un mandat selon son calendrier. Son status prend l’une de ces valeurs :
| Statut | Signification |
|---|---|
pending_customer_approval |
En attente de l’approbation du client |
customer_approval_denied |
Le client ne l’a pas approuvé |
active |
Continuera de créer des paiements |
paused |
Ne créera pas de paiements |
finished |
Tous les paiements prévus ont été créés |
cancelled |
Ne créera plus de paiements |
Les quatre appels dont un parcours d’annulation a besoin :
Résilier
POST /subscriptions/:id/actions/cancel résilie immédiatement l’abonnement ; aucun autre paiement n’est créé dessus. L’appel échoue avec cancellation_failed si l’abonnement est déjà résilié ou terminé.
Un paiement déjà créé ne peut être annulé que tant que son statut est pending_submission (POST /payments/:id/actions/cancel). Une fois soumis aux banques, il sera encaissé ou échouera de lui-même. Vérifiez les paiements à venir au moment de confirmer la résiliation, pour ne pas promettre « plus aucun paiement » alors qu’un paiement est déjà en route.
Suspendre et reprendre
POST /subscriptions/:id/actions/pause empêche l’abonnement de créer des paiements :
- Sans
pause_cycles, il est suspendu jusqu’à ce que vous appeliez resume. - Avec
pause_cycles, il est suspendu pendant ce nombre de cycles, etupcoming_paymentsaffiche toujours les dates de prélèvement suivantes. - Cela fonctionne pour les abonnements sans fin ou qui encaissent un nombre fixe (
count) de paiements, pas pour ceux qui ont uneend_date. L’appel échoue avecsubscription_cannot_be_pausedquand la pause n’est pas possible.
POST /subscriptions/:id/actions/resume relance la création des paiements. La date de prélèvement du paiement suivant est le earliest_charge_date_after_resume de l’abonnement.
Cela fait de « suspendre plutôt que résilier » une offre native sur GoCardless, ce qui n’est pas le cas sur toutes les plateformes de paiement.
Modifier
PUT /subscriptions/:id modifie des champs comme le montant. GoCardless documente des limites qui comptent pour les offres de remise :
- L’appel échoue avec
number_of_subscription_amendments_exceededsi le montant a déjà été modifié 10 fois. - Il échoue avec
mandate_payments_require_approvalsi le montant change et que le mandat exige une approbation. - Il échoue avec
subscription_not_activesi l’abonnement n’est plus actif.
Une remise temporaire coûte donc deux modifications (baisse, puis retour au prix). Tenez le compte.
Ne pas toucher au mandat
Résilier un abonnement n’annule pas le mandat. Le guide développeur de GoCardless indique de n’annuler un mandat que si le client l’a explicitement demandé. Le garder permet à un client qui revient de redémarrer sans mettre en place un nouveau prélèvement. Si le client vous demande d’annuler le prélèvement lui-même, faites-le, et dites-le dans la confirmation.
Concevoir le parcours
1. Demander pourquoi
Une question, une liste courte, un clic :
- Trop cher
- Je ne l’utilise pas assez
- J’en avais besoin seulement pour un temps
- Il manque quelque chose
- Je passe chez un autre prestataire
- Autre
Enregistrez la raison avec le client. Vous pouvez aussi la mettre dans les metadata de l’abonnement avant de résilier, pour qu’elle reste attachée à la fiche GoCardless.
2. Une offre adaptée à la raison
| Raison | Offre | Sur GoCardless |
|---|---|---|
| J’en avais besoin seulement pour un temps | Pause de 1 à 3 cycles | pause avec pause_cycles |
| Trop cher | Un prix réduit pendant quelques mois | update du montant, retour au prix programmé (2 modifications) |
| Je ne l’utilise pas assez | Une offre moins chère | update du montant, ou résiliation et nouvel abonnement sur le même mandat |
| Il manque quelque chose, départ | Pas de remise ; demander des précisions | Rien à changer |
Indiquez l’effet exact avant que le client accepte : pour une pause, la date du prochain prélèvement ; pour une remise, le montant réduit, le nombre de paiements concernés et le montant ensuite.
3. La résiliation, toujours visible
Le bouton de résiliation doit figurer à chaque étape, pas après l’offre. Un client qui refuse l’offre est à un clic de la confirmation, qui indique :
- que l’abonnement est résilié ;
- si un paiement déjà soumis sera encore encaissé, et à quelle date ;
- jusqu’à quand il garde l’accès ;
- si le mandat de prélèvement reste en place (et comment l’annuler aussi s’il le souhaite).
Ce dernier point compte avec le prélèvement. Un client qui voit un mandat encore listé à sa banque peut l’y annuler « pour être sûr ». C’est son droit, et il vaut mieux qu’il sache que ce n’est pas nécessaire.
Le brancher
- Chargez l’abonnement et ses paiements à venir à l’ouverture du parcours.
- Utilisez une clé d’idempotence sur les appels pause, resume et cancel (les bibliothèques clientes officielles de GoCardless gèrent les conflits d’idempotence sur ces actions), et désactivez les boutons après le premier clic.
- Écoutez les événements d’abonnement (voir la référence des événements pour la liste complète des actions) pour que votre appli reste synchronisée quand des changements viennent du dashboard ou de GoCardless lui-même, par exemple quand un mandat est annulé et ses abonnements avec lui.
- Programmez les suites dont vos offres ont besoin : le retour au plein tarif, la fin d’une pause indéfinie, un rappel avant la reprise d’un abonnement suspendu.
- Journalisez chaque étape : raison, offre affichée, réponse, heure de la résiliation. Si une demande de remboursement arrive plus tard, cette trace vous aide à comprendre ce qui n’a pas fonctionné.
Mesurer la bonne chose
- Les offres acceptées, par raison.
- Les abonnements suspendus qui reprennent et paient toujours trois mois plus tard.
- Les résiliations passées par votre parcours comparées aux mandats annulés à la banque. Si beaucoup de clients partent par leur banque, l’option de résiliation est trop difficile à trouver.
Le faire avec NoChurn
GoCardless garde l’abonnement, le mandat et l’encaissement. NoChurn ajoute le parcours d’annulation : raisons, une offre adaptée à chaque raison et une résiliation en un clic toujours visible, hébergé par NoChurn ou intégré à votre propre interface avec l’API headless. Sur GoCardless, une résiliation met fin à l’abonnement GoCardless et le mandat reste selon le choix du client. Les raisons de résiliation pilotent les emails de reconquête à J30, J60 et J90 et alimentent le score de churn. Voir NoChurn + GoCardless.