Webhook
O que são Webhooks?
Webhooks são notificações automáticas enviadas pela plataforma AllPost para a sua aplicação sempre que um evento relevante ocorre. Em vez de sua aplicação consultar repetidamente a API para verificar atualizações, a AllPost envia uma requisição HTTP POST diretamente para a URL configurada no seu sistema.
Como funciona
- Todas as requisições de webhook são enviadas com o método POST, com o conteúdo no corpo (body) no formato JSON e headers:
Content-Type: application/json; charset=UTF-8. - A plataforma espera que sua aplicação responda com o código HTTP 2XX (200, 201, etc) em no máximo 10 segundos. Códigos de redirecionamento (3XX) não serão seguidos e serão considerados como falha.
- São realizadas 5 tentativas de envio caso seu sistema esteja fora do ar ou responda com um código HTTP diferente de 200 ou 201.
- Como o webhook possui várias funcionalidades, você deve retornar código HTTP 200 para as funcionalidades não implementadas, evitando que o sistema fique realizando reenvio de eventos.
Configuração
Para cadastrar a URL do seu webhook, utilize o endpoint de cadastro via API:
POST api/v1/webhook/novo
O cadastro da URL também pode ser realizado diretamente no portal de desenvolvedor. A URL configurada receberá todas as notificações de eventos da loja associada.
Formato da URL de destino:
https://{seu_dominio}/{uri_opcional}
Tipos de Eventos
Rastreio de ocorrências do pedido
Enviado quando há atualização de status no rastreio do pedido.
"idOcoren": 1e2—"situacao": "entregue""idOcoren": 99—"situacao": "criado""idOcoren": 99—"situacao": "postado""idOcoren": 99—"situacao": "em transito""idOcoren": 99—"situacao": "saiu para entrega""idOcoren": 3 até 92—"situacao": "ocorrencia"—"mensagem": "mensagem da ocorrência"
Rastreio de eventos do pedido
Enviado para eventos intermediários de rastreio (chegada em unidade, etc).
Alteração nos prazos adicionais
Enviado quando há alteração nos prazos de filial ou método de envio.
Desinstalação de aplicativo
Enviado quando uma aplicação é desinstalada da loja.
Manutenção de método de envio
Enviado quando um método de envio é criado, alterado ou removido.
Exemplos de Payload
Rastreio de ocorrências do pedido
{
"tipo": "Rastreio",
"dados": {
"idPedido": "",
"numeroPedido": "",
"pedidoAuxiliar": "",
"idCotacao": "",
"canal": "",
"plataforma": "",
"transportadora": "",
"metodoEnvio": "",
"idOcoren": 99,
"situacao": "saiu para entrega",
"mensagem": "Transportadora saiu para entregar o produto",
"infAdicional": "Saida para entrega na cidade de NOVO SANTO ANTONIO",
"data": "2022-08-11 09:53:00"
}
}
Rastreio de eventos do pedido
{
"tipo": "RastreioEventos",
"dados": {
"idPedido": "",
"numeroPedido": "",
"pedidoAuxiliar": "",
"idCotacao": "",
"canal": "",
"plataforma": "",
"transportadora": "",
"metodoEnvio": "",
"idOcoren": 99,
"situacao": "evento",
"mensagem": "CHEGADA EM UNIDADE",
"infAdicional": "Chegada na unidade ALTO BOA VISTA",
"data": "2022-08-11 09:53:00"
}
}
Alteração nos prazos adicionais
{
"tipo": "prazoAdicional",
"dados": {
"maior": {
"prazoFilial": 2,
"prazoMetodo": 0,
"perAdicionalDesconto": 12
},
"menor": {
"prazoFilial": 1,
"prazoMetodo": 0,
"perAdicionalDesconto": 12
},
"data": "2022-08-11 09:53:00"
}
}
Desinstalação de aplicativo
{
"tipo": "Aplicativo",
"dados": {
"codigo": "",
"situacao": "delete",
"mensagem": "A aplicação foi desinstalada",
"idApp": 0,
"nomeApp": "",
"data": "2022-08-11 09:53:00"
}
}
Manutenção de método de envio
{
"tipo": "metodoEnvio",
"dados": {
"codigo": "",
"situacao": "novo|altera|delete",
"idTransportadora": 0,
"idMetodoEnvio": 0,
"nomeTransportadora": "",
"nomeMetodoEnvio": "",
"data": "2022-08-11 09:53:00"
}
}
Resposta esperada
Sucesso (HTTP 200 ou 201)
{
"retorno": "sucesso",
"obs": ""
}
| Campo | Descrição | Tipo | Tamanho | Obrigatório |
|---|---|---|---|---|
retorno |
Mensagem de retorno. Utilizar o termo "sucesso" | string | 255 | sim |
obs |
Campo de observação (campo texto livre) | string | 255 | não |
Erro (HTTP 400 até 599)
{
"retorno": "sua mensagem de erro"
}
| Campo | Descrição | Tipo | Tamanho | Obrigatório |
|---|---|---|---|---|
retorno |
Mensagem de retorno com descrição do erro | string | 255 | sim |
Logs de Webhook
Acompanhe os logs dos webhooks no painel administrativo. Acesse o sistema AllPost com sua conta de desenvolvedor, selecione a loja no topo da página e navegue até Menu > Log > Webhook. Você pode analisar e forçar o reenvio de webhooks com falha de comunicação.