Ajouter un parcours d’annulation à Maxio
L’annulation dans Maxio Advanced Billing : immédiate ou différée, codes motifs, réglages du Billing Portal, holds, coupons et changements de produit.
Un parcours d’annulation se place entre le bouton « Annuler » et l’annulation : il demande pourquoi, fait une offre adaptée à la raison, et annule proprement si le client veut toujours partir. Maxio Advanced Billing (anciennement Chargify) a déjà plusieurs des briques : annulation différée, codes motifs de churn, holds et changements de produit programmés. Ce guide explique comment elles fonctionnent et comment les assembler en un parcours.
Il s’en tient à la documentation de Maxio : annuler des abonnements, programmer l’annulation d’un abonnement, gérer les abonnements dans le Billing Portal, configurer les fonctionnalités du Billing Portal, codes motifs de churn, scénarios on hold et reprise, appliquer des coupons aux abonnements, les références API update subscription et initiate delayed cancellation, et les exemples de contenus webhook (tous consultés en novembre 2026). Certains exemples d’API de Maxio utilisent encore d’anciennes URL Chargify ; vérifiez les endpoints de votre site.
Comment fonctionne l’annulation dans Maxio
Maxio propose trois moments (annuler des abonnements) :
| Moment | Ce qui se passe |
|---|---|
| Immédiatement | L’abonnement est annulé tout de suite |
| À la fin de la période | Il continue pendant la période payée dans un état Pending Cancellation, puis s’annule |
| À une date programmée | Il s’annule à une date future choisie par vous ou par le client (demande la fonctionnalité de programmation) |
Dans tous les cas, Maxio ne rembourse pas et ne calcule pas de prorata automatiquement. Pour un client qui a choisi de partir, la fin de période est le choix juste par défaut : il garde ce qu’il a payé.
Une annulation en attente peut être retirée : le guide de Maxio pour construire votre propre Billing Portal liste un endpoint distinct pour cela. Via l’API, une annulation différée accepte un code motif et l’indicateur cancel_at_end_of_period ; programmer une date demande que la fonctionnalité Schedule Subscription Cancellation soit activée sur votre site.
Certains abonnements ne peuvent pas être programmés pour s’annuler. Selon Maxio, les abonnements prépayés s’annulent toujours immédiatement, et les abonnements dans des états comme Past Due, Expired ou Paused ne peuvent pas être programmés (programmer une annulation). Votre parcours doit gérer ces cas.
Les codes motifs de churn
Maxio a des codes motifs de churn intégrés. Vous les créez, modifiez, triez et supprimez dans les réglages de votre site, et ils apparaissent quand quelqu’un annule depuis le résumé de l’abonnement. Une fois des codes configurés sur votre site, un motif doit être choisi avant qu’une annulation soit confirmée. Quand des codes sont utilisés, les analyses de churn de Maxio affichent le motif de chaque événement de churn. Utilisez-les même si vous construisez votre propre parcours : envoyez le code motif avec l’annulation, pour que les rapports de Maxio et les vôtres concordent.
Le Billing Portal
Le Billing Portal hébergé de Maxio permet aux clients d’annuler depuis Plan Details, en choisissant entre annulation immédiate et en fin de période (abonnements dans le Billing Portal). Vous le contrôlez avec des interrupteurs distincts dans les fonctionnalités du Billing Portal :
- Allow Immediate Cancellations
- Allow Delayed Cancellations (at end of period)
- Allow Scheduling Cancellations, pour que les clients choisissent une date future
- Display Churn Reason Codes, pour que les clients choisissent un motif en annulant
Le portail demande une confirmation, et Maxio précise qu’il n’y a pas de retour en arrière après cette étape. Ce que le portail ne fait pas, c’est proposer une offre : il enregistre un motif et annule. Si vous voulez une étape de rétention, placez-la dans votre appli avant que le client n’arrive au portail, ou désactivez l’annulation dans le portail et gérez-la vous-même. Si vous gardez l’annulation dans le portail, n’activer que l’annulation différée est un choix raisonnable.
Les offres que Maxio prend en charge
Hold (pause)
Maxio appelle une pause un hold (scénarios on hold et reprise). Pendant un hold, les renouvellements n’ont pas lieu. Un hold peut porter une date de reprise, et l’abonnement reprend alors de lui-même (l’objet subscription a un champ automatically_resume_at). Seul un abonnement Active peut être mis en hold. Un détail compte pour les parcours d’annulation : un abonnement programmé pour s’annuler en fin de période ne s’annule pas pendant le hold ; il s’annule après la reprise.
Le guide de Maxio liste des endpoints de hold et de reprise, mais ses propres pages les montrent sous deux formes de chemin (avec et sans /subscriptions/:id) : vérifiez la référence API actuelle avant de construire dessus.
Coupon
Les coupons Maxio peuvent être ajoutés à un abonnement existant (appliquer des coupons). Deux règles tirées de la doc :
- La durée du coupon se compte à partir du prochain renouvellement de l’abonnement, pas de l’inscription.
- Un coupon ne s’applique qu’aux offres de la même famille de produits.
Les pages que nous avons trouvées décrivent l’ajout d’un coupon dans l’interface d’administration ; vérifiez dans la référence API de Maxio l’appel que vous utiliserez depuis votre appli.
Changement de produit
Pour « trop cher », une offre moins chère vaut souvent mieux qu’une remise. Maxio prend en charge un changement de produit différé (update subscription) : réglez product_handle sur le nouveau produit et product_change_delayed sur true, et le changement a lieu au prochain renouvellement, sans prorata. Envoyer un prochain produit vide annule un changement programmé. Les coupons de l’abonnement ne suivent que s’ils sont limités à la nouvelle offre ou sans restriction.
Construire le parcours
- Envoyez le bouton « Annuler » de votre appli vers votre parcours. Décidez ce que permet le Billing Portal, pour que les clients ne tombent pas sur deux expériences d’annulation différentes.
- Vérifiez ce qui est possible pour cet abonnement. Les abonnements prépayés s’annulent immédiatement ; ceux en Past Due et Paused ne peuvent pas être programmés. Un hold demande un abonnement Active.
- Demandez pourquoi, avec la même liste que vos codes motifs de churn Maxio.
- Montrez une offre adaptée. « Trop cher » : un changement de produit différé ou un coupon. « Je ne m’en sers pas en ce moment » : un hold avec une date de reprise. « Il manque une fonctionnalité » : une réponse d’une personne.
- Gardez « Annuler maintenant » visible à chaque étape. Un clic termine l’annulation, sans accepter d’offre.
- Appliquez le résultat. Annulation différée avec le code motif et
cancel_at_end_of_period; ou le hold, le coupon ou le changement de produit. - Confirmez la date à partir de l’abonnement renvoyé par Maxio, et proposez d’annuler une annulation en attente jusqu’à ce qu’elle prenne effet.
Les webhooks à écouter
D’après les exemples de contenus et les événements webhook de Maxio :
subscription_state_changeportestateetprevious_state: utilisez-le pour voir un abonnement passer en canceled, on hold ou revenir en active.pending_cancellation_changea un exemple de contenu aveccancel_at_end_of_periodetdelayed_cancel_at. Les pages de Maxio que nous avons trouvées ne disent pas exactement quand il se déclenche : testez-le sur votre site.
Maxio indique que les webhooks sont asynchrones et conseille de vérifier que previous_state correspond à ce que vous avez avant de mettre à jour vos données, et de récupérer l’abonnement depuis l’API en cas de doute.
Le faire avec NoChurn
NoChurn se connecte à Maxio avec une clé d’API, importe les clients et les abonnements et suit les webhooks de Maxio. Il ajoute un parcours d’annulation avec raisons, des offres qui deviennent un coupon ou un changement de produit sur l’abonnement Maxio, et un bouton d’annulation en un clic toujours visible, hébergé ou headless via l’API. Il envoie aussi des emails de reconquête à J30, J60 et J90 selon la raison d’annulation et calcule un churn score de 0 à 100. La facturation, les taxes, vos produits et le prélèvement restent dans Maxio et votre passerelle de paiement. NoChurn est gratuit sous 300 $ de MRR. Voir NoChurn + Maxio.