Passer au contenu principal

Introduction

Envoyez automatiquement des emails transactionnels professionnels lorsque des événements de paiement et d’abonnement se produisent. Envoyez des confirmations de paiement, des mises à jour d’abonnement, et des notifications d’échec via Keplars sans nécessiter de serveur intermédiaire. Dodo Payments appelle directement l’API Keplars en utilisant un gestionnaire de transformation JavaScript.
Cette intégration nécessite votre clé API Keplars pour l’authentification. Trouvez-la dans le tableau de bord Keplars sous Paramètres → Clés API, et vérifiez un domaine ou une adresse d’expéditeur sous Domaines.

Démarrage

1

Open the Webhook Section

Dans votre tableau de bord Dodo Payments, allez à Webhooks → + Ajouter un point de terminaison et développez le menu déroulant des intégrations.
2

Select Keplars

Choisissez la carte d’intégration Keplars.
Sélectionner la carte d'intégration Keplars
3

Enter API Key

Fournissez votre clé API Keplars. Elle est envoyée comme jeton Bearer à chaque requête.
Entrez l'URL API Keplars, la clé API, et abonnez-vous aux événements
4

Configure Transformation

Modifiez le code de transformation pour formater les emails pour Keplars. Remplacez l’adresse de l’expéditeur et les ID de modèle par les vôtres.
5

Test & Create

Testez avec des charges utiles d’échantillon et cliquez sur Créer pour activer l’envoi des emails.
6

Done!

🎉 Les événements de paiement déclencheront désormais automatiquement les emails transactionnels via Keplars.

Exemples de Code de Transformation

Chaque gestionnaire définit webhook.url sur le point de terminaison d’envoi haute priorité de Keplars et réécrit webhook.payload en une requête Keplars (la clé API est envoyée automatiquement comme jeton Bearer). Remplacez payments@mail.yourdomain.com par votre expéditeur vérifié et your-keplars-*-template-id par vos ID de modèles réels.
to doit être un tableau, même pour un seul destinataire. Lors de l’utilisation de template_id, ne pas envoyer également subject ou body. Le modèle les fournit.

Email de Confirmation de Paiement

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;
}

Notification d’Échec de Paiement

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 de Bienvenue à l’Abonnement

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 d’Annulation d’Abonnement

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;
}

Conseils

  • Utilisez un domaine ou une adresse d’expéditeur vérifié pour une meilleure délivrabilité.
  • Créez un modèle Keplars dédié par type d’événement pour que chaque email reste conforme à la marque et au message.
  • Personnalisez chaque email en transmettant les données client comme le nom, le montant, et l’ID de paiement via params.
  • Testez d’abord en mode sandbox. Les envois en sandbox sont capturés dans la Boîte de Réception Test Keplars plutôt que livrés.

Dépannage

  • Vérifiez que votre clé API est correcte et active dans Keplars sous Paramètres → Clés API.
  • Vérifiez que votre domaine ou adresse d’expéditeur est vérifié.
  • Dodo Payments affiche la réponse d’erreur brute de Keplars dans le journal de livraison des webhooks. Vérifiez-le pour plus de détails.
  • Le template_id dans votre gestionnaire doit correspondre à un modèle actif dans votre compte Keplars. Vérifiez l’ID (et qu’il est actif) dans le tableau de bord.
  • Chaque gestionnaire vérifie webhook.eventType et revient plus tôt si cela ne correspond pas. Assurez-vous que les événements corrects sont abonnés sur le point de terminaison de webhook Dodo Payments.
Dernière modification le 18 juin 2026