Como reconquistar subscritores cancelados no Stripe
Reconquistar subscritores cancelados no Stripe: o que o Stripe guarda, ler cancellation_details, escolher o momento das ofertas e retomar a faturação.
Um subscritor cancelado não é um desconhecido. Sabe o que comprou, quanto tempo ficou e, muitas vezes, porque saiu. Isso faz deles algumas das pessoas a quem é mais fácil voltar a vender, se lhes perguntar no momento certo com a oferta certa.
Este guia explica o que o Stripe guarda depois de um cancelamento, como ler o motivo, como planear uma sequência de reconquista e como retomar a faturação de forma limpa quando alguém regressa. Os detalhes do Stripe vêm da referência da API de cancelamento de subscrições, da página de cancelamento do customer portal, das retention rules, de coupons and promotion codes e de using webhooks with subscriptions (todos consultados em novembro de 2026).
O que o Stripe guarda depois de um cancelamento
Quando uma subscrição termina, o Stripe envia customer.subscription.deleted. A subscrição passa a canceled e, como diz a referência da API de cancelamento, deixa de a poder atualizar. Regressar significa uma nova subscrição.
O objeto Customer é outra história. Mantém-se, com o seu email, faturas e histórico de pagamentos. É isso que torna a reconquista prática: não parte do zero e, se associar a nova subscrição ao mesmo Customer, os seus relatórios mostram um cliente que regressa e não um cliente novo.
Os cancelamentos agendados ainda não são cancelamentos
Muitos cancelamentos estão definidos para produzir efeito no fim do período pago (cancel_at_period_end). Até essa data, a subscrição continua ativa e o cancelamento pode ser retirado. Esta janela é a sua reconquista mais barata: um email curto “O seu acesso termina a [data]” com uma forma de manter o plano num clique faz muitas vezes mais do que qualquer campanha posterior.
Leia o motivo antes de escrever uma palavra
O Stripe guarda o motivo do fim de uma subscrição em cancellation_details na subscrição, documentado na referência da API de cancelamento:
| Campo | O que contém |
|---|---|
reason |
Porque terminou a subscrição, por exemplo cancellation_requested, payment_failed ou payment_disputed |
feedback |
O motivo escolhido pelo cliente: too_expensive, unused, missing_features, switched_service, too_complex, low_quality, customer_service ou other |
comment |
Texto livre escrito pelo cliente, até 5.000 caracteres |
reason separa o churn voluntário do involuntário. Uma subscrição terminada com payment_failed nunca foi uma decisão; aí, a reconquista certa é um link de atualização do cartão, não um desconto. Para mais sobre esta divisão, veja churn involuntário.
feedback e comment são preenchidos quando o cliente lhe diz. Se usa o customer portal do Stripe, pode ativar uma página de cancelamento que pede um motivo da lista do Stripe, com texto livre quando o cliente escolhe “Outro”. Se construir o seu próprio fluxo de cancelamento, passe a resposta na chamada de cancelamento para que fique com a subscrição.
Trate comment com cuidado. É escrito pelo cliente e pode conter dados pessoais. Guarde-o, leia-o, mas não o cole em modelos.
Retenção no momento do cancelamento
As retention rules do Stripe permitem ao customer portal apresentar uma oferta quando um cliente tenta cancelar, consoante o motivo do cancelamento. O Stripe avalia as regras pela ordem que define e mostra a oferta da primeira correspondência; se nada corresponder, o cliente continua o cancelamento. As ofertas podem ser um cupão de desconto ou, se a opção de troca de plano estiver ativa no portal, uma troca de plano. As retention rules substituem a antiga definição de cupão de retenção na configuração do portal.
Isso é prevenção, não reconquista, mas conta por uma razão: se um cliente já recusou um desconto ao cancelar, enviar o mesmo desconto uma semana depois dificilmente resultará. Registe o que foi oferecido e recusado.
Planeie a sequência de reconquista
Uma sequência prática para a maioria dos produtos de subscrição:
| Quando | Quem | Mensagem |
|---|---|---|
| Antes do fim do período | Cancelamentos agendados | Lembrete da data de fim, um clique para manter o plano |
| Dia 30 | Todo o churn voluntário | O que mudou desde que saiu, ligado ao seu motivo |
| Dia 60 | Quem não regressou | Uma oferta concreta, se o motivo foi o preço |
| Dia 90 | Quem não regressou | Uma última nota, sem pressão, e uma forma fácil de deixar de receber emails |
Ajuste a mensagem ao valor de feedback:
too_expensive: comece por um plano mais barato ou um desconto limitado no tempo no regresso.missing_features: espere até lançar algo relevante e depois diga o que é. Não é preciso desconto.unusedoutoo_complex: ofereça ajuda para começar, uma chamada curta ou um guia, não dinheiro.switched_service: pergunte o que a outra ferramenta faz melhor. Alguns destes regressam; o mais valioso é a resposta.customer_serviceoulow_quality: peça desculpa de forma concreta e diga o que corrigiu. Um desconto sozinho soa a desprezo.
Há exemplos de emails completos nos nossos exemplos de emails de reconquista.
Mantenha a lista limpa
- Exclua os clientes que disputaram uma cobrança (
reasonépayment_disputed). - Exclua quem pediu para não ser contactado, e respeite as regras de consentimento de marketing onde opera.
- Pare a sequência no momento em que alguém volta a subscrever.
Retomar a faturação quando alguém regressa
Use o mesmo Customer
Crie a nova subscrição no ID de Customer existente. Se envia as pessoas para o Stripe Checkout, passe o cliente existente em vez de deixar o Checkout criar um novo, para que o histórico de pagamentos e os relatórios fiquem ligados.
Descontos para clientes que regressam
Os cupões do Stripe têm uma duração que controla durante quanto tempo se aplicam a uma subscrição:
once: apenas a primeira fatura.repeating: um número definido de meses, que tem de especificar.forever: todas as faturas.
Para a reconquista, once ou um cupão repeating curto costuma chegar. Um desconto forever para clientes que regressam ensina as pessoas a cancelar para obter um preço melhor.
Se partilhar um código, use um promotion code por cima do cupão. Uma armadilha: os promotion codes do Stripe podem ser restringidos com restrictions.first_time_transaction, e o Stripe considera que um cliente com pagamentos anteriores ou faturas não anuladas não é um cliente novo. Um cliente que regressa falhará essa verificação. Use um código de reconquista dedicado sem essa restrição, e limite-o antes por data de expiração ou número de utilizações.
Verifique o meio de pagamento
O cartão registado quando saiu pode ter expirado ou sido substituído entretanto. Faça com que o caminho de regresso passe por uma página onde o cliente confirma ou atualiza o cartão, em vez de cobrar em silêncio.
Meça com honestidade
Acompanhe, por mês de cancelamento:
- Quantos clientes regressaram em 90 dias, e em que plano.
- Que valores de
feedbackregressam mais, e quais nunca regressam. - Quantos clientes que regressaram usaram um desconto, e quanto tempo ficaram depois.
Conte uma reativação apenas quando a nova subscrição estiver no mesmo Customer. Sem isso, a sua taxa de churn e o seu número de novos clientes estão ambos errados. Veja como calcular a taxa de churn.
Fazer isto com o NoChurn
O NoChurn lê os cancelamentos do Stripe, incluindo cancellation_details e as respostas do seu próprio fluxo de cancelamento, e envia emails de reconquista aos 30, 60 e 90 dias consoante o motivo do cancelamento. Para as subscrições terminadas por um pagamento falhado, o melhor caminho é a recuperação: novas tentativas inteligentes, emails de recuperação que revê e uma página alojada de atualização do cartão. A retoma da subscrição e o pagamento ficam no Stripe. Veja NoChurn + Stripe.