> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Keplars

> Envie e-mails transacionais por meio do Keplars com base em eventos do Dodo Payments.

## 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é <b>Webhooks → + Adicionar Endpoint</b> e expanda o menu suspenso de integrações.

Escolha o cartão de integração <b>Keplars</b>.

<img src="https://mintcdn.com/dodopayments/tM0KgwbOo2xwg7zr/images/integrations/keplars/select.png?fit=max&auto=format&n=tM0KgwbOo2xwg7zr&q=85&s=776a4a2228efa0822b15b13d2baaf5bb" alt="Selecione o cartão de integração Keplars" style={{ maxHeight: '500px', width: 'auto' }} width="1040" height="731" data-path="images/integrations/keplars/select.png" />

Forneça sua Keplars API Key. Ela é enviada como um token Bearer em cada solicitação.

<img src="https://mintcdn.com/dodopayments/tM0KgwbOo2xwg7zr/images/integrations/keplars/api-key.png?fit=max&auto=format&n=tM0KgwbOo2xwg7zr&q=85&s=f3e0917155715d0587a6012c1bfd3f26" alt="Digite a URL da API Keplars, a API Key e inscreva-se nos eventos" style={{ maxHeight: '500px', width: 'auto' }} width="982" height="854" data-path="images/integrations/keplars/api-key.png" />

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 <b>Criar</b> 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

```javascript payment_succeeded.js icon="js" expandable theme={null}
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

```javascript payment_failed.js icon="js" expandable theme={null}
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

```javascript subscription_active.js icon="js" expandable theme={null}
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

```javascript subscription_cancelled.js icon="js" expandable theme={null}
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.
