> For the complete documentation index, see [llms.txt](https://ajuda.ensinio.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ajuda.ensinio.com/vendas/webhooks.md).

# Webhooks

Webhooks são uma forma de compartilhar informações de uma aplicação para outra, permitindo ampliar e integrar recursos sem a necessidade de uma integração nativa.\
\
Assim, você pode integrar a sua plataforma na Ensinio a outro sistema e automatizar o controle de seus produtos e usuários.&#x20;

As informações são condicionadas a eventos, e são enviadas quando um determinado evento acontece, seja um novo cadastro, compra aprovada ou até mesmo o pagamento recorrente bem-sucedido. O melhor é que você pode escolher quais eventos deseja receber.

#### Criando uma configuração <a href="#id-3-criando-uma-configuracao" id="id-3-criando-uma-configuracao"></a>

1. Para criar uma configuração você precisa acessar o **Admin Console**. Em seguida, siga os seguintes passos:
2. Procure por **App Store** no menu lateral esquerdo e clique em **Webhooks**

<figure><img src="/files/FOtTPErNalncGt1iD02u" alt=""><figcaption></figcaption></figure>

3. Após isso, clique no botão azul de **Criar webhook**

<figure><img src="/files/TbC3IAOJOuhvAcpknMoB" alt=""><figcaption></figcaption></figure>

4. Preencha as informações obrigatórias e clique em **Confirmar** para salvar e criar seu webhook

<figure><img src="/files/Z6atJiRoqpFjjB1CMXQv" alt=""><figcaption></figcaption></figure>

5. Depois que tudo estiver configurado você pode testar clicando no botão de **Enviar teste**&#x20;

<figure><img src="/files/nnIpAwbAQjaDqLgZTjFh" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Enviaremos informações **fictícias** para cada um dos eventos selecionados.
{% endhint %}

Para acompanhar o status dos eventos disparados, você pode clicar em **Webhooks** e depois em **Histórico**.

<figure><img src="/files/mB4XMbnukLSRdIISLopV" alt=""><figcaption></figcaption></figure>

#### Reenviando um evento <a href="#id-3-reenviando-um-evento" id="id-3-reenviando-um-evento"></a>

Para reenviar um evento, basta clicar nele e na tela que aparecer, clicar no botão de **Reenviar webhook**.&#x20;

<figure><img src="/files/lQuq57rFKarbaHnn85TY" alt=""><figcaption></figcaption></figure>

#### **Resposta da requisição HTTP**

O envio de informações usando webhooks usa o protocolo de comunicação para sistemas **HTTP**, após o envio dos dados você pode checar se tudo ocorreu como esperado verificando o status da requisição. Os códigos de status são agrupados em cinco grupos: \
\
**100 - 199:** São informativos;\
**200 - 299:** Respostas de sucesso;\
**300 - 399:** Redirecionamento;\
**400 - 499:** Erro do cliente;\
**500 - 599:** Erro de servidor.\
\
Aqui estão alguns dos principais erros que podem acontecer:\
\
**Erro 403 - Forbidden (Proibido)**\
\
Erro 403 significa que a solicitação foi recebida, mas o recebedor se recusou a atendê-la, assim negando-a. Esse erro pode ocorrer caso não tenha permissão para realizar a solicitação ou a chave de verificação (token) não estiver correta.\
\
**Erro 404 - Not Found (Não encontrado)**\
\
Erro 404 significa que a URL configurada para receber os dados não existe.\
\
**Erro 500 - Internal Server Error (Erro do Servidor Interno)**\
\
Erro 500 significa que a solicitação não foi compreendida. Os motivos podem ser vários, este erro acontece quando não é possível especificar o erro real que ocorre durante a solicitação, o mais comum é rota não encontrada. \
\
**Erro 503 - Service unavailable (Serviço indisponível)**\
\
Erro 503 significa que a solicitação não foi atendida pelo recebedor (entidade externa que recebe as informações), podendo estar indisponível por recursos insuficientes ou simplesmente um problema com o servidor.

### Eventos <a href="#id-2-eventos" id="id-2-eventos"></a>

<details>

<summary>Eventos condicionados aos pedidos</summary>

* Pedido aprovado;
* Pedido aguardando pagamento;
* Pedido expirado;
* Pedido recusado;
* Pedido reembolsado;
* Chargeback;
* Checkout iniciado;
* Checkout abandonado.

</details>

<details>

<summary>Eventos condicionados às ações dos usuários</summary>

* Conta criada;
* Senha cadastrada;
* Redefinição de senha solicitada;
* Aula acessada;
* Aula concluída;
* Publicação criada;
* Comentário adicionado a uma publicação;
* Certificado de conclusão emitido;
* Gatilho de gamificação disparado;
* Recompensa resgatada;
* Checkout iniciado;
* Checkout abandonado.

</details>

<details>

<summary>Eventos condicionados aos afiliados</summary>

* Afiliado aprovado;
* Afiliado pendente.

</details>

<details>

<summary>Eventos condicionados aos quizes</summary>

* Quiz respondido.

</details>

<details>

<summary>Eventos condicionados às assinaturas</summary>

* Assinatura criada;
* Assinatura renovada;
* Assinatura cancelada;
* Assinatura em processo de renovação;
* Assinatura pendente;
* Assinatura não paga;
* Solicitação de cancelamento de assinatura.

</details>

#### Exemplo dos eventos no formato JSON

**Novo cadastrado na plataforma**

```
{

"user": {

"id": 75,

"email": "rafael@teste.com",

"phone": "5542981941922",

"password": {
                  "has_password": false,
                  "create_password_link": "http://suaplataforma.ensinio.com/first-access/26384asfs231fs8fg1x3f2b16d8rt4d32f"
  },
"username": "rafaelvieira",

"full_name": "Rafael Vieira",

"last_name": "Vieira",

"created_by": "manual",

"first_name": "Rafael",

"display_name": "RafaelVieira"

},

"event": "new_register"

}

```

**Aula concluída**

```
{
      "user": {
            "id": 95,
            "email": "iasmin@teste.com",
            "phone": "5573948612492",
            "password": {
                  "has_password": false,
                  "create_password_link": "http://suaplataforma.ensinio.com/first-access/26384asfs231fs8fg1x3f2b16d8rt4d32f"
            },
            "username": "iasminbenez",
            "full_name": "Iasmin Benez",
            "last_name": "Benez",
            "created_by": "manual",
            "first_name": "Iasmin",
            "display_name": "IasminBenez"
      },
      "event": "completed_lesson",
      "group": {
            "id": 67,
            "slug": "grupo-de-vendas-pro",
            "title": "Grupo de vendas - Pro"
      },
      "group_topic": {
            "id": 24,
            "slug": "titulo-do-topico",
            "title": "Titulo do tópico"
      },
      "completed_at": "2026-01-16T11:13:55",
      "group_lesson": {
            "id": 13,
            "slug": "titulo-da-aula",
            "title": "Titulo da aula",
            "author": {
                  "id": 78,
                  "email": "maximiano@teste.com",
                  "username": "maximianoleon",
                  "last_name": "Leon",
                  "first_name": "Maximiano",
                  "display_name": "Maximiano Leon"
            }
      },
      "group_completion_rate": 70.53
}
```

**Solicitação de redefinição de senha**

```
{
      "user": {
            "id": 65,
            "email": "natan@teste.com",
            "phone": "5509982912767",
            "password": {
                  "has_password": false,
                  "create_password_link": "http://suaplataforma.ensinio.com/first-access/26384asfs231fs8fg1x3f2b16d8rt4d32f"
            },
            "username": "natanmeireles",
            "full_name": "Natan Meireles",
            "last_name": "Meireles",
            "created_by": "manual",
            "first_name": "Natan",
            "display_name": "NatanMeireles"
      },
      "event": "reset_password_requested",
      "url_reset_password": "http://suaplataforma.ensinio.com/reset/5yr1Sa2yVaah36fsfg3ruvDrE63mCY7IdDcj2bquXWIQUKyau1fr"


```
