Novos Recursos
1. Análise por Produto
Cada produto agora possui seu próprio painel de análises dedicado. Navegue até Produtos > [Selecione um Produto] para acessar métricas detalhadas específicas daquele produto, organizadas em cinco abas:
| Aba | O que você recebe |
|---|
| Visão Geral | Receita total, contagem de pagamentos bem-sucedidos, gráfico de tendência de receita de 30 dias (diária ou cumulativa) e uma tabela de transações filtrável |
| Clientes | Top 3 clientes classificados por gasto com visão de pódio, além de uma tabela completa de detalhamento de clientes |
| Retenção | Taxa de churn de clientes, taxa de churn de receita e um gráfico de tendência de linha dupla para identificar padrões |
| Assinantes | Todas as assinaturas do produto com status, data de início, próxima data de cobrança e valor |
| MRR | Gráfico de barras empilhadas de Receita Recorrente Mensal com detalhamentos de Novo MRR, MRR de Expansão, MRR Cancelado e MRR Líquido |
Todas as abas suportam um filtro de data (padrão Todos os Tempos) para que você possa analisar qualquer período.
Use a aba Retenção para identificar produtos com alto churn cedo e a aba MRR para acompanhar se a receita de expansão está superando a receita perdida mês a mês.
Saiba mais: Product-Level Analytics
2. Suporte Verifi RDR no Dodo Payments
O Dodo Payments agora oferece suporte ao Visa Rapid Dispute Resolution (RDR) impulsionado pela Verifi — uma ferramenta automatizada de prevenção de disputas que resolve disputas elegíveis da Visa antes de se tornarem chargebacks formais. Quando um portador de cartão inicia uma disputa, o RDR a intercepta e emite automaticamente um reembolso se a transação estiver abaixo do seu limite configurado em USD.
Por que isso importa
| Benefício | Impacto |
|---|
| Redução da taxa de disputas | Disputas resolvidas pelo RDR não contam para o limite de 0,9% da Visa |
| Sem taxas de disputa | Evite taxas não reembolsáveis de US15−US 25 por disputa |
| Zero esforço operacional | Sem necessidade de coleta de evidências ou prazos de resposta |
| Melhor experiência do cliente | Portadores de cartão recebem reembolsos instantâneos |
| Proteção da conta | Mantenha-se fora do Programa de Monitoramento de Disputas da Visa (VDMP) |
Ultrapassar a taxa de disputas de 0,9% da Visa ou 100 disputas/mês aciona o VDMP, com multas crescentes de até mais de US$ 50.000/mês. O RDR ajuda você a ficar bem abaixo desses limites.
Como Funciona
- O portador do cartão inicia uma disputa com o banco
- O RDR intercepta a disputa antes que vire um chargeback formal
- Se o valor da transação estiver igual ou abaixo do seu limite, um reembolso é emitido automaticamente
- A disputa é resolvida instantaneamente e não conta contra a sua taxa de disputas
Transações reembolsadas automaticamente pelo RDR aparecem como uma disputa perdida no painel do Dodo Payments. Isso é esperado — o reembolso foi emitido automaticamente para evitar um chargeback formal.
Para ativar o Verifi RDR na sua conta, entre em contato com support@dodopayments.com para configurar o seu limite.
Saiba mais: Visa RDR Documentation
3. DodoPayments CLI
Apresentamos a nova DodoPayments CLI (dodopayments-cli) — gerencie todo o fluxo de trabalho do Dodo Payments diretamente no terminal. Construída para desenvolvedores que preferem a linha de comando, a CLI permite gerenciar produtos, pagamentos, clientes, descontos, licenças, complementos, reembolsos e até criar sessões de checkout sem sair do editor.
Instalação
npm install -g dodopayments-cli
Comandos Principais
| Comando | Descrição |
|---|
dodo login | Autentique-se com sua chave de API (abre o navegador) |
dodo products list | Liste todos os produtos |
dodo payments list | Liste todos os pagamentos |
dodo customers create | Crie um novo cliente |
dodo checkout new | Crie uma sessão de checkout e obtenha a URL |
dodo wh listen | Encaminhe webhooks de teste em tempo real para seu servidor local via WebSocket |
dodo wh trigger | Envie cargas úteis de webhook simuladas para qualquer endpoint |
Testes de Webhook
A CLI inclui duas ferramentas poderosas para desenvolvimento:
dodo wh listen — abre uma conexão WebSocket para encaminhar webhooks de teste em tempo real para o seu servidor local, preservando cabeçalhos originais para testes de verificação de assinatura
dodo wh trigger — envia cargas úteis de webhook simuladas de forma interativa, suportando todos os 22 tipos de evento de assinaturas, pagamentos, reembolsos, disputas e licenças
O ouvinte de webhook funciona apenas com uma chave de API em modo de teste. Certifique-se de estar logado com uma chave de modo de teste antes de usar dodo wh listen.
Saiba mais: CLI Documentation
O Portal do Cliente foi completamente redesenhado com uma interface limpa e unificada. O portal renovado apresenta uma navegação por barra lateral esquerda e seções organizadas, proporcionando aos clientes uma experiência de autoatendimento mais intuitiva.
Novidades
| Seção | Recursos |
|---|
| Assinaturas Ativas | Veja todas as assinaturas ativas com detalhes do plano, ciclo de cobrança e próxima data de pagamento |
| Métodos de Pagamento | Gerencie métodos de pagamento salvos, adicione novos cartões e atualize os dados de pagamento |
| Histórico de Cobranças | Veja faturas anteriores com recibos em PDF para download |
| Informações de Cobrança | Edite nome, e-mail, telefone e endereço de cobrança |
| Detalhes da Assinatura | Consulte informações detalhadas da assinatura com opções para cancelar ou alterar o plano |
| Alterações de Plano | Faça upgrade ou downgrade via Coleções de Produtos diretamente no portal |
Os clientes também podem atualizar métodos de pagamento para assinaturas ativas ou reativar assinaturas em espera devido a pagamentos falhos — tudo a partir do portal renovado.
O portal renovado está disponível em https://customer.dodopayments.com/login/{business_id} no modo ao vivo e https://test.customer.dodopayments.com/login/{business_id} no modo de teste.
Saiba mais: Customer Portal
5. Atualização de Método de Pagamento no Checkout Inline
O checkout inline agora suporta atualizações de método de pagamento para assinaturas. Quando um cliente precisa atualizar o método de pagamento (para uma assinatura ativa ou para reativar uma assinatura em espera), o fluxo de atualização do método de pagamento pode ser renderizado diretamente no layout da sua página usando o checkout inline — proporcionando uma experiência integrada e fluida.
Como Funciona
- Chame a API de Atualização de Método de Pagamento para obter um
payment_link:
const response = await client.subscriptions.updatePaymentMethod('sub_123', {
type: 'new',
return_url: 'https://example.com/return'
});
- Use o
payment_link retornado como o checkoutUrl no checkout inline:
DodoPayments.Checkout.open({
checkoutUrl: response.payment_link,
elementId: "dodo-inline-checkout"
});
O iframe inline renderiza apenas o formulário de coleta do método de pagamento, permitindo que os clientes digitem novos dados de cartão ou selecionem um método salvo sem sair da sua página.
Para assinaturas em espera, o fluxo de atualização do método de pagamento cria automaticamente uma cobrança pelos valores restantes. Monitore os webhooks payment.succeeded e subscription.active para confirmar a reativação.
Saiba mais: Inline Checkout | Subscription Payment Method Updates
6. Suporte de Preenchimento Automático de ID Fiscal para Sessões de Checkout
Agora você pode preencher automaticamente o ID Fiscal (por exemplo, VAT, GST) ao criar uma sessão de checkout usando o parâmetro tax_id. Isso é ideal para transações B2B em que você já conhece o número de identificação fiscal do cliente. Quando um ID Fiscal é preenchido automaticamente, o campo é pré-preenchido e bloqueado no formulário de checkout.
const session = await client.checkoutSessions.create({
product_cart: [{ product_id: 'prod_123', quantity: 1 }],
customer: { customer_id: 'cus_123' },
billing_address: { country: 'DE' },
tax_id: 'DE999999999',
return_url: 'https://yoursite.com/return'
});
O parâmetro tax_id requer um billing_address com pelo menos um campo country. A elegibilidade fiscal é validada em tempo real e regras de cobrança reversa são aplicadas automaticamente para transações B2B qualificadas.
Use a flag allow_customer_editing_tax_id para controlar se os clientes podem modificar o ID Fiscal preenchido previamente e allow_tax_id para alternar a visibilidade do ID Fiscal no checkout.
Saiba mais: Checkout Sessions - Tax ID | B2B Payments
7. Chave de Licença e E-mail no Redirecionamento da URL de Retorno
Após o cliente finalizar o checkout, o Dodo Payments agora adiciona license_key e email como parâmetros de consulta ao seu redirecionamento return_url, além dos parâmetros já existentes payment_id/subscription_id e status.
Parâmetros de Consulta Adicionados
| Parâmetro | Tipo | Condição |
|---|
payment_id | string | Sempre presente para pagamentos únicos |
subscription_id | string | Sempre presente para pagamentos de assinatura |
status | string | Sempre presente |
license_key | string | Presente se o produto tiver chaves de licença habilitadas (separadas por vírgulas quando houver várias) |
email | string | Presente se o cliente tiver um e-mail registrado |
URLs de redirecionamento de exemplo:
# One-time payment with license key
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com
# Subscription with multiple license keys
https://yoursite.com/return?subscription_id=sub_xxx&status=active&license_key=LK-001,LK-002&email=customer%40example.com
Use esses parâmetros de consulta para exibir chaves de licença ou enviar um e-mail de confirmação imediatamente na sua página de retorno, sem precisar de uma chamada API extra.
Saiba mais: Checkout Sessions - Return URL | License Keys in Return URL
8. API de Atualização de E-mail do Cliente
O endpoint PATCH /customers/{customer_id} agora suporta a atualização programática de endereços de e-mail de clientes. Atualize e-mail junto com nome, telefone e metadados em uma única chamada API.
await client.customers.update('cus_123', {
email: 'newemail@example.com',
name: 'Updated Name'
});
Campos Atualizáveis
| Campo | Tipo | Descrição |
|---|
email | string | null | Endereço de e-mail do cliente |
name | string | null | Nome exibido do cliente |
phone_number | string | null | Número de telefone em formato internacional |
metadata | object | null | Pares chave-valor personalizados |
Atualizações de e-mail do cliente também estão disponíveis pelo Portal do Cliente (autoatendimento), pelo painel e pela CLI via dodo customers update.
Saiba mais: Customer Update API | Customer Management
9. Lançamento do Adaptador Bun
Apresentando @dodopayments/bun — um adaptador dedicado para o servidor nativo do Bun (Bun.serve()). Integre checkout, portal do cliente e webhooks com o Bun em poucas linhas de código.
Instalação
bun add @dodopayments/bun
Configuração Rápida
import { Checkout, CustomerPortal, Webhooks } from "@dodopayments/bun";
Bun.serve({
routes: {
"/api/checkout": Checkout({
bearerToken: process.env.DODO_PAYMENTS_API_KEY!,
returnUrl: process.env.DODO_PAYMENTS_RETURN_URL!,
environment: process.env.DODO_PAYMENTS_ENVIRONMENT!,
}),
"/api/customer-portal": CustomerPortal({
bearerToken: process.env.DODO_PAYMENTS_API_KEY!,
environment: process.env.DODO_PAYMENTS_ENVIRONMENT!,
}),
"/api/webhooks": Webhooks({
webhookKey: process.env.DODO_PAYMENTS_WEBHOOK_KEY!,
onPaymentSucceeded: async (payload) => {
console.log("Payment succeeded:", payload.data.payment_id);
},
onSubscriptionActive: async (payload) => {
console.log("Subscription active:", payload.data.subscription_id);
},
}),
},
});
O adaptador Bun suporta os três fluxos de checkout (estático, dinâmico e baseado em sessão), geração de sessão do portal do cliente e tratamento seguro de webhooks com verificação de assinatura e validação Zod para 22 tipos de evento.
O adaptador Bun junta-se à nossa família de 11 adaptadores de framework, incluindo Next.js, Nuxt, Express, Fastify, Hono, Astro, SvelteKit, Remix, TanStack Start, Better Auth e Convex.
Saiba mais: Bun Adapter Documentation | Framework Adapters Overview