Skip to main content
Este guia mostra como integrar a Chargefy em uma aplicação Next.js completa, do setup inicial até o processamento de pagamentos com PIX, Cartão de Crédito e Boleto.

Pré-requisitos

Setup do projeto

1. Instalar dependências

2. Configurar variáveis de ambiente

Crie ou atualize o arquivo .env.local:
.env.local
Nunca exponha o CHARGEFY_ACCESS_TOKEN no frontend. Use-o apenas em Server Components, API Routes ou Server Actions.

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/chargefy
3

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:
Use a URL HTTPS gerada pelo ngrok (ex: https://abc123.ngrok.io/api/webhooks/chargefy) como URL do webhook no dashboard.
No ambiente sandbox, webhooks são enviados imediatamente, sem delay de processamento.

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:
  • CHARGEFY_ACCESS_TOKEN definido 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
  • 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)
  • Endpoint de webhook responde com 200 em 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
  • Fluxo de cancelamento funciona corretamente
  • Webhook subscription.canceled revoga acesso
  • Webhook subscription.active libera 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.