Como reduzir o churn de subscrições no Polar
Como o Polar trata o cancelamento no fim do período vs revogação, novas tentativas de pagamento, customer portal, descontos, motivos e webhooks.
O Polar dá-lhe mais ferramentas contra o churn do que se esperaria de uma plataforma de faturação jovem: cancelamento no fim do período que o cliente pode desfazer, motivos de cancelamento registados, uma opção de pausa e novas tentativas automáticas nas renovações falhadas. Este guia explica como funciona cada peça e como acrescentar um passo de retenção e a reconquista.
Baseia-se na documentação do próprio Polar: managing subscriptions, recovering failed payments, customer portal, discounts, update subscription, webhook events, analytics, fees e o changelog (todos consultados em novembro de 2026). A documentação do Polar muda depressa, por isso verifique a versão da API que usa.
O Polar é o merchant of record
O Polar vende aos seus clientes enquanto merchant of record, tratando dos impostos, dos pagamentos e das disputas. A sua página de taxas diz que cada disputa custa 15 $, ganha ou perdida, descontados do seu saldo. A sua página de revisões de conta explica que o Polar vigia as taxas de chargeback e, para encomendas abaixo de um certo valor, pode reembolsar automaticamente quando recebe um sinal antecipado das redes de cartões. Não responde você mesmo às disputas, mas a forma como trata os cancelamentos tem um efeito direto no número que recebe.
Duas formas de uma subscrição terminar
A página managing subscriptions do Polar descreve dois caminhos.
| Cancelar no fim do período | Revogar | |
|---|---|---|
| Como | PATCH /v1/subscriptions/{id} com cancel_at_period_end: true, ou o interruptor no dashboard |
DELETE /v1/subscriptions/{id} |
| Acesso | Mantido até current_period_end |
Termina de imediato, benefícios revogados |
| Reembolso | Não se aplica | Nenhum emitido |
| Reversível | Sim, até à data de fim (uncancel) | Não |
Para um cliente que pede para cancelar, cancelar no fim do período é a opção por omissão certa: mantém aquilo por que pagou e pode mudar de ideias. O próprio Polar o diz: use o cancelamento no fim do período se quiser a possibilidade de reverter a decisão. Anular o cancelamento repõe cancel_at_period_end a false e limpa ends_at e canceled_at.
Registe o motivo
Quando cancela no fim do período pela API, o Polar aceita um motivo e um comentário opcionais. Os oito códigos de motivo são too_expensive, missing_features, switched_service, unused, customer_service, low_quality, too_complex e other. O Polar pede que só os defina quando o cliente os deu de facto, por exemplo num inquérito, e avisa que o comentário fica visível para o cliente no seu histórico de compras, por isso as notas internas não devem ir para lá.
Os analytics do Polar mostram os motivos de cancelamento em gráficos em que pode clicar para ver as subscrições e os comentários por trás deles. Também distinguem “canceled” (o cliente pediu para cancelar durante o período) de “churned” (o acesso pago terminou de facto), uma distinção útil quando mede um fluxo de cancelamento.
Pausa
Segundo o changelog do Polar, uma pausa é agendada para o fim do período de faturação. Nesse momento a faturação para e os benefícios são revogados, mas a subscrição e o método de pagamento ficam guardados. Pode deixar os clientes pausar a partir do customer portal, e os webhooks subscription.paused e subscription.resumed informam-no quando o estado muda.
O customer portal
O customer portal alojado do Polar permite aos clientes cancelar (no fim do período por omissão) e atualizar o método de pagamento por omissão. As mudanças de plano, as mudanças de licenças e a pausa ou retoma dependem de interruptores nas definições do portal. A atualização do método de pagamento só está disponível no portal alojado, o que mantém os dados do cartão fora dos seus servidores; a Customer Portal API que pode usar para o seu próprio portal não a inclui.
Se os clientes cancelarem a partir do portal alojado, vão diretamente para o cancelamento. Se quiser primeiro um passo de retenção, aponte o botão “Cancelar” da sua app para o seu próprio fluxo e mantenha o portal alojado para os dados de pagamento.
Descontos
Os descontos do Polar aplicam-se uma vez, durante um número fixo de meses ou para sempre. Para dar um desconto a um subscritor existente, defina discount_id com o endpoint update subscription; o Polar aplica a alteração no próximo ciclo de faturação, e null remove-o. A documentação do Polar não diz se trocar um desconto repetido repõe os meses restantes, por isso teste-o em sandbox antes de contar com isso.
O que o Polar faz nos pagamentos falhados
O Polar documenta o seu comportamento em recovering failed payments:
- Quando uma cobrança de renovação falha, a subscrição passa a
past_duee disparasubscription.past_due. - O Polar volta a tentar quatro vezes: 2, 5, 7 e 7 dias após a tentativa anterior, ou seja 2, 7, 14 e 21 dias após a primeira falha.
- Se o cliente atualizar o método de pagamento no portal, o Polar volta a tentar a cobrança de imediato.
- Se todas as novas tentativas falharem, ou se a recusa indicar que o método de pagamento nunca vai funcionar, o Polar deixa de tentar, a subscrição termina, os benefícios são revogados e dispara
subscription.revoked. - Um período de tolerância ao nível da organização pode adiar a revogação dos benefícios. Não altera o calendário de novas tentativas.
As encomendas de medidores por utilização seguem um calendário diferente e não afetam a própria subscrição; veja a página de billing do Polar. O momento das novas tentativas é fixado pelo Polar; o que pode acrescentar é uma comunicação clara com o cliente enquanto a subscrição está em atraso, encaminhando-o para o portal para atualizar o cartão.
Webhooks a ouvir
A partir dos webhook events do Polar:
| Evento | Significado |
|---|---|
subscription.updated |
Dispara a cada alteração, incluindo as de baixo |
subscription.canceled |
Cancelamento pedido; a subscrição pode continuar ativa até ao fim do período |
subscription.uncanceled |
O cliente desfez um cancelamento pendente |
subscription.revoked |
O acesso termina: fim do período após cancelamento, ou novas tentativas esgotadas |
subscription.past_due |
Um pagamento de renovação falhou e ainda pode ser recuperado |
subscription.paused / subscription.resumed |
O estado de pausa mudou |
subscription.cycled |
Uma renovação |
Num cancelamento no fim do período, o Polar envia de imediato subscription.updated e subscription.canceled (estado ainda active, cancel_at_period_end a true) e depois subscription.updated e subscription.revoked quando o período termina. A orientação do Polar é não retirar o acesso em subscription.canceled, mas esperar pelo fim do período ou por subscription.revoked.
Um fluxo de cancelamento no Polar, passo a passo
- Aponte “Cancelar” na sua app para o seu fluxo, não para uma chamada imediata à API.
- Pergunte porquê, usando os oito códigos de motivo do Polar para que as respostas batam com os analytics do Polar, mais um campo de texto livre.
- Mostre uma oferta adequada ao motivo.
too_expensive: um desconto durante alguns meses.unused: uma pausa.missing_featuresoutoo_complex: uma resposta de uma pessoa. - Mantenha “Cancelar agora” visível em todos os passos, a terminar num clique.
- Aplique o resultado. Desconto:
PATCHcomdiscount_id. Cancelamento:PATCHcomcancel_at_period_end: true, o motivo e, se o cliente o escreveu, o comentário. Evite revogar, a menos que o cliente tenha pedido um fim imediato, já que não pode ser desfeito e não emite reembolso. - Confirme a data de fim a partir de
current_period_ende ofereça um botão “manter a minha subscrição” até lá.
Reconquista
Parta de subscription.revoked. Guarde o motivo que o cliente deu, espere e depois contacte-o com algo que responda a esse motivo, enviando-o para um novo checkout, com um desconto se fizer sentido.
Fazer isto com o NoChurn
O NoChurn lê as suas subscrições e webhooks do Polar e acrescenta um fluxo de cancelamento com motivos, ofertas e um cancelamento num clique sempre visível, alojado ou em headless através da API, mais emails de reconquista aos dias 30, 60 e 90 com base no motivo do cancelamento e um score de churn de 0 a 100. O Polar continua a ser o merchant of record: o checkout, os pagamentos, a recuperação de pagamentos, os reembolsos e as disputas ficam no Polar, e as disputas aparecem no NoChurn em modo só de leitura. O NoChurn é grátis abaixo de 300 $ de MRR, com todas as funcionalidades em todos os planos (o seu próprio domínio de email a partir de 9 $). Veja NoChurn + Polar.