Introducción
La integración de Resend envía un correo electrónico transaccional a través de Resend cuando ocurre un evento de Dodo Payments. Úsala para confirmar pagos, dar la bienvenida a nuevos suscriptores e informar a los clientes cuando un pago falla, desde tu propio dominio de envío.Esta integración requiere una clave de API de Resend con Sending access y un dominio de envío verificado en Resend. También necesitas acceso a Developer → Webhooks en el dashboard de Dodo Payments.
Comenzando
1
Open the Webhook Section
En el panel de Dodo Payments, ve a Developer → Webhooks y haz clic en Add endpoint.

2
Select Resend
En Integration, selecciona Resend. El dashboard completa la Endpoint URL y el código de transformación para Resend, y el panel How to connect Resend muestra los pasos de configuración.
3
Enter API Key
En Resend, abre API Keys, haz clic en Create API Key y asigna a la clave Sending access. Resend muestra la clave, que comienza con
re_, una sola vez. Pégala en API key. Dodo Payments la envía como un bearer token en el encabezado Authorization de cada solicitud a Resend.4
Select Events
En Subscribed events, selecciona solo los eventos que maneja tu transformación. Un evento que la transformación deja sin cambios llega a Resend en el formato de Dodo Payments, y Resend lo rechaza.
5
Configure Transformation
En Transformation code, edita el handler para que cada evento suscrito se convierta en un correo electrónico de Resend. Comienza con los ejemplos.
6
Test & Create
En Test this code, selecciona un tipo de evento y haz clic en Simulate para previsualizar la solicitud a Resend. Luego haz clic en Create endpoint.
7
Done
Dodo Payments ahora envía un correo electrónico a través de Resend por cada evento suscrito. Para ver cada entrega y la respuesta de Resend, abre la pestaña Logs en Developer → Webhooks.
Ejemplos de código de transformación
Cada handler establecewebhook.url en el endpoint de envío de correos de Resend y reemplaza webhook.payload por el correo electrónico. Los importes de Dodo Payments están en la unidad monetaria más pequeña, por lo que los ejemplos los dividen entre 100 y muestran el código de moneda. Para monedas sin decimales, como JPY y KRW, usa el importe tal cual.
Correo electrónico de confirmación de pago
Envía un recibo cuando un pago se realiza correctamente (payment.succeeded):
payment_confirmation.js
Correo electrónico de bienvenida de suscripción
Da la bienvenida a un cliente cuando una suscripción se activa (subscription.active):
subscription_welcome.js
Notificación de pago fallido
Pide al cliente que actualice su método de pago cuando un pago falla (payment.failed):
payment_failure.js
Consejos
- Envía los correos desde un dominio que hayas verificado en Resend, lo que mejora la entregabilidad.
- Incluye una versión
htmly una versióntextde cada correo electrónico. - Personaliza el contenido con datos del cliente del payload, como
customer.name. - Escribe asuntos que indiquen el resultado o la acción necesaria.
- Incluye un enlace para cancelar la suscripción en cualquier correo electrónico que contenga contenido de marketing.
- Previsualiza cada plantilla con Simulate antes de crear el endpoint.
- Para omitir un evento en el código, establece
webhook.cancel = trueantes de devolver el webhook. Los logs registran una entrega omitida como exitosa.
Solución de problemas
Emails Not Being Sent
Emails Not Being Sent
- Comprueba que la clave de API sea correcta, esté activa y tenga Sending access. Para reemplazarla, edita el endpoint y pega una clave nueva en API key.
- Comprueba que el dominio del remitente esté verificado en Resend.
- Comprueba que las direcciones de correo electrónico de los destinatarios sean válidas.
- Comprueba los límites y las cuotas de envío de Resend para tu plan.
- Abre la pestaña Logs en Developer → Webhooks y lee la respuesta de Resend a la entrega fallida.
Transformation Errors
Transformation Errors
- Comprueba que el payload coincida con el formato de envío de correos de Resend. Resend requiere
from,toysubject. - Comprueba que cada evento que maneja tu código establezca todos los campos obligatorios.
- Comprueba que el valor de
htmlsea HTML válido. - Comprueba que la dirección de
fromuse un dominio verificado en Resend.