Pré-requisitos
- Node.js 18+
- Next.js 14+ (App Router)
- Uma conta Chargefy com Supabase JWT
- Pelo menos um produto criado no dashboard
Setup do projeto
1. Instalar dependências
2. Configurar variáveis de ambiente
Crie ou atualize o arquivo.env.local:
.env.local
3. Criar cliente Chargefy
Crie um arquivo utilitário para inicializar o SDK:lib/chargefy.ts
Listar produtos
Use um Server Component para buscar e exibir seus produtos:app/products/page.tsx
Criar sessão de checkout
Server Action
Crie uma Server Action para iniciar o checkout:app/actions/checkout.ts
Página de checkout
app/checkout/page.tsx
Checkout via API (Server-Side)
Para controle total, crie o checkout e confirme o pagamento diretamente via API:Checkout com PIX
app/api/checkout/pix/route.ts
Checkout com Cartão de Crédito
app/api/checkout/card/route.ts
Checkout com Boleto
app/api/checkout/boleto/route.ts
Página de sucesso
app/checkout/success/page.tsx
Receber webhooks
Webhooks são essenciais para receber notificações de pagamentos assíncronos (PIX e Boleto) e atualizações de assinaturas.1. Criar endpoint de webhook
app/api/webhooks/chargefy/route.ts
2. Configurar webhook no dashboard
1
Acessar configurações
Vá até Dashboard → Configurações → Webhooks e clique em “Novo Webhook”.
2
Configurar URL
Insira a URL do endpoint:
https://seusite.com/api/webhooks/chargefy3
Selecionar eventos
Selecione os eventos que deseja receber:
checkout.updated, subscription.active, subscription.canceled.4
Copiar secret
Copie o Webhook Secret gerado e adicione ao seu
.env.local como CHARGEFY_WEBHOOK_SECRET.3. Testar localmente com ngrok
Para receber webhooks em desenvolvimento local:https://abc123.ngrok.io/api/webhooks/chargefy) como URL do webhook no dashboard.
Gerenciar assinaturas
Listar assinaturas do cliente
app/dashboard/subscriptions/page.tsx
Cancelar assinatura (Server Action)
app/actions/subscription.ts
Checkout embarcado
Para uma experiência de checkout sem redirecionamento, use o checkout embarcado:app/components/EmbeddedCheckout.tsx
Usar o componente
app/checkout/embedded/page.tsx
Estrutura final do projeto
Checklist de produção
Antes de ir para produção, verifique:Segurança
Segurança
-
CHARGEFY_ACCESS_TOKENdefinido apenas no servidor (não exposto no frontend) - Webhook signature verification está habilitada
- HTTPS habilitado em todos os endpoints
- Validação de input em todos os formulários
Pagamentos
Pagamentos
- Testou checkout com PIX no sandbox
- Testou checkout com Cartão de Crédito (aprovação e recusa)
- Testou checkout com Boleto (geração e compensação simulada)
- Testou parcelamento (1x, 6x, 12x)
- Página de sucesso trata todos os status (
succeeded,confirmed,failed)
Webhooks
Webhooks
- Endpoint de webhook responde com
200em menos de 30 segundos - Handlers são idempotentes (processar o mesmo evento 2x não causa duplicação)
- Logs de webhook configurados para debugging
- Tratamento de erros em todos os handlers
Assinaturas
Assinaturas
- Fluxo de cancelamento funciona corretamente
- Webhook
subscription.canceledrevoga acesso - Webhook
subscription.activelibera acesso - Página mostra status correto da assinatura
Próximos passos
Checkout Embarcado
Customize a experiência de checkout diretamente no seu site.
Webhooks
Configure webhooks para receber notificações em tempo real.
SDK TypeScript
Referência completa do SDK com todos os métodos disponíveis.
Ambiente Sandbox
Teste sua integração com dados simulados antes de ir para produção.

