Use os endereços de teste do Resend para simular eventos e validar o Webhook e a lógica do seu aplicativo; depois, envie uma mensagem a uma caixa real controlada para confirmar o recebimento e a exibição. A simulação não comprova que uma mensagem chegou à caixa de entrada nem que foi renderizada corretamente em um cliente de e-mail.

Este guia é para você que integra Webhooks do Resend e precisa conferir eventos, assinatura e respostas do endpoint.
Também atende a QA que testa os caminhos de entrega, rejeição e reclamação, e a quem desenvolve um produto independente e quer separar testes simulados da aceitação real.

Última atualização: 22 de outubro de 2026. As informações sobre endereços, eventos e assinatura foram conferidas com a documentação oficial do Resend sobre e-mails de teste, visibilidade de eventos do Webhook e gerenciamento de Webhooks pela API.

Separe simulação de entrega real antes de testar

O primeiro ajuste é tratar como evidências diferentes: uma resposta de sucesso da API, um evento recebido pelo seu endpoint e uma mensagem visível numa caixa real. Um resultado não substitui os outros.

O Resend oferece destinatários de teste que simulam resultados específicos. Eles são úteis para verificar se o seu sistema interpreta um evento, atualiza o estado correto e registra o resultado. Não fazem uma entrega normal a uma caixa de entrada real. A documentação oficial descreve os destinatários e os eventos de teste; consulte-a antes de criar asserções rígidas, pois nomes e comportamentos devem corresponder à referência vigente.

O que um endereço de teste do Resend consegue simular? Os cenários documentados incluem entrega, rejeição e reclamação. Use-os para exercitar os caminhos correspondentes no seu aplicativo; não os interprete como prova de que um servidor de destinatário aceitou a mensagem ou de que ela apareceu na caixa de entrada.

Uma chamada de envio aceita também não fecha o teste. Ela indica que a API processou a solicitação conforme sua resposta. Para validar a integração, confira separadamente o identificador devolvido, a chegada do evento ao endpoint e o efeito persistido no seu sistema. Para entender essa diferença em um fluxo mais amplo, separe a confirmação da API da comprovação de recebimento real.

Use uma matriz de decisão para escolher a evidência certa

A escolha depende da pergunta que você precisa responder. Combine os métodos quando o objetivo for validar tanto o processamento de eventos quanto o recebimento efetivo.

Opção de teste O que ajuda a validar O que não comprova
Destinatário de teste de entrega Interpretação do evento, associação com a mensagem e atualização do estado no aplicativo Recebimento por um servidor externo, chegada à caixa de entrada ou exibição no cliente
Destinatário de teste de rejeição Tratamento do caminho de falha, registro do motivo e comportamento posterior do produto Que uma mensagem real específica será rejeitada pelo mesmo motivo
Destinatário de teste de reclamação Processamento do evento de reclamação e aplicação das regras do produto Reclamação feita por uma pessoa real ou reputação do domínio de envio
Caixa de entrada real controlada Recebimento, conteúdo, links e apresentação em um cliente Cobertura automática de todos os tipos de evento ou comportamento de outros destinatários

A tabela evita uma conclusão comum, mas errada: “o teste de entrega passou, então meu e-mail chega aos usuários”. Ele passou apenas no escopo que aquele cenário simula. Se você precisa verificar se o conteúdo está correto, se o provedor destinatário aceitou a mensagem e onde ela foi exibida, faça um teste adicional com um endereço real sob seu controle.

Valide o evento de entrega no seu aplicativo

Para testar o evento de entrega, escolha o endereço de teste indicado pelo Resend para esse cenário e envie uma mensagem a partir do ambiente da sua aplicação. A documentação de e-mails de teste do Resend é a referência para o destinatário e o resultado esperado; evite copiar endereços de exemplos antigos sem verificar se continuam válidos.

Depois, siga a mensagem pelo seu sistema. Confira se o evento chega ao endpoint e se o processamento associa o resultado à mensagem enviada. Registre, no mínimo, o tipo de evento, o identificador da mensagem, o destinatário correspondente e o horário informado no payload. Compare os campos com o formato oficial atual, em vez de presumir que todos os eventos têm exatamente a mesma estrutura.

Como testar o Webhook de entrega sem confundir aceite da API com recebimento? Faça a solicitação de envio e, em seguida, espere o evento apropriado no seu endpoint; só marque o cenário como aprovado quando o evento e a atualização persistida corresponderem à mensagem e ao destinatário esperados. A resposta da API, sozinha, não é uma confirmação de Webhook nem de caixa de entrada.

Um caso prático: o seu aplicativo envia uma mensagem de confirmação para uma conta de teste e grava o estado “enviada”. Se o processamento de evento não atualiza o estado quando chega a notificação de entrega simulada, a interface pode continuar mostrando um status antigo. O teste deve verificar a transição completa, não apenas se o endpoint respondeu.

Na sua suíte, evite depender de uma espera fixa sem observar a condição esperada. Aguarde o evento dentro do mecanismo de sincronização usado pelo seu teste e produza uma falha diagnóstica se ele não chegar. Não transforme um limite local do teste em uma afirmação sobre o tempo de entrega do Resend: esse tempo pode variar e a documentação citada não estabelece uma garantia universal para o seu ambiente.

Exercite a rejeição e o tratamento do erro

Para verificar uma rejeição simulada, use o destinatário de teste documentado para esse resultado. O objetivo é percorrer o caminho de falha do seu produto: interpretar o tipo do evento, localizar a mensagem afetada, registrar o motivo que veio no payload e evitar exibir uma confirmação de entrega que não ocorreu.

Como testar entrega e rejeição do Webhook do Resend? Execute cenários separados para cada resultado e confirme que o aplicativo os mantém distintos. A rejeição simulada deve acionar o tratamento de falha previsto pelo seu produto, enquanto a entrega simulada deve acionar o caminho de sucesso. Compare o payload recebido com a documentação oficial, sem codificar um motivo de rejeição que não esteja presente no cenário atual.

Uma rejeição gerada para teste não é um diagnóstico geral da capacidade de entrega. Ela não revela, por si só, se uma mensagem para outro destinatário será recusada, se há um problema de autenticação do domínio ou se o conteúdo será classificado como indesejado. Uma falha real pode depender do servidor destinatário e das condições daquela tentativa. Se você investiga um caso real, preserve o evento e os registros correspondentes e faça o diagnóstico do problema com base nos dados daquela tentativa, em vez de extrapolar o resultado simulado.

Confira também o que acontece depois da falha. Seu sistema registra um estado recuperável? A interface permite que a equipe diferencie uma rejeição de um erro interno? Uma tarefa repetida por engano cria notificações duplicadas? Essas verificações de produto são importantes porque o evento de teste só é útil se revelar o comportamento que usuários e operadores realmente verão.

Teste a reclamação sem confundi-la com uma manifestação real

O cenário de reclamação serve para verificar se o aplicativo reconhece o evento e aplica as regras que você definiu. Consulte a documentação oficial do evento e da visibilidade dos Webhooks para conferir os nomes e os dados atuais. Depois, teste se a mensagem é vinculada ao destinatário correto e se a política do seu produto atualiza o estado esperado.

Um evento simulado de reclamação prova que seu domínio recebeu uma reclamação real? Não. Ele exercita o tratamento do evento, mas não é uma ação de uma pessoa na caixa de entrada e não comprova a reputação do remetente, o posicionamento em spam ou a classificação de mensagens por clientes de e-mail.

Para produtos que enviam mensagens, uma reclamação real pode exigir medidas de proteção, como impedir novos envios ao destinatário conforme as regras do serviço e do próprio produto. Defina esse comportamento explicitamente e teste-o no seu ambiente. Não use o cenário simulado para alegar que sua lista, sua política de consentimento ou sua reputação estão adequadas: essas são questões diferentes, com evidências diferentes.

Um caso útil para QA é verificar a sequência inteira: chega o evento de reclamação simulado, o sistema localiza o destinatário, aplica a regra prevista e evita que um envio posterior ignore o estado atualizado. O teste não deve disparar campanhas nem registrar reclamações reais. Restrinja os cenários à aplicação e às contas de teste que você controla.

Verifique assinatura, resposta e processamento repetido

A validação da assinatura protege seu endpoint contra solicitações que não correspondem ao segredo configurado. Na integração, leia a orientação oficial do Resend sobre gerenciamento e validação de Webhooks e use os cabeçalhos e o segredo descritos ali. Não invente nomes de campos nem copie um exemplo sem conferir a documentação atual.

Um ponto de implementação decisivo é preservar o corpo original da solicitação para a verificação criptográfica. Se o framework transforma o JSON antes da validação, os bytes verificados podem não corresponder ao corpo assinado. Organize o middleware de modo que a validação ocorra com o conteúdo bruto necessário, de acordo com o método oficial. Só depois de validar a assinatura interprete o payload como dados confiáveis para o seu fluxo.

Como validar a assinatura durante o teste do Webhook? Envie uma solicitação válida pelo mecanismo de teste e confirme que o endpoint aceita a assinatura. Depois, altere o corpo ou use uma assinatura inválida em um teste isolado: a aplicação deve rejeitar a solicitação sem efetuar a atualização de estado. Não registre o segredo em logs nem o inclua em repositórios ou dados de teste compartilhados.

Além da assinatura, exercite três comportamentos do endpoint:

  • Resposta: confirme que o endpoint devolve uma resposta de sucesso somente depois de aceitar o evento para processamento conforme a arquitetura do seu serviço. Se houver falha interna, não a esconda marcando o evento como concluído.
  • Falha controlada: provoque uma falha no processamento em ambiente de teste e confira os registros e a recuperação. Consulte a documentação vigente para conhecer as regras de entrega e repetição; não assuma uma quantidade fixa de tentativas ou um intervalo universal.
  • Idempotência: processe novamente o mesmo identificador de evento e garanta que a repetição não duplique cobranças, notificações, mudanças de conta ou outras ações. Guarde uma chave de processamento adequada e defina como o sistema reconhece um evento já aplicado.

Uma resposta HTTP bem-sucedida não deve significar que a aplicação ignorou o conteúdo. Por outro lado, se o processamento for assíncrono, a arquitetura pode aceitar o evento e colocá-lo numa fila antes de concluir o trabalho. Nesse caso, teste a aceitação e o processamento em etapas distintas: o endpoint precisa responder conforme o desenho do serviço, e o consumidor da fila precisa atualizar o estado de forma consistente.

Atenção: mantenha os testes de assinatura, falha e repetição em ambiente controlado. Um evento de teste não deve alterar dados de clientes, iniciar campanhas nem acionar integrações de produção.

Complete o teste com uma caixa de entrada real

A simulação não cobre tudo. Quando o requisito é saber se uma mensagem chegou, se o corpo está completo ou se a apresentação está correta, envie uma mensagem separada para um endereço real controlado por você. Verifique o recebimento, o remetente, o assunto, links, imagens e a renderização no cliente relevante para o seu produto.

Essa aceitação também não deve ser generalizada para todos os usuários. Um teste em uma caixa de entrada confirma o resultado naquele destino e naquele contexto. Ele não garante o mesmo comportamento em outros servidores, dispositivos, pastas ou configurações de usuário.

Uma entrega simulada confirma que a mensagem entrou na caixa de entrada real? Não. Para essa conclusão, você precisa observar uma mensagem recebida em uma caixa real. Use a simulação para a lógica do evento e a caixa controlada para validar o fluxo de envio e a apresentação. Se preferir separar o teste do seu endereço pessoal, avalie uma caixa temporária como destino de ensaio; a página de encaminhamento de e-mails explica uma alternativa para organizar o recebimento sem misturar mensagens de teste com a caixa principal.

Para testar conteúdo e entrega, use dados fictícios ou controlados. Não coloque dados pessoais de usuários em ambientes de demonstração se não forem necessários. Uma caixa de teste deve permitir que a equipe confira o resultado sem transformar endereços reais de clientes ou colegas em dados descartáveis de QA.

Feche o ciclo com critérios de aprovação separados

Antes de encerrar o caso, registre qual evidência cada teste produz. Uma implementação fica mais fácil de manter quando “evento recebido”, “estado atualizado” e “mensagem visualizada” são condições diferentes, com asserções próprias.

  • Entrega simulada: o evento correto foi aceito, associado à mensagem e refletido no estado da aplicação.
  • Rejeição simulada: o evento de falha foi reconhecido, o motivo disponível foi registrado e o produto não mostrou sucesso indevido.
  • Reclamação simulada: a regra prevista foi aplicada sem tratar o teste como manifestação de uma pessoa real.
  • Assinatura: uma solicitação válida foi aceita e uma assinatura inválida não atualizou dados.
  • Repetição: o reprocessamento não duplicou efeitos.
  • Recebimento real: uma mensagem foi observada em uma caixa controlada e o conteúdo relevante foi conferido.

Essa divisão ajuda a localizar defeitos. Se a API aceita o envio, mas não chega evento, investigue a configuração e a entrega do Webhook. Se o evento chega, mas o estado não muda, revise o processamento do payload e a persistência. Se o estado está correto, mas a mensagem não aparece na caixa real, investigue o caminho de entrega e o destino. Não use um sucesso num nível para encobrir uma falha em outro.

Para um teste pontual, uma caixa temporária pode ajudar a manter a verificação de recebimento separada do seu endereço pessoal. O MsgGone pode ser uma opção quando você precisa de um destino de teste sem misturar esse fluxo com sua caixa principal; use-o apenas para observar recebimento real, nunca como simulador de Webhooks do Resend. Confira as opções disponíveis na página do MsgGone e mantenha os endereços de teste do Resend para validar os eventos e o processamento da sua aplicação.

Ferramentas MsgGone

Pronto para receber? Dois endereços, sem configuração

Para cadastros e códigos pontuais, use a caixa temporária: copie o endereço e receba na hora; ela se autodestrói ao expirar. Para mensagens que precisam continuar chegando sem expor seu e-mail real, crie um alias de encaminhamento.