Check-in/Check-out

Webhook de check-in/check-out

O Escala possui um webhook para enviar informações de check-in caso haja a necessidade de registro dessas informações por um parceiro.

É necessário entrar em contato com o nosso suporte via api-integracao@escala-app.com para incluirmos o endpoint para envio dessas informações. Este endpoint deverá ser implementado pelo parceiro.

Por exemplo https://sitedaminhainstituicao.com.br/webhook/checkin.

Dessa forma, toda vez que for realizado um check-in ou check-out será enviado ao endpoint fornecido um POST request contendo no payload um JSON no seguinte formato:

{
    "action": "checkin",
    "payload": {
        "professional": "Usuário Teste",
        "schedule": "Escala Teste",
        "shift_start": "2016-08-10 08:00:00",
        "shift_end": "2016-08-10 16:00:00",
        "shift_date": "2016-08-10",
        "unit_name": "Equipe Teste",
        "checkin_time": "2016-08-10 08:14:04",
        "checkout_time": "2016-08-10 16:08:31",
        "unit_id": 1,
        "period_id": 2,
        "professional_internal_id": "100123",
        "professional_cpf": "12312312312",
        "schedule_id": 10,
        "shift_id": 15,
        "council_initials": "CREMESP",
        "council_name": "Conselho Regional Medicina Estado São Paulo",
        "occupation_code": "541",
        "occupation_name": "Enfermeiro",
        "council_state": "SP",
        "checkin_status": "consolidated" // can be "consolidated", "pending" or "modified"
    }

Busca por plantões com check-in:

Outra forma de buscar informações de check-in é a API abaixo, que trás apenas dados de plantões que tiveram um check-in realizado.

GET https://escala.med.br/api/v2/partner/checkins

Os parâmetros obrigatórios que você deve enviar na URL são:

  • shift_from: Desde quando buscar por plantões com check-ins ("YYYY-MM-dd HH:mm:ss")

  • shift_until: Até quando buscar por plantões com check-ins ("YYYY-MM-dd HH:mm:ss")

Os parâmetros opcionais:

  • page_size: controla o máximo de resultados por consulta, caso queira um valor fixo. Seu valor padrão é 500 e o valor máximo 1000.

  • page: indica qual página dos resultados esta sendo acessada.

  • timetable_tag_filter: Filtra turnos que contenham tags que sejam exatamente o texto marcado, ou parcialmente usando %

  • unit_tag_filter: Filtra equipes que contenham tags que sejam exatamente o texto marcado, ou parcialmente usando %

  • schedule_tag_filter: Filtra escalas que contenham tags que sejam exatamente o texto marcado, ou parcialmente usando %

  • employee_tag_filter: Filtra usuários que contenham tags que sejam exatamente o texto marcado, ou parcialmente usando %

  • schedule_name_filter: Filtra por escalas que contenham exatamente o nome passado para este campo.

  • employee_id: Filtra plantões que contenham o usuário com o id passado

  • employee_internal_id: Filtra plantões que contanham exatamente o id interno passado.

Na resposta o campo data tem em cada elemento:

  • employee_id: O identificador interno do Escala para o usuário.

  • employee_custom_id: O identificador único dado pela empresa cliente. Pode ser nulo.

  • employee_name: O nome completo do usuário

  • employee_email: O e-mail do usuário

  • employee_phone: O telefone do usuário. Pode ser nulo

  • schedule_id: O identificador interno do Escala para a escala.

  • schedule_name: O nome da escala.

  • team_id: O identificador interno do Escala para a equipe.

  • team_name: O nome da equipe shift_start: Início do turno de trabalho

  • shift_end: Término do turno de trabalho

  • checkin_time: Data e hora que o check-in foi realizado. Pode ser nulo.

  • checkin_latitude: Latitude do celular no momento que foi realizado o check-in. Pode ser nulo.

  • checkin_longitude: Longitude do celular no momento que foi realizado o check-in. Pode ser nulo.

  • checkin_precision: Precisão da localização do celular, em metros, no momento que foi realizado o check-in. Pode ser nulo.

  • checkout_time: Data e hora que o check-out foi realizado. Pode ser nulo.

  • checkout_latitude: Latitude do celular no momento que foi realizado o check-out. Pode ser nulo.

  • checkout_longitude: Longitude do celular no momento que foi realizado o check-out. Pode ser nulo.

  • checkout_precision: Precisão da localização do celular no momento que foi realizado o check-out. Pode ser nulo.

Chamada

curl --location 'https://escala.med.br/api/v2/partner/checkins?shift_from=<SHIFT_FROM>&shift_until=<SHIFT_UNTIL>' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <API_TOKEN>'

Resposta:

{
   "total":1066,
   "per_page":"1",
   "current_page":1,
   "last_page":1066,
   "next_page_url":"https://escala.med.br/api/v2/partner/checkins?shift_from=2024-07-01+07:00:00&page_size=1&shift_until=2024-07-01+12:00:00&page=2",
   "prev_page_url":null,
   "from":1,
   "to":1,
   "data":[
      {
         "employee_id":1,
         "employee_custom_id":null,
         "employee_name":"Nathalia de Sa",
         "employee_email":"nathalia@example.org",
         "employee_phone": null,
         "schedule_id":1,
         "schedule_name":"Emergencista I",
         "team_id":400,
         "team_name":"Manhã",
         "shift_id":1,
         "shift_start":"2024-07-01 07:00:00",
         "shift_end":"2024-07-01 13:00:00",
         "checkin_time": "2024-07-01 07:02:13",
         "checkin_latitude": "-23.565295",
         "checkin_longitude": "-46.653939",
         "checkin_precision": "52.76300000",
         "checkout_time": null,
         "checkout_latitude": null,
         "checkout_longitude": null,
         "checkout_precision": null,
      }
   ]
}

Last updated