>
Micro-SaaS & MVPs Claude 3.5 Sonnet

Billing por Uso (Metered) com Stripe Metered Billing

Backend que registra eventos de uso do usuário e fatura mensalmente via Stripe metered billing, com página de consumo em tempo real.

EPEquipe Prompt Salvo ·Criado em 24 de set. de 2026 ·Atualizado em 13 de out. de 2026
2cópias
0joinhas
0favoritos

O prompt

Implemente um sistema de cobrança por uso (usage-based / metered billing) para o SaaS {{nome_saas}} em Node.js/TypeScript + Stripe.

Parâmetros:
- Nome do SaaS: {{nome_saas}}
- Unidade Faturável: {{unidade}} (ex.: 'créditos de IA', 'páginas processadas')
- Preço por 100 unidades: {{preco_100}} centavos
- Dia do Faturamento Mensal: {{dia_faturamento}} (1 a 28)

Requisitos:
1. Tabela UsageEvent { id, userId, subscriptionId, quantity, description, createdAt } + endpoint POST /api/usage (autenticado) que registra eventos; validação Zod (quantity > 0, máx. 100k por evento).
2. Agendamento mensal (cron ou Stripe Billing): no dia {{dia_faturamento}} do mês, somar os UsageEvents de cada assinatura ativa e reportar via stripe.subscriptionItems.reportUsage com o price metered configurado — idempotente (guarda o período já faturado em tabela BillingPeriod).
3. Tratamento de falha: se o reportUsage falhar, retry exponencial 3x e depois marca o período como 'failed' para intervenção manual + log estruturado.
4. Endpoint GET /api/usage/summary (autenticado): consumo do mês atual por tipo de evento, projeção de custo (consumo × {{preco_100}}/100) e limite/alerta configurável (ex.: 80% do gasto médio dos últimos 3 meses).
5. Página /consumo no front (React ou HTML simples): gráfico de barras diário do mês, total em R$/US$ e aviso quando passa do alerta — dados vindos do summary.
6. Documente no README: como criar o metered price no dashboard da Stripe e qual env var aponta para ele (METERED_PRICE_ID).

Como usar

  1. Substitua {{nome_saas}}, {{unidade}} e {{preco_100}}; defina {{dia_faturamento}} (ex.: 1).
  2. Cole no Claude dentro de um projeto Node/TS com Prisma — as tabelas, rotas e o job mensal são criados.
  3. No dashboard da Stripe, crie um preço 'metered' para o plano e guarde o ID em METERED_PRICE_ID; rode o job manualmente (npm run bill:now) em modo teste antes do primeiro ciclo real.
  4. Confira /consumo com dados de teste: o gráfico diário e a projeção devem bater com os UsageEvents criados via POST /api/usage.

Exemplo de saída

Módulo billing (~250 linhas): tabela UsageEvent + BillingPeriod para idempotência, POST /api/usage validado por Zod (máx. 100k/evento), job mensal somando eventos e chamando reportUsage com retry exponencial 3x + estado 'failed' para intervenção, GET /summary com projeção de custo e alerta em 80% da média, página /consumo com gráfico diário e README do metered price.

Guias relacionados

Prompts para produtividade no trabalho (curadoria + análise)Reuniões, e-mails, planilhas e relatórios: os prompts do catálogo que mais economizam tempo, com o porquê de cada um.Prompts para programação e revisão de códigoBoilerplate, refatoração e code review com auditoria de segurança: como pedir código que compila de primeira.Prompt chains: encadear prompts para tarefas complexasQuando um prompt não basta: decomponha o trabalho em etapas com saída de uma alimentando a entrada da outra.
Usar na extensão