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.

Essa página foi útil?