Skip to main content

Visão Geral

O boilerplate mínimo do Next.js é um app inicial com o Dodo Payments já conectado. Adicione suas chaves de API e IDs de produtos para obter uma página de preços que abre o checkout, um endpoint de webhook para eventos de pagamento e um link para o Customer Portal.
Este boilerplate usa o App Router do Next.js 16 com TypeScript, Tailwind CSS 4 e o adaptador @dodopayments/nextjs. Para adicionar os mesmos route handlers a um app existente, consulte o Next.js Adaptor.

Recursos

O boilerplate inclui:
  • Configuração rápida: passe do clone a uma página de preços em funcionamento em cerca de cinco minutos.
  • Checkout: um fluxo de checkout pré-configurado criado com base no @dodopayments/nextjs.
  • Página de preços: uma página de preços com tema escuro, estilizada com Tailwind CSS.
  • Handler de webhook: um endpoint que verifica cada assinatura de webhook e executa seu código para o evento.
  • Customer Portal: um link no cabeçalho que abre o Customer Portal, onde os clientes gerenciam suas assinaturas.
  • TypeScript: definições de produtos e handlers tipados.
  • Checkout pré-preenchido: envia o nome e o e-mail do cliente ao checkout, para que ele não precise digitá-los novamente.

Pré-requisitos

Antes de começar, você precisa de:
  • Node.js 20.9 ou posterior, exigido pelo Next.js 16.
  • Uma conta do Dodo Payments, para criar uma chave de API e um segredo de assinatura de webhook no dashboard.

Início rápido

1

Clone the Repository

2

Install Dependencies

3

Get API Credentials

Cadastre-se no Dodo Payments e obtenha suas credenciais no dashboard:
Crie ambos enquanto o seletor de Live Mode na barra lateral estiver desativado. Uma chave do modo de teste funciona somente com DODO_PAYMENTS_ENVIRONMENT=test_mode, e os pagamentos no modo de teste não movimentam dinheiro real.
4

Configure Environment Variables

Copie o arquivo de exemplo para criar um arquivo .env no diretório raiz:
Defina os valores com suas credenciais do Dodo Payments:
Os route handlers leem estas variáveis:
  • DODO_PAYMENTS_API_KEY autentica os handlers de checkout e Customer Portal.
  • DODO_PAYMENTS_WEBHOOK_KEY verifica as assinaturas de webhook.
  • DODO_PAYMENTS_RETURN_URL é o local para onde o checkout envia o cliente após o pagamento.
  • DODO_PAYMENTS_ENVIRONMENT é test_mode ou live_mode.
Não faça commit do arquivo .env no controle de versão. O .gitignore do repositório já o exclui.
5

Add Your Products

Substitua os produtos de exemplo em src/lib/products.ts pelos seus próprios produtos. Defina cada product_id como o ID de um produto em Products no seu dashboard:
A página de preços exibe name, description, price e features deste arquivo. O checkout cobra o preço definido no produto no Dodo Payments, portanto mantenha price sincronizado com ele.
6

Run the Development Server

Abra http://localhost:3000 para ver sua página de preços.

Estrutura do projeto

Os route handlers de checkout, Customer Portal e webhook ficam em src/app/api/:

Personalização

Atualizar informações do produto

Edite src/lib/products.ts para alterar:
  • IDs dos produtos, em Products no seu dashboard do Dodo Payments
  • Preços
  • Recursos
  • Descrições

Pré-preencher dados do cliente

src/app/components/ProductCard.tsx envia um nome e um e-mail definidos diretamente no código em cada solicitação de checkout. Substitua-os pelos dados do usuário autenticado:

Atualizar o Customer Portal

O link do Customer Portal em src/app/components/Header.tsx abre /api/customer-portal com um ID de cliente definido diretamente no código. Substitua-o pelo ID de cliente do Dodo Payments do usuário autenticado:
Para obter um ID de cliente para testes, conclua uma compra de teste e copie o ID do cliente em Customers no dashboard. Em produção, busque o ID no seu backend.

Eventos de webhook

O handler em src/app/api/webhook/route.ts verifica cada solicitação com DODO_PAYMENTS_WEBHOOK_KEY e, em seguida, trata dois eventos:
  • onSubscriptionActive é executado quando uma assinatura se torna ativa (subscription.active).
  • onPaymentSucceeded é executado quando um pagamento é concluído com sucesso (payment.succeeded).
Adicione sua lógica de negócio dentro destes handlers:
Para tratar mais eventos, adicione os respectivos handlers, como onSubscriptionCancelled. O Next.js Adaptor lista todos os handlers compatíveis. O Dodo Payments não consegue acessar localhost. Para desenvolvimento local, use um túnel como o ngrok para expor seu servidor local e use a URL do túnel como endpoint de webhook.

Implantação

Compilar para produção

Fazer deploy na Vercel

[ Fazer deploy com a Vercel ](https://vercel.com/new/clone?repository-url=https://github.com/dodopayments/dodo-nextjs-minimal-boilerplate) Adicione as quatro variáveis de ambiente no dashboard da Vercel e defina DODO_PAYMENTS_RETURN_URL como sua URL de produção.

Atualizar a URL do webhook

Após fazer o deploy, adicione a URL do webhook de produção no Dodo Payments Dashboard, usando seu domínio no lugar de example.com:
Cada endpoint tem seu próprio segredo de assinatura. Copie o segredo do novo endpoint para DODO_PAYMENTS_WEBHOOK_KEY no seu ambiente de produção.

Solução de problemas

Exclua node_modules e package-lock.json e reinstale as dependências:
Verifique estas causas comuns:
  • O ID do produto não existe no seu dashboard do Dodo Payments.
  • A chave de API ou DODO_PAYMENTS_ENVIRONMENT em .env está incorreta. Uma chave do modo de teste funciona somente com test_mode.
Procure o erro no console do navegador e no terminal que executa npm run dev.
Para testes locais, use o ngrok para expor seu servidor:
No seu Dodo dashboard, adicione um endpoint com a URL HTTPS do ngrok seguida de /api/webhook. Copie o segredo de assinatura desse endpoint para DODO_PAYMENTS_WEBHOOK_KEY no seu arquivo .env.

Saiba mais

Suporte

Para obter ajuda com o boilerplate:
Última modificação em 26 de setembro de 2026