Pendahuluan
Integrasi Resend mengirimkan email transaksional melalui Resend saat peristiwa Dodo Payments terjadi. Gunakan integrasi ini untuk mengonfirmasi pembayaran, menyambut pelanggan baru, dan memberi tahu pelanggan saat pembayaran gagal, menggunakan domain pengiriman Anda sendiri.Integrasi ini memerlukan API key Resend dengan Sending access dan domain pengiriman yang telah diverifikasi di Resend. Anda juga memerlukan akses ke Developer → Webhooks di dashboard Dodo Payments.
Memulai
1
Open the Webhook Section
Di dashboard Dodo Payments, buka Developer → Webhooks lalu klik Add endpoint.

2
Select Resend
Di Integration, pilih Resend. Dashboard akan mengisi Endpoint URL dan kode transformasi untuk Resend, sementara panel How to connect Resend menampilkan langkah-langkah penyiapan.
3
Enter API Key
Di Resend, buka API Keys, klik Create API Key, lalu berikan key tersebut Sending access. Resend menampilkan key yang diawali dengan
re_ hanya sekali. Tempelkan key tersebut ke API key. Dodo Payments mengirimkannya sebagai bearer token dalam header Authorization pada setiap request ke Resend.4
Select Events
Di Subscribed events, pilih hanya peristiwa yang ditangani oleh transformasi Anda. Peristiwa yang dibiarkan tidak berubah oleh transformasi akan diteruskan ke Resend dalam format Dodo Payments, dan Resend akan menolaknya.
5
Configure Transformation
Di bagian Transformation code, edit handler agar setiap peristiwa yang dipilih menjadi email Resend. Mulailah dari contoh.
6
Test & Create
Di bagian Test this code, pilih jenis peristiwa, lalu klik Simulate untuk melihat pratinjau request ke Resend. Setelah itu, klik Create endpoint.
7
Done
Dodo Payments kini mengirimkan email melalui Resend untuk setiap peristiwa yang dipilih. Untuk melihat setiap pengiriman dan respons Resend, buka tab Logs di Developer → Webhooks.
Contoh Kode Transformasi
Setiap handler menetapkanwebhook.url ke endpoint send-email Resend dan mengganti webhook.payload dengan email tersebut. Jumlah Dodo Payments menggunakan unit mata uang terkecil, jadi contoh-contoh ini membaginya dengan 100 dan menampilkan kode mata uang. Untuk mata uang tanpa angka desimal seperti JPY dan KRW, gunakan jumlah tersebut apa adanya.
Email Konfirmasi Pembayaran
Kirim tanda terima saat pembayaran berhasil (payment.succeeded):
payment_confirmation.js
Email Ucapan Selamat Datang untuk Subscription
Sambut pelanggan saat subscription menjadi aktif (subscription.active):
subscription_welcome.js
Pemberitahuan Kegagalan Pembayaran
Minta pelanggan memperbarui metode pembayaran mereka saat pembayaran gagal (payment.failed):
payment_failure.js
Tips
- Kirim dari domain yang telah Anda verifikasi di Resend untuk meningkatkan deliverability.
- Sertakan versi
htmldan versitextuntuk setiap email. - Personalisasikan konten dengan data pelanggan dari payload, seperti
customer.name. - Tulis subjek yang menyatakan hasil atau tindakan yang diperlukan.
- Sertakan tautan berhenti berlangganan dalam email apa pun yang berisi konten marketing.
- Pratinjau setiap template dengan Simulate sebelum membuat endpoint.
- Untuk melewati suatu peristiwa dalam kode, tetapkan
webhook.cancel = truesebelum mengembalikan webhook. Log mencatat pengiriman yang dilewati sebagai berhasil.
Pemecahan Masalah
Emails Not Being Sent
Emails Not Being Sent
- Periksa bahwa API key sudah benar, aktif, dan memiliki Sending access. Untuk menggantinya, edit endpoint, lalu tempelkan key baru di API key.
- Periksa bahwa domain pengirim telah diverifikasi di Resend.
- Periksa bahwa alamat email penerima valid.
- Periksa batas dan kuota pengiriman Resend untuk paket Anda.
- Buka tab Logs di Developer → Webhooks, lalu baca respons Resend terhadap pengiriman yang gagal.
Transformation Errors
Transformation Errors
- Periksa bahwa payload sesuai dengan format send-email Resend. Resend memerlukan
from,to, dansubject. - Periksa bahwa setiap peristiwa yang ditangani kode Anda menetapkan semua field yang diperlukan.
- Periksa bahwa nilai
htmlmerupakan HTML yang valid. - Periksa bahwa alamat
frommenggunakan domain yang telah diverifikasi di Resend.