Introdução
A integração com o Resend envia um email transacional por meio do Resend quando ocorre um evento do Dodo Payments. Use-a para confirmar pagamentos, dar boas-vindas a novos assinantes e informar aos clientes quando um pagamento falhar, usando seu próprio domínio de envio.Esta integração requer uma chave de API do Resend com Sending access e um domínio de envio verificado no Resend. Você também precisa ter acesso a Developer → Webhooks no dashboard do Dodo Payments.
Começando
1
Open the Webhook Section
No dashboard do Dodo Payments, acesse Developer → Webhooks e clique em Add endpoint.

2
Select Resend
Em Integration, selecione Resend. O dashboard preenche o Endpoint URL e o código de transformação para o Resend, e o painel How to connect Resend mostra as etapas de configuração.
3
Enter API Key
No Resend, abra API Keys, clique em Create API Key e conceda à chave Sending access. O Resend exibe a chave, que começa com
re_, apenas uma vez. Cole-a em API key. O Dodo Payments a envia como um token bearer no cabeçalho Authorization de cada solicitação ao Resend.4
Select Events
Em Subscribed events, selecione apenas os eventos tratados pela sua transformação. Um evento que a transformação deixa inalterado chega ao Resend no formato do Dodo Payments, e o Resend o rejeita.
5
Configure Transformation
Em Transformation code, edite o handler para que cada evento inscrito se torne um email do Resend. Comece pelos exemplos.
6
Test & Create
Em Test this code, selecione um tipo de evento e clique em Simulate para visualizar a solicitação enviada ao Resend. Em seguida, clique em Create endpoint.
7
Done
O Dodo Payments agora envia um email por meio do Resend para cada evento inscrito. Para ver cada entrega e a resposta do Resend, abra a aba Logs em Developer → Webhooks.
Exemplos de código de transformação
Cada handler definewebhook.url como o endpoint de envio de emails do Resend e substitui webhook.payload pelo email. Os valores do Dodo Payments estão na menor unidade da moeda, portanto os exemplos dividem por 100 e mostram o código da moeda. Para moedas sem casas decimais, como JPY e KRW, use o valor como está.
Email de confirmação de pagamento
Envie um recibo quando um pagamento for concluído (payment.succeeded):
payment_confirmation.js
Email de boas-vindas à assinatura
Dê boas-vindas a um cliente quando uma assinatura se tornar ativa (subscription.active):
subscription_welcome.js
Notificação de falha no pagamento
Peça ao cliente que atualize a forma de pagamento quando um pagamento falhar (payment.failed):
payment_failure.js
Dicas
- Envie a partir de um domínio que você verificou no Resend, o que melhora a capacidade de entrega.
- Inclua uma versão
htmle uma versãotextde cada email. - Personalize o conteúdo com dados do cliente presentes no payload, como
customer.name. - Escreva linhas de assunto que indiquem o resultado ou a ação necessária.
- Inclua um link de cancelamento de inscrição em qualquer email que contenha conteúdo de marketing.
- Visualize cada template com Simulate antes de criar o endpoint.
- Para ignorar um evento no código, defina
webhook.cancel = trueantes de retornar o webhook. Os logs registram uma entrega ignorada como bem-sucedida.
Solução de problemas
Emails Not Being Sent
Emails Not Being Sent
- Verifique se a chave de API está correta, ativa e tem Sending access. Para substituí-la, edite o endpoint e cole uma nova chave em API key.
- Verifique se o domínio do remetente está verificado no Resend.
- Verifique se os endereços de email dos destinatários são válidos.
- Verifique os limites e as cotas de envio do Resend para o seu plano.
- Abra a aba Logs em Developer → Webhooks e leia a resposta do Resend para a entrega que falhou.
Transformation Errors
Transformation Errors
- Verifique se o payload corresponde ao formato de envio de emails do Resend. O Resend exige
from,toesubject. - Verifique se cada evento tratado pelo seu código define todos os campos obrigatórios.
- Verifique se o valor de
htmlé um HTML bem formatado. - Verifique se o endereço de
fromusa um domínio verificado no Resend.