Langsung ke konten utama

Pendahuluan

Kirim email transaksional profesional secara otomatis ketika acara pembayaran dan langganan terjadi. Sampaikan konfirmasi pembayaran, pembaruan langganan, dan notifikasi kegagalan melalui Keplars tanpa memerlukan server middleware. Dodo Payments memanggil API Keplars secara langsung menggunakan JavaScript transformation handler.
Integrasi ini memerlukan Keplars API Key Anda untuk autentikasi. Temukan di dashboard Keplars di bawah Settings → API Keys, dan verifikasi domain atau alamat pengirim di bawah Domains.

Memulai

1

Open the Webhook Section

Di dashboard Dodo Payments Anda, navigasikan ke Webhooks → + Add Endpoint dan buka dropdown integrasi.
2

Select Keplars

Pilih kartu integrasi Keplars.
Pilih kartu integrasi Keplars
3

Enter API Key

Masukkan Keplars API Key Anda. Ini dikirim sebagai token Bearer pada setiap permintaan.
Masukkan URL API Keplars, API Key, dan langganan ke acara
4

Configure Transformation

Ubah kode transformasi untuk memformat email bagi Keplars. Ganti alamat pengirim placeholder dan template ID dengan milik Anda sendiri.
5

Test & Create

Uji dengan payload sampel dan klik Create untuk mengaktifkan pengiriman email.
6

Done!

🎉 Acara pembayaran kini akan secara otomatis memicu email transaksional melalui Keplars.

Contoh Kode Transformasi

Setiap handler menetapkan webhook.url ke endpoint pengiriman prioritas tinggi Keplars dan menulis ulang webhook.payload menjadi permintaan Keplars (API key dikirim secara otomatis sebagai token Bearer). Ganti payments@mail.yourdomain.com dengan pengirim terverifikasi Anda dan your-keplars-*-template-id dengan template ID Anda yang sebenarnya.
to harus berupa array, bahkan untuk satu penerima. Saat menggunakan template_id, jangan juga mengirimkan subject atau body. Template menyediakannya.

Email Konfirmasi Pembayaran

payment_succeeded.js
function handler(webhook) {
  if (webhook.eventType !== "payment.succeeded") return webhook;

  const data = webhook.payload.data || {};
  const paymentDate = new Date(webhook.payload.timestamp).toLocaleDateString("en-US", {
    year: "numeric", month: "long", day: "numeric",
  });

  webhook.url = "https://api.keplars.com/api/v1/send-email/high";
  webhook.payload = {
    to: [data.customer?.email],
    from: "payments@mail.yourdomain.com",
    template_id: "your-keplars-payment-success-template-id",
    params: {
      customer_name: data.customer?.name,
      amount: ((data.total_amount || 0) / 100).toFixed(2),
      currency: data.currency || "USD",
      payment_id: data.payment_id,
      payment_method: data.payment_method,
      payment_date: paymentDate,
    },
  };
  return webhook;
}

Notifikasi Gagal Pembayaran

payment_failed.js
function handler(webhook) {
  if (webhook.eventType !== "payment.failed") return webhook;

  const data = webhook.payload.data || {};
  const paymentDate = new Date(webhook.payload.timestamp).toLocaleDateString("en-US", {
    year: "numeric", month: "long", day: "numeric",
  });

  webhook.url = "https://api.keplars.com/api/v1/send-email/high";
  webhook.payload = {
    to: [data.customer?.email],
    from: "payments@mail.yourdomain.com",
    template_id: "your-keplars-payment-failed-template-id",
    params: {
      customer_name: data.customer?.name,
      amount: ((data.total_amount || 0) / 100).toFixed(2),
      currency: data.currency || "USD",
      payment_id: data.payment_id,
      error_message: data.error_message || "Your payment could not be processed.",
      payment_date: paymentDate,
    },
  };
  return webhook;
}

Email Selamat Datang Langganan

subscription_active.js
function handler(webhook) {
  if (webhook.eventType !== "subscription.active") return webhook;

  const data = webhook.payload.data || {};
  const nextBilling = data.next_billing_date
    ? new Date(data.next_billing_date).toLocaleDateString("en-US", {
        year: "numeric", month: "long", day: "numeric",
      })
    : "";

  webhook.url = "https://api.keplars.com/api/v1/send-email/high";
  webhook.payload = {
    to: [data.customer?.email],
    from: "payments@mail.yourdomain.com",
    template_id: "your-keplars-subscription-active-template-id",
    params: {
      customer_name: data.customer?.name,
      subscription_id: data.subscription_id,
      product_id: data.product_id,
      amount: ((data.recurring_pre_tax_amount || 0) / 100).toFixed(2),
      currency: data.currency || "USD",
      billing_interval: data.payment_frequency_interval || "month",
      next_billing_date: nextBilling,
    },
  };
  return webhook;
}

Email Pembatalan Langganan

subscription_cancelled.js
function handler(webhook) {
  if (webhook.eventType !== "subscription.cancelled") return webhook;

  const data = webhook.payload.data || {};
  const cancellationDate = new Date(webhook.payload.timestamp).toLocaleDateString("en-US", {
    year: "numeric", month: "long", day: "numeric",
  });

  webhook.url = "https://api.keplars.com/api/v1/send-email/high";
  webhook.payload = {
    to: [data.customer?.email],
    from: "payments@mail.yourdomain.com",
    template_id: "your-keplars-subscription-cancelled-template-id",
    params: {
      customer_name: data.customer?.name,
      subscription_id: data.subscription_id,
      cancellation_date: cancellationDate,
    },
  };
  return webhook;
}

Tips

  • Gunakan domain atau alamat pengirim yang telah diverifikasi untuk pengiriman yang lebih baik.
  • Buat template Keplars yang didedikasikan untuk setiap jenis acara sehingga setiap email tetap sesuai merek dan pesan.
  • Personalisasikan setiap email dengan mengirimkan data pelanggan seperti nama, jumlah, dan ID pembayaran melalui params.
  • Uji dalam mode sandbox terlebih dahulu. Pengiriman sandbox akan ditangkap di Keplars Test Inbox alih-alih dikirimkan.

Pemecahan Masalah

  • Verifikasi bahwa API key Anda benar dan aktif di Keplars di bawah Settings → API Keys.
  • Verifikasi bahwa domain atau alamat pengirim Anda diverifikasi.
  • Dodo Payments menampilkan respons kesalahan Keplars mentah di log pengiriman webhook. Periksa untuk detail.
  • template_id dalam handler Anda harus cocok dengan template aktif di akun Keplars Anda. Verifikasi ID (dan bahwa itu aktif) di dashboard.
  • Setiap handler memeriksa webhook.eventType dan mengembalikannya lebih awal jika tidak cocok. Pastikan acara yang benar berlangganan di endpoint webhook Dodo Payments.
Terakhir diubah pada 18 Juni 2026