SaaS e tecnologia · Cobrança recorrente

Inadimplência e dunning da assinatura

Quanto MRR está preso em cobrança, quanto foi recuperado dentro do ciclo e quais assinaturas o time precisa cobrar hoje, sem contar tentativa como dívida.

UsoEspecífico
EsforçoMédio
Para quemEmpresas de SaaS com cobrança recorrente que perdem clientes por falha de pagamento sem perceber.
Fonte

Faturas, tentativas e assinaturas do billing

Regra

Coorte da primeira falha e janela de um ciclo

Resultado

Recuperação, MRR em cobrança e fila priorizada

Ativação

Fila do CS, health score e agente de IA

O que resolve

  • Churn involuntário separado do voluntário, com a taxa de recuperação de cada mês.
  • Uma fila diária de assinaturas com dinheiro preso, com motivo e próxima ação.
  • Inadimplência na data de referência que bate com o financeiro.

Perguntas de negócio que responde

Faça estas perguntas ao seu agente quando o caso estiver pronto.

Quanto MRR está preso em cobrança hoje?
Qual a taxa de recuperação das falhas de pagamento de agosto?
Quais assinaturas precisam de um cartão novo e quais só de um lembrete?
Quem está inadimplente hoje e há quantos dias?
Quais motivos de recusa mais terminam em cancelamento?
Quanto do churn do mês foi involuntário?

O que você precisa

  • Billing conectado na Nekt com faturas, tentativas de pagamento e assinaturas
  • A política de cobrança: quantas tentativas, quando bloqueia o acesso e quando cancela
  • Os códigos de recusa do gateway mapeados para categorias com ação

O que você recebe

  • Uma tabela de eventos de falha e recuperação, uma linha por tentativa
  • Taxa de recuperação mensal por coorte, com a maturidade de cada mês
  • Fila diária de cobrança por assinatura, priorizada
  • Um agente de IA que responde quem deve, quanto e desde quando

Onde ativar

Fila do CS e do financeiro

Lista diária de assinaturas com dinheiro preso, com motivo, dias e link da fatura, priorizada por MRR.

Health score

Fatura vencida em aberto entra como sinal declarado de risco, ao lado de uso e suporte.

Agente de IA via MCP

Responde quem está inadimplente, há quantos dias e quanto MRR está em cobrança, com a foto da data de referência.

Quer construir?

Os objetos do billing já trazem quase tudo. O trabalho é usar o grão certo para cada pergunta e guardar o estado de bloqueio e de régua, que o billing sobrescreve. O detalhado traz as regras de negócio, as armadilhas e o teste de aceitação. Ou mande tudo direto para o seu agente com o MCP da Nekt.

Ver detalhado
O problema

Cada tentativa de cartão recusada vira uma linha, e a mesma fatura pode ter várias antes de ser paga. Quem conta linhas multiplica a inadimplência; quem olha só o status atual não vê a fatura que falhou e foi paga dias depois, nem a que foi anulada no cancelamento. O resultado é churn involuntário misturado com voluntário e um CS que descobre a falha quando o cliente já saiu.

Como costuma ser feito, e a regra

Cada linha é um erro que já aconteceu na prática.

O jeito comumA regra
01
Contar linhas da tabela de recusas como dívidas.
Tentativa é evento, dívida é a fatura

Guarde as tentativas numa tabela de eventos, uma linha por tentativa, com data, motivo e gateway. Inadimplência, recuperação e fila contam no grão da fatura ou da assinatura. Retentativa automática, segunda via e reemissão são a mesma dívida.

02
Chamar de recuperada só a fatura paga na mesma semana, ou olhar o status de hoje.
Recuperada é quem paga dentro de um ciclo da primeira falha

A coorte do mês são as assinaturas com pelo menos uma falha no mês, ancoradas na primeira falha do mês. Recuperada é a que teve um pagamento com sucesso dentro de um ciclo de cobrança a partir dela: cerca de 30 dias no mensal, 90 no trimestral, um ano no anual. Todas as periodicidades entram, cada uma com a sua janela. Numa base real, a recuperação dos meses fechados ficava perto de metade.

03
Comparar o mês corrente com meses fechados.
Mês recente ainda está maturando

Nos meses recentes, a janela de um ciclo ainda está aberta. Marque o mês como maturando até a janela fechar (no mensal, fim do mês mais 31 dias) e nunca leia a taxa baixa de um mês aberto como piora. Uma leitura semanal com janela curta é outro indicador e não se compara com a mensal.

04
Tratar toda recusa igual, ou agrupar o desconhecido em outros.
O motivo da recusa decide a ação

Normalize os códigos de recusa de cada gateway numa tabela única, com categoria e se vale tentar de novo. Número, CVC ou validade inválidos (incorrect_number, incorrect_cvc, invalid_expiry_month, invalid_expiry_year no Stripe) pedem cartão novo; recusa genérica do emissor ou saldo insuficiente pedem nova tentativa ou lembrete. Códigos que chegam com e sem zero à esquerda são o mesmo. Código fora da tabela aparece como não mapeado, nunca como outro, e alguém revisa toda semana.

05
Mandar a lista inteira de faturas em aberto para o time.
A fila é de quem ninguém está cobrando

Entram as assinaturas vivas com fatura em aberto vencida e sem nova tentativa agendada pelo billing (next_payment_attempt vazio no Stripe), e as canceladas pelo billing nos últimos 30 dias cuja última tentativa falhou e nada foi pago depois. Enquanto o billing ainda está tentando, ele mesmo manda o aviso: não duplique o contato. A fila é uma foto, então confira a fatura ao vivo antes de cobrar.

06
Ordenar a fila por data de criação da fatura.
Prioridade por recência e motivo

Uma régua simples funciona: até 14 dias da falha, recuperar agora; cartão inválido, pedir cartão novo; até 60 dias, reenviar a cobrança com o link da fatura; depois disso, perda provável. Conte os dias pelo vencimento da fatura em aberto mais antiga, não pelo último pagamento, que inclui o ciclo já pago. Ordene por MRR dentro de cada prioridade.

07
Marcar como inadimplente quem atrasou em algum dia do mês e já pagou.
Inadimplência oficial é a foto na data de referência

Inadimplente é quem tem cobrança não cancelada vencida e não paga na data de referência: fim do mês nos meses fechados, hoje no mês corrente. Vencida hoje ainda não conta. Não há carência: um dia de atraso já conta, e a gravidade vem da faixa de dias. Ter atrasado em algum momento do mês é outra métrica, só histórica. Inadimplente não é inativo: o cliente segue na base até o cancelamento.

08
Tirar past_due do MRR e devolver no mês seguinte.
Past_due fica no MRR, marcado

Assinatura past_due continua no MRR marcada como em cobrança até virar canceled ou unpaid. Tirar e devolver quando é paga cria churn e reativação que não aconteceram. Se a empresa decide tirar depois de uma carência (por exemplo, 7 dias), a regra é escrita e igual em todos os meses.

09
Contar como churn no dia em que o cartão é recusado.
Churn involuntário só depois da janela

Cancelamento feito pelo billing, ou pelo time por política de inadimplência, depois de falhas sem pagamento é churn involuntário. Declare o churn só depois da janela de recuperação, com o valor do MRR antes da falha. Uma política comum é desligar quem tem dois ou mais títulos vencidos, com o mais antigo há mais de 60 dias.

10
Supor que todo cliente com mais de 30 dias de atraso está bloqueado.
Bloqueio de acesso precisa de histórico

Billing e produto guardam só se o cliente está bloqueado agora. Grave os eventos de bloqueio e desbloqueio, por webhook ou foto diária, para saber quanto tempo cada cliente ficou bloqueado e se pagou depois. Bloquear após um prazo é decisão operacional, não automática: não deduza bloqueio dos dias de atraso.

Fila de cobrança: prioridade e ação

Dias contados a partir do vencimento da fatura em aberto mais antiga da assinatura.

falha há até 14 diasP1, recuperar agoralembrete com o link da fatura
número, CVC ou validade inválidosP2, pedir cartão novoincorrect_number, incorrect_cvc, invalid_expiry_*
falha entre 15 e 60 diasP2, reenviar cobrança
mais de 60 dias sem pagamentoP3, perda provável
cancelada pelo billing há até 30 dias, sem pagamento depoisJanela de recuperação
billing ainda tentandoFora da filanext_payment_attempt preenchido

Definições

Coorte de falha do mês
assinaturas com pelo menos uma tentativa de pagamento recusada no mês, ancoradas na primeira falha do mês
Taxa de recuperação
assinaturas da coorte com pagamento bem-sucedido dentro de um ciclo da primeira falha / assinaturas da coorte
MRR em cobrança
MRR das assinaturas vigentes com fatura em aberto vencida, na data de referência
Inadimplente na data
cliente com qualquer cobrança não cancelada vencida e não paga na data de referência, sem carência
Dias de atraso
data de referência menos o vencimento da fatura em aberto mais antiga
Churn involuntário
MRR do mês anterior das assinaturas canceladas depois de falha de pagamento sem pagamento posterior, declarado após a janela de recuperação
Aprovação na primeira tentativa
faturas de cobrança automática pagas na primeira tentativa / faturas de cobrança automática do mês

Armadilhas que já aconteceram

Recusas que multiplicaram a dívida

Um painel contava as linhas da tabela de recusas, e a mesma venda aparecia uma vez por retentativa. A inadimplência parecia várias vezes maior que a real.

Conte faturas e assinaturas; tentativas só como eventos.

Mês aberto lido como queda

A recuperação do mês corrente aparecia bem abaixo da média e virou alarme, mas a janela de um ciclo daquele mês ainda estava aberta.

Grave a maturidade na linha e compare só meses fechados.

A conta sumiu junto com a dívida

A visão de clientes só mostrava contas com MRR. A assinatura cancelada pelo billing por falta de pagamento saía da lista justamente na janela em que ainda dava para recuperar.

Mantenha na fila as canceladas pelo billing nos últimos 30 dias.

Fatura anulada, cliente recuperável

No cancelamento, o billing anulou a fatura em aberto. O valor em aberto ficou zero, o lembrete não fazia sentido, e o caso foi descartado como sem dívida.

Valor em aberto zero é válido nesse caso: aborde com reativação, não com lembrete.

Status atual usado como foto

Uma coluna de atraso em algum momento do mês era usada como status atual e marcava como inadimplente quem já tinha pago.

Use a foto na data de referência e rotule a outra como histórica.

Taxa recalculada sobre carga incompleta

A taxa mensal rodava num horário fixo e às vezes lia a versão de ontem da tabela de eventos, ou recalculava em cima de uma carga que tinha falhado.

Dispare depois da carga, por evento, e grave na linha a falha mais recente que a fonte tinha.

Validado em dados reais. Na conta de Stripe da própria Nekt, as faturas que tiveram alguma recusa somam cerca de três tentativas recusadas cada, então contar tentativas triplica a inadimplência. E mais de 8 em cada 10 dessas faturas acabaram pagas depois, o que é recuperação, não perda.

Teste de aceitação

O caso está pronto quando todos os itens passam.

Pacote para o agente

Cole no Claude, ChatGPT ou outro cliente com o MCP da Nekt conectado.

Markdown completo
Inadimplência e dunning
- Tentativa de pagamento é evento. Inadimplência, recuperação e fila contam por fatura ou assinatura, nunca por tentativa.
- Coorte de falha do mês = assinaturas com pelo menos uma recusa no mês, pela primeira falha do mês.
- Recuperada = pagamento com sucesso em até um ciclo da primeira falha: 30 dias mensal, 90 trimestral, 1 ano anual.
- Mês com janela aberta está maturando. Não compare com meses fechados.
- Inadimplente = cobrança não cancelada vencida e não paga na data de referência (fim do mês fechado ou hoje). Vence hoje não conta. Sem carência.
- Inadimplente não é inativo. Past_due segue no MRR marcado como em cobrança.
- Churn involuntário só depois da janela de recuperação, com o MRR de antes da falha.
- Fila de cobrança: só assinaturas sem nova tentativa agendada pelo billing, ou canceladas pelo billing há até 30 dias sem pagamento depois.
- Prioridade: P1 até 14 dias; P2 cartão inválido ou 15 a 60 dias; P3 mais de 60 dias.
- Código de recusa fora da tabela aparece como não mapeado.
Exceções por cliente:
- <cliente>: carência de <dias> dias antes de tirar past_due do MRR.
- <cliente>: política de desligamento com <n> títulos vencidos e o mais antigo há <dias> dias.

Variações

Boleto e Pix

Sem retentativa automática, a régua é de lembretes antes e depois do vencimento, e uma fila preventiva lista quem vence nos próximos 7 dias.

Cobrança no ERP

Quando o título vive no ERP, use faixas de atraso e a marca de negativação, reduzindo a uma linha por nota e CNPJ antes de cruzar.

Previsão de churn involuntário

A política de inadimplência vira a fila de aviso, e quem não está em nenhuma regra recebe uma probabilidade de churn calibrada.