Pular para o conteúdo principal

Introdução

Envie e-mails transacionais profissionais automaticamente quando ocorrerem eventos de pagamento e assinatura. Forneça confirmações de pagamento, atualizações de assinaturas e notificações de falhas através do Keplars sem necessidade de um servidor middleware. Dodo Payments chama a API do Keplars diretamente usando um manipulador de transformação JavaScript. Este integração requer a sua Keplars API Key para autenticação. Encontre-a no painel do Keplars em Configurações → API Keys e verifique um domínio ou endereço de remetente em Domínios.

Começando

No painel do Dodo Payments, navegue até Webhooks → + Adicionar Endpoint e expanda o menu suspenso de integrações. Escolha o cartão de integração Keplars. Selecione o cartão de integração Keplars Forneça sua Keplars API Key. Ela é enviada como um token Bearer em cada solicitação. Digite a URL da API Keplars, a API Key e inscreva-se nos eventos Edite o código de transformação para formatar e-mails para o Keplars. Substitua o endereço de remetente e os IDs de template de exemplo pelos seus. Teste com cargas de exemplo e clique em Criar para ativar o envio de e-mails. 🎉 Os eventos de pagamento agora acionarão automaticamente e-mails transacionais via Keplars.

Exemplos de Código de Transformação

Cada manipulador define webhook.url no endpoint de envio de alta prioridade do Keplars e reescreve webhook.payload em uma solicitação do Keplars (a chave da API é enviada automaticamente como um token Bearer). Substitua payments@mail.yourdomain.com pelo seu remetente verificado e your-keplars-*-template-id pelos seus IDs de template reais. to deve ser um array, mesmo para um único destinatário. Ao usar template_id, não envie também subject ou body. O template os fornece.

E-mail de Confirmação de Pagamento

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

Notificação de Falha de Pagamento

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

E-mail de Boas-vindas à Assinatura

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

E-mail de Cancelamento de Assinatura

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

Dicas

  • Use um domínio ou endereço de remetente verificado para melhor entregabilidade.
  • Crie um template dedicado do Keplars por tipo de evento para que cada e-mail permaneça alinhado à marca e mensagem.
  • Personalize cada e-mail passando dados do cliente, como nome, valor e ID de pagamento, através de params.
  • Teste no modo sandbox primeiro. Envios em sandbox são capturados na Caixa de Testes do Keplars, em vez de entregues.

Resolução de Problemas

  • Verifique se a sua chave de API está correta e ativa no Keplars em Configurações → API Keys.
  • Verifique se o seu domínio ou endereço de remetente está verificado.
  • O Dodo Payments mostra a resposta de erro bruta do Keplars no log de entrega de webhooks. Verifique detalhes lá.
  • O template_id em seu manipulador deve corresponder a um template ativo em sua conta do Keplars. Verifique o ID (e se está ativo) no painel.
  • Cada manipulador verifica webhook.eventType e retorna cedo se não corresponder. Certifique-se de que os eventos corretos estão inscritos no endpoint de webhook do Dodo Payments.
Última modificação em 18 de junho de 2026