Réduire le churn des abonnements sur Polar
Comment Polar gère la résiliation en fin de période ou la révocation, les nouvelles tentatives, le portail client, les remises, les raisons et les webhooks.
Polar vous donne plus d’outils contre le churn qu’on ne l’attendrait d’une jeune plateforme de facturation : une résiliation en fin de période que le client peut annuler, des raisons de résiliation enregistrées, une option de pause, et des nouvelles tentatives automatiques sur les renouvellements échoués. Ce guide explique comment fonctionne chaque élément, et comment ajouter par-dessus une étape de rétention et de la reconquête.
Il s’en tient à la documentation de Polar : gérer les abonnements, récupérer les paiements échoués, le portail client, les remises, update subscription, les événements webhook, les analytics, les frais et le changelog (tous consultés en novembre 2026). La documentation de Polar évolue vite : vérifiez la version de l’API que vous utilisez.
Polar est le marchand officiel
Polar vend à vos clients en tant que merchant of record (marchand officiel), et gère la fiscalité, les paiements et les litiges. Sa page des frais indique que chaque litige coûte 15 $, gagné ou perdu, déduits de votre solde. Sa page sur les revues de compte explique que Polar surveille les taux de chargeback et, pour les commandes en dessous d’une certaine valeur, peut rembourser automatiquement quand il reçoit un signal précoce des réseaux de cartes. Vous ne répondez pas vous-même aux litiges, mais votre façon de gérer les résiliations a un effet direct sur leur nombre.
Deux façons de mettre fin à un abonnement
La page de Polar sur la gestion des abonnements décrit deux chemins.
| Résiliation en fin de période | Révocation | |
|---|---|---|
| Comment | PATCH /v1/subscriptions/{id} avec cancel_at_period_end: true, ou l’interrupteur du dashboard |
DELETE /v1/subscriptions/{id} |
| Accès | Conservé jusqu’à current_period_end |
Prend fin immédiatement, avantages révoqués |
| Remboursement | Sans objet | Aucun |
| Réversible | Oui, jusqu’à la date de fin (uncancel) | Non |
Pour un client qui demande à résilier, la résiliation en fin de période est le bon choix par défaut : il garde ce qu’il a payé, et il peut changer d’avis. Polar le dit lui-même : utilisez la résiliation en fin de période si vous voulez pouvoir revenir sur la décision. Annuler la résiliation remet cancel_at_period_end à false et vide ends_at et canceled_at.
Enregistrez la raison
Quand vous résiliez en fin de période via l’API, Polar accepte une raison et un commentaire facultatifs. Les huit codes de raison sont too_expensive, missing_features, switched_service, unused, customer_service, low_quality, too_complex et other. Polar demande de ne les renseigner que si le client les a vraiment donnés, par exemple dans un questionnaire, et prévient que le commentaire est visible par le client dans son historique d’achats : les notes internes n’y ont pas leur place.
Les analytics de Polar affichent les raisons de résiliation dans des graphiques où l’on peut cliquer pour voir les abonnements et commentaires qui les composent. Elles distinguent aussi « canceled » (le client a demandé à résilier pendant la période) de « churned » (l’accès payant a réellement pris fin), une distinction utile pour mesurer un parcours d’annulation.
La pause
Selon le changelog de Polar, une pause est planifiée pour la fin de la période de facturation. À ce moment-là, la facturation s’arrête et les avantages sont révoqués, mais l’abonnement et le moyen de paiement restent enregistrés. Vous pouvez laisser les clients mettre en pause depuis le portail client, et les webhooks subscription.paused et subscription.resumed vous signalent les changements d’état.
Le portail client
Le portail client hébergé de Polar permet aux clients de résilier (en fin de période par défaut) et de mettre à jour leur moyen de paiement par défaut. Les changements d’offre, de nombre de sièges et la pause ou la reprise dépendent d’interrupteurs dans les réglages du portail. La mise à jour du moyen de paiement n’est disponible que dans le portail hébergé, ce qui garde les données de carte hors de vos serveurs ; la Customer Portal API que vous pouvez utiliser pour votre propre portail ne la couvre pas.
Si les clients résilient depuis le portail hébergé, ils vont directement à la résiliation. Si vous voulez d’abord une étape de rétention, faites pointer le bouton « Résilier » de votre app vers votre propre parcours, et gardez le portail hébergé pour les informations de paiement.
Les remises
Les remises de Polar s’appliquent une fois, pendant un nombre de mois fixé, ou indéfiniment. Pour accorder une remise à un abonné existant, renseignez discount_id avec l’endpoint update subscription ; Polar applique le changement au prochain cycle de facturation, et null la retire. La documentation de Polar ne dit pas si remplacer une remise récurrente remet à zéro les mois restants : testez-le en sandbox avant de compter dessus.
Ce que fait Polar sur les paiements échoués
Polar documente son comportement dans récupérer les paiements échoués :
- Quand un prélèvement de renouvellement échoue, l’abonnement passe en
past_dueetsubscription.past_dueest envoyé. - Polar retente quatre fois : 2, 5, 7 et 7 jours après la tentative précédente, soit 2, 7, 14 et 21 jours après le premier échec.
- Si le client met à jour son moyen de paiement dans le portail, Polar retente le prélèvement immédiatement.
- Si toutes les tentatives échouent, ou si le refus signifie que le moyen de paiement ne fonctionnera jamais, Polar arrête les tentatives, l’abonnement prend fin, les avantages sont révoqués, et
subscription.revokedest envoyé. - Une période de grâce au niveau de l’organisation peut retarder la révocation des avantages. Elle ne change pas le calendrier des tentatives.
Les commandes de compteurs à l’usage suivent un autre calendrier et n’affectent pas l’abonnement lui-même ; voir la page de facturation de Polar. Le calendrier des tentatives est fixé par Polar ; ce que vous pouvez ajouter, c’est une communication claire avec le client tant que l’abonnement est en impayé, qui l’envoie vers le portail pour mettre à jour sa carte.
Les webhooks à écouter
D’après les événements webhook de Polar :
| Événement | Signification |
|---|---|
subscription.updated |
Envoyé à chaque changement, y compris ceux ci-dessous |
subscription.canceled |
Résiliation demandée ; l’abonnement peut rester actif jusqu’à la fin de la période |
subscription.uncanceled |
Le client a annulé une résiliation en attente |
subscription.revoked |
L’accès prend fin : fin de période atteinte après une résiliation, ou tentatives épuisées |
subscription.past_due |
Un paiement de renouvellement a échoué et peut encore être récupéré |
subscription.paused / subscription.resumed |
L’état de pause a changé |
subscription.cycled |
Un renouvellement |
Pour une résiliation en fin de période, Polar envoie immédiatement subscription.updated et subscription.canceled (statut toujours active, cancel_at_period_end à true), puis subscription.updated et subscription.revoked à la fin de la période. Polar recommande de ne pas retirer l’accès sur subscription.canceled, mais d’attendre la fin de la période ou subscription.revoked.
Un parcours d’annulation sur Polar, étape par étape
- Faites pointer « Résilier » de votre app vers votre parcours, pas vers un appel API immédiat.
- Demandez pourquoi, avec les huit codes de raison de Polar pour que les réponses s’alignent sur ses analytics, plus un champ de texte libre.
- Montrez une offre qui correspond à la raison.
too_expensive: une remise pendant quelques mois.unused: une pause.missing_featuresoutoo_complex: une réponse d’une personne. - Gardez « Résilier maintenant » visible à chaque étape, avec une fin en un clic.
- Appliquez le résultat. Remise :
PATCHavecdiscount_id. Résiliation :PATCHaveccancel_at_period_end: true, la raison et, si le client en a écrit un, le commentaire. Évitez la révocation sauf si le client a demandé une fin immédiate, car elle est irréversible et ne rembourse rien. - Confirmez la date de fin à partir de
current_period_end, et proposez un bouton « garder mon abonnement » jusque-là.
La reconquête
Partez de subscription.revoked. Gardez la raison donnée par le client, attendez, puis contactez-le avec quelque chose qui répond à cette raison, et envoyez-le vers un nouveau checkout, avec une remise si c’est adapté.
Le faire avec NoChurn
NoChurn lit vos abonnements et webhooks Polar et ajoute un parcours d’annulation avec raisons, offres et un bouton d’annulation en un clic toujours visible, hébergé ou headless via l’API, plus des emails de reconquête à J30, J60 et J90 selon la raison de la résiliation, et un churn score de 0 à 100. Polar reste le marchand officiel : checkout, paiements, récupération des paiements, remboursements et litiges restent chez Polar, et les litiges apparaissent en lecture seule dans NoChurn. NoChurn est gratuit jusqu’à 300 $ de MRR, avec toutes les fonctionnalités dans toutes les offres (votre propre domaine d’email dès 9 $). Voir NoChurn + Polar.