Saltar a contenido

Webhooks

Webhooks permitem que seu sistema receba notificações automáticas quando eventos ocorrem na Pontotel. Ao cadastrar um webhook, você informa uma URL que receberá um POST com os dados do evento assim que ele acontecer.

Como funciona

  1. Você cadastra uma URL e seleciona o evento de interesse
  2. Quando o evento ocorre, a Pontotel dispara um POST para a URL cadastrada
  3. Seu sistema processa o payload e responde com 2xx
flowchart LR
    A[Evento ocorre na Pontotel] --> B[Pontotel dispara POST]
    B --> C[Sua URL recebe o payload]
    C --> D[Seu sistema processa]

Estrutura do Payload

Todos os eventos seguem o mesmo envelope:

JSON
1
2
3
4
5
6
7
{
  "hora_origem_evento_utc": "2025-04-25T19:00:00Z",
  "empresa_id": "abc123",
  "usuario_id": "xyz456",
  "nome_evento": "EmpregadoCadastrado",
  "conteudo_do_evento": { }
}
Campo Tipo Descrição
hora_origem_evento_utc datetime Momento em que o evento ocorreu (UTC)
empresa_id string Identificador da empresa
usuario_id string Identificador do usuário que originou o evento
nome_evento string Nome do evento (ver tabela abaixo)
conteudo_do_evento object Dados específicos do evento

Eventos Disponíveis

EmpregadoCadastrado

Disparado quando um novo empregado é cadastrado.

JSON
1
2
3
4
5
6
7
{
  "nome_evento": "EmpregadoCadastrado",
  "conteudo_do_evento": {
    "id_empregado": "64b1f2e3c1a2b3d4e5f60001",
    "codigo": "00123"
  }
}
Campo Tipo Descrição
id_empregado string ID interno do empregado
codigo string Código do empregado na empresa

EmpregadoAtualizado

Disparado quando os dados de um empregado são alterados.

JSON
{
  "nome_evento": "EmpregadoAtualizado",
  "conteudo_do_evento": {
    "id_empregado": "64b1f2e3c1a2b3d4e5f60001",
    "campos_alterados": {
      "nome": {
        "antes": "João Silva",
        "depois": "João Souza Silva"
      }
    }
  }
}
Campo Tipo Descrição
id_empregado string ID interno do empregado
campos_alterados object \| null Mapa com os campos alterados e seus valores anterior/posterior

EmpregadoDemitido

Disparado quando um empregado é desligado.

JSON
1
2
3
4
5
6
7
8
9
{
  "nome_evento": "EmpregadoDemitido",
  "conteudo_do_evento": {
    "data_de_demissao": "2025-04-30",
    "origem": "MANUAL",
    "trabalho_no_dia_da_demissao": false,
    "motivo_da_demissao": "Desligado"
  }
}
Campo Tipo Descrição
data_de_demissao string (ISO 8601) Data efetiva do desligamento
origem string Origem do registro (ex: MANUAL, IMPORTACAO)
trabalho_no_dia_da_demissao boolean Se houve trabalho no dia do desligamento
motivo_da_demissao string Motivo do desligamento

EmpregadoReadmitido

Disparado quando um empregado é readmitido após desligamento.

JSON
1
2
3
4
5
6
7
{
  "nome_evento": "EmpregadoReadmitido",
  "conteudo_do_evento": {
    "id_empregado": "64b1f2e3c1a2b3d4e5f60001",
    "data_de_readmissao": "2025-05-01"
  }
}
Campo Tipo Descrição
id_empregado string ID interno do empregado
data_de_readmissao string (ISO 8601) Data efetiva da readmissão

Boas Práticas

  • Responda com 2xx o mais rápido possível — processe o payload de forma assíncrona se necessário
  • Valide o campo nome_evento antes de processar o conteudo_do_evento
  • Armazene o hora_origem_evento_utc para ordenar eventos que chegarem fora de ordem