Webhook é um método simples e independente, que facilita com que uma API forneça informações em tempo real sempre que um evento acontece.
A Loggi identifica a mudança de status e envia o rastreio do pacote em tempo real pelo Webhook, e o parceiro também pode consultar a lista de status atualizada.
A API precisa ser implementada para que seja possível receber a requisição no formato definido.
Como configurar o webhook
Contate nosso time de vendas fornecendo o endpoint para recebimento dos status do pacote.
O endpoint deverá ser HTTPS e seguir os padrões REST API, retornando código de status de resposta 200 (Ok) ou 201 (Created).
Autenticação do endpoint
O endpoint deverá receber o Header Authorization na requisição com as credenciais de autenticação.
A autenticação deve ser Basic Authentication conforme exemplo abaixo. Para isso, também é necessário fornecer o username e password para nosso time de vendas.
Authorization: Basic ${username:password}
Testes
Nosso time de vendas organizará as seções de testes. Caso preferir, forneça outro endpoint para realização dos testes.
Payload da requisição
A requisição será feita através do método POST, enviando um payload em JSON no body conforme exemplo abaixo.
curl --request POST \
--url https://webhook.api.com/tracking \
--header 'Accept: application/json'
{
"packages": [
{
"loggiKey": "KIF511LG3LGGA3U8G28B4200NA",
"trackingCode": "SH1007503594LG",
"status": {
"code": "5",
"highLevelStatus": "Entregue",
"description": "O pacote foi recebido no endereço de entrega.",
"actionRequired": null,
"updatedTime": "2021-05-05T10:40:18.941518Z"
},
"location":{
"city":"São Paulo"
"state":"SP"
},
"promisedDate": "2021-05-05",
"requestTime": "2021-05-05T10:43:18.941518Z",
"trackingHistory": [
{
"status": {
"code": "5",
"highLevelStatus": "Entregue",
"description": "O pacote foi recebido no endereço de entrega.",
"actionRequired": null,
"updatedTime":"2021-05-05T10:40:18.941518Z"
},
"location":{
"city":"São Paulo"
"state":"SP"
}
},
{
"status": {
"code": "11",
"highLevelStatus": "Saiu para entrega",
"description": "O pacote saiu para entrega ao destinatário.",
"actionRequired": null,
"updatedTime":"2021-05-04T17:36:16.941518Z"
}
},
{
"status": {
"code": "6",
"highLevelStatus": "Com problema",
"description": "Algo deu errado e o pacote está parado. Resolva o problema para seguir com o envio.",
"actionRequired": {
"reasonDescription": "Confira se está tudo certo com as informações do destinatário. Se tiver errado, corrija ou interrompa o envio.",
"reasonLabel":"Aguardando tratativa"
},
"updatedTime":"2021-05-04T15:10:12.941518Z"
}
},
{
"status": {
"code": "3",
"highLevelStatus": "Em processamento",
"description": "O pacote já foi coletado e está em processamento.",
"actionRequired": null,
"updatedTime":"2021-05-04T14:25:15.941518Z"
},
"location":{
"city":"São Paulo"
"state":"SP"
}
},
{
"status": {
"code": "1",
"highLevelStatus": "Adicionado",
"description": "A etiqueta de envio já foi criada e o pacote está pronto para a coleta.",
"actionRequired": null,
"updatedTime":"2021-05-04T12:53:12.941518Z"
}
}
]
}
]
}
Request schema type: object
[Object] packages
Objeto que representa os dados de rastreio de um pacote.
String packages[i].loggiKey
Chave que identifica unicamente um pacote dentro da Loggi.
String packages[i].trackingCode
Código de rastreio de um pacote.
Object packages[i].status
Objeto que representa as informações do status de um pacote.
Integer packages[i].status.code
Código numérico referente ao estado do pacote.
String packages[i].status.highLevelStatus
Status geral do pacote em formato legível.
String packages[i].status.description
Breve descrição do status do pacote.
Object packages[i].status.actionRequired
Objeto que representa uma ação que deve ser tomada pelo embarcador para continuar a entrega.
String packages[i].status.updatedTime
Data que o pacote entrou no status atual.
Object packages[i].location
Objeto que representa a localização do pacote em seu status atual.
String packages[i].location.city
Cidade de onde a localização foi inferida para o status.
String packages[i].location.state
Estado (UF) de onde a localização foi inferida para o status.
String packages[i].promisedDate
Estimativa de data para a primeira tentativa de entrega.
String packages[i].requestTime
Timestamp do momento da requisição.
[Object] packages[i].trackingHistory
Histórico de status de um pacote.
Object packages[i].trackingHistory[i].status
Objeto que representa as informações do status de um pacote.
Object packages[i].trackingHistory[i].location
Objeto que representa a localização do pacote em um dado status.
Lista de Status codes
Confira a lista em TrackingAPI