Webhook

Através deste recurso, você pode receber uma notificação quando um evento específico ocorrer.

Como, por exemplo, quando um pedido tiver seu pagamento confirmado.

Eventos Disponíveis 🗓️

Para obter os eventos disponíveis, faça uma GET para:

/webhook/eventos/

Será retornado todos os eventos disponíveis e quais informações serão enviadas:

[
  {
    "Codigo": "Pedidos_Concluidos",
    "Titulo": "Pedidos que foram marcados como Concluído/Entregue"
  }
]

Nestes eventos, o que iremos utilizar para configurar o webhook é o "Codigo", que represente o evento que será enviado.

No caso de Pedidos com pagamento confirmado, o evento é:

Configurando Webhook ⚙️

Para criar um webhook, faça um POST para:

Neste POST, precisamos enviar:

chevron-rightEventohashtag

O Código do Evento, que obtemos na API "/webhook/eventos/".

É possível configurar um webhook para cada evento.

chevron-rightEndpointhashtag

A Url para qual será enviado as notificações.

Exemplo:

https://webhook.site/34bde777-5d3d-4591-b0c8-36a1e729753b

Esta Url deve possuir alguns requisitos:

  • Possuir SSL

  • Permitir receber POST no formato JSON

  • Retornar um HttpCode 200

Exemplo de POST:

O retorno será o código do webhook, para permitir editar o endpoint e remover o webhook:

Dados Enviados 📤

Quando um webhook é disparado, nosso sistema envia os dados do evento e o endpoint de onde pode ser obtido detalhes do evento:

Nestes dados, temos:

chevron-rightEventohashtag

Evento que está sendo disparado

chevron-rightDatahashtag

Data em que o evento de notificação foi iniciado, caso ocorram mais tentativas, esta data não muda

chevron-rightRecursohashtag

Endpoint que pode ser utilizado para obter os dados completos deste registro.

Caso não seja retornado um "Recurso", indica que a informação não esta disponível nos Endpoints de nossa API, neste caso, todos os dados serão retornados em "Dados".

chevron-rightTentativahashtag

Tentativa desta requisição (limitando-se a 3 tentativas)

chevron-rightDadoshashtag

Dados relacionados a esta notificação.

No caso de Pedidos, será sempre enviado o Código do Pedido, que pode ser utilizado nos endpoints /pedidos/.

Exemplo de cada evento:

chevron-rightPedidos_Concluidoshashtag

Pedidos que já foram Entregues e Concluídos:

chevron-rightPedidos_Enviadoshashtag

Pedidos Enviados ou Reenviados:

chevron-rightPedidos_Pagoshashtag

Pedidos com Pagamento Confirmado (Mesmo não estando Capturado - Para os casos de Captura Manual):

chevron-rightPedidos_Criadoshashtag

Momento inicial do Pedido, quando o pedido é efetivado (é normalmente o momento em que o cliente está realizando o pagamento):

chevron-rightPedidos_Todoshashtag

Evento enviado quando qualquer alteração de status for realizada em um pedido:

chevron-rightClientes_Cadastrohashtag

Cadastro de novos Clientes:

chevron-rightClientes_Edicaohashtag

Edição do cliente realizado pelo próprio cliente e/ou pela administração:

Tentativas 🔁

O sistema ira tentar enviar a notificação por 3 vezes, em intervalos de 10 minutos.

No envio dos dados, será enviado o elemento "Tentativa" indicando qual a tentativa está sendo enviada neste instante.

Sucesso ✅

O sistema ira entender que a notificação foi enviada com sucesso, quando o webhook nos retornar um HTTPCODE 200.

Qualquer outra HTTPCODE será entendido como FALHA.

Validando Webhook 🕵️‍♂️

Para garantir que o Webhook foi enviado pelo Toplojas, enviamos no Header da requisição a API KEY da Loja:

Desta forma, você pode validar a notificação, garantindo que ela não veio de fontes não confiáveis.

Firewall 🧱

Caso você tenha um firewall em seu servidor, é importante garantir que o IP de nosso servidor de notificações esteja em sua lista branca.

Para isto, adicione o IP abaixo em sua lista branca:

É importante, também, garantir que o UserAgent, utilizado nas requisições de nosso servidor, não seja bloqueado pelo seu servidor.

Para isto, garanta que o UserAgent abaixo não seja bloqueado:

Mais Detalhes 🔍

Para obter detalhes completos dos endpoints relacionados ao módulo de Webhook, clique no link abaixo e consulte nossa documentação completa:

Last updated