Pular para o conteúdo
Infrastructure
Como cobrar assinatura no seu app sem escrever webhook

Como cobrar assinatura no seu app sem escrever webhook

Cobrar assinatura no app exige um gateway, planos e um jeito de liberar recursos conforme o pagamento. O Payments cuida dessa ligação, e você só consulta quem tem acesso a quê.

Ciro Cesar Maciel4 min de leituraFeito com ajuda de IA

Nesta página · 9 seções
  1. O que você precisa montar
  2. Como o acesso chega ao app
  3. Quando o webhook importa
  4. O que o Payments não faz
  5. Para o agente de IA
  6. Perguntas frequentes
  7. Para continuar lendo
  8. Conhecer o Payments
  9. Fontes

Cobrar assinatura no app parece simples até aparecer a parte que ninguém mostra: o cliente paga no provedor, mas o seu sistema precisa saber disso para liberar a tela certa. A cobrança em si é a parte fácil; o difícil é manter o que o usuário pagou e o que o app mostra sempre iguais.

O que você precisa montar

Uma cobrança recorrente tem três peças. O gateway é a credencial do provedor de pagamento dentro do seu projeto. O plano é o nome, o preço em centavos, a moeda e o ciclo mensal ou anual. A assinatura é o vínculo entre um usuário seu e um plano, com o status que o provedor informa.

PeçaO que guardaQuem preenche
Projetoas chaves pública e secretavocê, uma vez
Gatewaya credencial do provedorvocê, no painel
Planonome, preço, ciclovocê, no painel ou pela API
AssinaturauserId seu ligado ao planoo Payments, pelo webhook do provedor

Um detalhe de implementação que muda o resultado: o preço é sempre em centavos. 2999 vira 29,99. O painel faz essa conversão para você, mas a API não.

Como o acesso chega ao app

O app não consulta o provedor de pagamento. Ele consulta o Payments, que já traduziu o status da cobrança em permissão. No React, o componente FeatureControl esconde o que o plano do usuário não inclui, e o hook useHasFeature devolve um valor booleano para decisões mais finas.

Essa leitura depende de um identificador: o userId que o seu sistema usa no próprio banco, passado ao PaymentsProvider. É por ele que as assinaturas são encontradas. Por isso ele precisa ser estável; trocar o identificador no meio do caminho faz a assinatura do cliente parecer inexistente.

Quando o webhook importa

Mesmo sem você escrever o endpoint, o provedor precisa avisar o Payments quando um pagamento passa ou falha. Sem esse aviso, a cobrança acontece e o acesso continua fechado. O painel mostra a URL do webhook de cada gateway e tem um botão de teste de conexão, que confirma se a chave responde e em que ambiente.

O teste de conexão serve para outra coisa também: chave de teste conecta e responde com sucesso, mas nenhuma cobrança é real. Confira o ambiente antes de publicar.

O que o Payments não faz

Vale deixar claro o que fica de fora:

  • A assinatura recorrente passa só pela Stripe.

  • Não há métricas de receita, MRR ou churn. A API devolve a contagem de planos e a lista de assinaturas.

  • Não há cupom, desconto ou trial configurável por aqui; isso é do próprio provedor.

  • Faturas e recibos ficam no painel do provedor, acessíveis pelo PortalButton.

Se o seu modelo depende de algum desses itens, o Payments ainda não atende esse caso.

Para o agente de IA

Quem opera a cobrança por um agente conecta o servidor MCP e começa por payments_get_project, que devolve os ids dos gateways e o modo de teste ou produção. Criar plano e gerar link de cobrança estão disponíveis; apagar plano, cancelar assinatura e ler credencial de gateway não estão, de propósito.

Perguntas frequentes

Preciso escrever webhook para a assinatura funcionar?

Você não escreve o endpoint. O Payments recebe os eventos de pagamento do provedor e atualiza a permissão. Para assinatura, a cobrança recorrente passa só pela Stripe. Basta cadastrar a URL que o painel mostra no provedor, ou usar a configuração automática da Stripe.

Posso ter planos em dois gateways diferentes?

Pode. Um projeto guarda vários gateways, por exemplo produção e sandbox. Cada plano pertence a um gateway, e o gatewayId no Provider escolhe qual tabela de preços a página mostra.

O que acontece quando o cliente cancela?

O status da assinatura muda quando o provedor avisa o cancelamento, e a permissão deixa de valer. O cliente pode gerenciar cartão, faturas e cancelamento pelo portal do provedor.

Para continuar lendo

Conhecer o Payments

Cobrança recorrente e permissão por funcionalidade num lugar só, com a Stripe por baixo da assinatura.

Conhecer o Payments.

Fontes

XLinkedInWhatsAppE-mail

Quem escreveu

Ciro Cesar Maciel

Sou marido, pai e trabalho com tecnologia há mais de duas décadas, construindo sistemas para grandes empresas e liderando times técnicos. Desde 2024 desenvolvo ferramentas digitais e aplico Inteligência Artificial para viver e trabalhar com mais clareza, e escrevo aqui sobre isso.

Todos os textos

Continue lendo

Comentários

Seu e-mail fica com Infrastructure para moderar e responder. O comentário aparece depois de aprovado.