Webhooks
Veja como configurar webhooks para receber notificações sobre eventos da API.
Configurando webhooks
Para configurar um novo webhook, você precisa ter uma URL em seu ambiente que a API possa chamar. Você pode configurar um novo webhook no console api API, dando um nome ao webhook, escolhendo os eventos que você quer receber notificações e adicionando a URL.
Agora, toda vez que algum evento acontecer, um webhook é disparado pela API.
Consumindo webhooks
Quando seu sua aplicação recebe uma requisição de webhook da API, verifique o atributo type para ver qual evento causou a notificação.
Exemplo de payload de webhook
{
"id": "a056V7R7NmNRjl70",
"type": "login.created",
"payload": {
"id": 1,
"username": "1234567890",
"created_at": "2021-01-01T00:00:00Z"
// ...
}
}
No exemplo acima, um novo login foi criado e o tipo de payload é um login.
Tipos de eventos
- Name
login.created- Description
Um novo login foi criado.
- Name
login.updated- Description
Um login foi atualizado.
- Name
login.deleted- Description
Um login foi deletado.
- Name
driver.created- Description
Um condutor foi criado.
- Name
driver.updated- Description
Um condutor foi atualizado.
- Name
drivers-license.created- Description
Uma CNH foi criada.
- Name
drivers-license.updated- Description
Uma CNH foi atualizada.
- Name
appeal.created- Description
Um recurso foi criado.
- Name
appeal.updated- Description
Um recurso foi atualizado.
- Name
appeal.deleted- Description
Um recurso foi deletado.
Exemplo de payload
{
"id": 1,
"type": "appeal.created",
"payload": {
"id": 1,
"driver": {
"id": 1,
"name": "John Doe",
},
"legal_instance": "jari",
"status": "pending",
"created_at": "2021-01-01T00:00:00Z",
"updated_at": "2021-01-01T00:00:00Z"
}
}
Segurança
Para saber que um webhook foi enviado pela API da habilitar.me, você pode verificar a assinatura da requisição.
Cada requisição de webhook contém um cabeçalho chamado x-signature, e você pode verificar esta assinatura usando sua chave secreta de webhook. A assinatura é um hash HMAC do payload da requisição usando sua chave secreta. Aqui está um exemplo de como verificar a assinatura em seu aplicativo:
Verificando uma requisição
const signature = req.headers['x-signature']
const hash = crypto.createHmac('sha256', secret).update(payload).digest('hex')
if (hash === signature) {
// Requisição verificada
} else {
// Requisição não verificada
}
Se o hash gerado corresponder ao cabeçalho x-signature, você pode estar certo de que a requisição foi realmente enviada pela API da habilitar.me.