Public List Pendencies
curl --request GET \
--url https://public-api.salu.com.vc/dev/routes/v0/pendency/ \
--header 'x-api-key: <api-key>'import requests
url = "https://public-api.salu.com.vc/dev/routes/v0/pendency/"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://public-api.salu.com.vc/dev/routes/v0/pendency/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-api.salu.com.vc/dev/routes/v0/pendency/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-api.salu.com.vc/dev/routes/v0/pendency/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.salu.com.vc/dev/routes/v0/pendency/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.salu.com.vc/dev/routes/v0/pendency/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"status": "ON_HOLD",
"type_exam": "HIRING",
"sla": "2023-11-07T05:31:56Z",
"due_date": "2023-11-07T05:31:56Z",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_soc_code": "<string>",
"employee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ohc_status": "PENDING",
"note": "<string>",
"schedule_appointment_time": "2023-11-07T05:31:56Z",
"concluded_at": "2023-11-07T05:31:56Z",
"organization_display_name": "<string>",
"employee_name": "<string>",
"employee_is_disabled": true,
"periodicity": 123,
"next_exam_date": "2023-12-25"
}
],
"cursor": {
"total": 123,
"page": 123,
"page_size": 123,
"total_pages": 123,
"next_page": true
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Pendencies
List Pendencies
GET
/
v0
/
pendency
/
Public List Pendencies
curl --request GET \
--url https://public-api.salu.com.vc/dev/routes/v0/pendency/ \
--header 'x-api-key: <api-key>'import requests
url = "https://public-api.salu.com.vc/dev/routes/v0/pendency/"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://public-api.salu.com.vc/dev/routes/v0/pendency/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-api.salu.com.vc/dev/routes/v0/pendency/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-api.salu.com.vc/dev/routes/v0/pendency/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.salu.com.vc/dev/routes/v0/pendency/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.salu.com.vc/dev/routes/v0/pendency/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"status": "ON_HOLD",
"type_exam": "HIRING",
"sla": "2023-11-07T05:31:56Z",
"due_date": "2023-11-07T05:31:56Z",
"organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organization_soc_code": "<string>",
"employee_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ohc_status": "PENDING",
"note": "<string>",
"schedule_appointment_time": "2023-11-07T05:31:56Z",
"concluded_at": "2023-11-07T05:31:56Z",
"organization_display_name": "<string>",
"employee_name": "<string>",
"employee_is_disabled": true,
"periodicity": 123,
"next_exam_date": "2023-12-25"
}
],
"cursor": {
"total": 123,
"page": 123,
"page_size": 123,
"total_pages": 123,
"next_page": true
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Lista pendências (solicitações de exame ocupacional) da organização, com
filtros por status, tipo e colaborador. Veja o conceito em
Pendência (Exame).
Visão Geral
- Método:
GET - Path:
/v0/pendency/ - OperationId:
public_list_pendencies_v0_pendency__get - Autenticação: header
x-api-key
Campos da resposta
Cada item dedata traz os campos abaixo. O bloco cursor da paginação está descrito em
Como usar.
| Campo | Tipo | O que representa | Observações |
|---|---|---|---|
id | UUID | Identificador da solicitação de exame. | É o pendency_id usado no cancelamento. |
created_at | datetime | Quando a solicitação foi registrada. | UTC, sem offset. |
status | enum | Etapa operacional da pendência (9 valores, tabela abaixo). | Não é o status que o RH vê no portal da Salú — aquele é derivado deste. |
type_exam | enum | Tipo do exame ocupacional (15 valores, tabela abaixo). | — |
sla | datetime | Data-alvo interna da Salú para tratar e agendar a pendência. | Meta operacional, não prazo legal. Servida como data à meia-noite. Ver Prazos. |
due_date | datetime | Prazo do exame: data de referência do evento mais o prazo do tipo de exame, pulando fim de semana. | Calculado na criação e não recalculado depois. Servido como data à meia-noite. |
schedule_appointment_time | datetime | null | Horário marcado do agendamento vigente (o agendamento não cancelado mais recente). | Não é a data de conclusão — ver o aviso abaixo. |
concluded_at | datetime | null | Momento em que a pendência foi concluída (entrou em DONE). | Preenchido apenas enquanto status = DONE; null nos demais status. Se uma concluída for reaberta, volta a null — o campo acompanha o status atual e não guarda histórico. UTC, sem offset. |
organization_id | UUID | null | Organização dona da pendência. | — |
organization_display_name | string | null | Nome da organização no momento em que a pendência foi criada. | É um retrato: renomear a organização depois não muda o valor já gravado. |
organization_soc_code | string | Código da organização no SOC, gravado na criação. | Mesmo retrato de organization_display_name. |
employee_id | UUID | null | Colaborador do exame. | — |
employee_name | string | null | Nome de uso do colaborador (nome social quando existir; caso contrário o nome civil). | A criação de pendência devolve o nome civil. |
employee_is_disabled | boolean | null | Indica que o colaborador é PcD (pessoa com deficiência), conforme o cadastro na criação da pendência. | Não significa colaborador desligado nem inativo. |
periodicity | integer | null | Periodicidade do exame periódico, em meses. | Só em pendências PERIODIC; null nos outros tipos. Nem toda PERIODIC traz o valor — quanto mais antiga a pendência, maior a chance de vir null. |
next_exam_date | date | null | Data do próximo exame periódico do colaborador. | Mesma regra de periodicity: só em PERIODIC e frequentemente null em pendências antigas. Mantido por processo interno da Salú. |
note | string | null | Observação de mudança de status escrita pela operação da Salú. | Não é exposta nesta listagem: vem sempre null. A observação enviada no cancelamento é devolvida na resposta daquela chamada. |
ohc_status | enum | Etapa do ASO derivada do agendamento vigente (5 valores, tabela abaixo). | Complementa status: descreve onde o documento está, não onde a pendência está. |
schedule_appointment_time é o horário marcado do exame na clínica, não a data em que a
pendência foi concluída. Ele aparece preenchido — inclusive com data no futuro — em pendências
ainda abertas, e pode vir null em pendências já concluídas. Para saber quando a pendência
foi concluída, use concluded_at.concluded_atvem do evento de histórico que levou a pendência paraDONE. Numa fração mínima das concluídas esse evento não existe e o valor cai para a data da última atualização da pendência.periodicityenext_exam_datevêmnullem boa parte das pendênciasPERIODIC, sobretudo nas mais antigas.nullaqui significa dado ausente, não “sem periodicidade” — para saber se a pendência é periódica, usetype_exam.
Filtros
Todos os parâmetros abaixo são de query. Para enviar vários valores, repita o parâmetro (ex.:?status=PENDING&status=SCHEDULED).
| Parâmetro | Tipo | O que filtra |
|---|---|---|
organization_id | UUID (repetível) | Uma ou mais organizações. Quando omitido, devolve as organizações autorizadas para a sua chave. |
employee_id | UUID | Um colaborador. |
id | UUID (repetível) | Pendências específicas. |
status | enum (repetível) | Um ou mais status (valores da tabela abaixo). |
type_exam | enum (repetível) | Um ou mais tipos de exame. |
employee__admission_date | date AAAA-MM-DD | Colaboradores com exatamente essa data de admissão. |
employee__dismissal_date | date AAAA-MM-DD | Colaboradores com exatamente essa data de demissão. |
is_active | boolean (padrão true) | Pendências ativas. |
page / limit | integer (padrão 0 / 20) | Paginação por offset. limit vai de 1 a 500. |
Ordenação
A ordem é fixa e não é escolhida pelo cliente: prioridade, depois prazo do exame (due_date),
depois sla e, por fim, created_at. É essa ordem estável que faz a paginação por offset não
repetir nem pular registros entre páginas.
- Parâmetros que não estão nesta tabela são ignorados em silêncio: a API responde
200como se o filtro não tivesse sido enviado, e não422. Confira a grafia antes de concluir que um filtro “não funciona”. - Não existe filtro por intervalo de datas (criação, prazo ou SLA) nesta rota, nem filtro por
data de conclusão. Para acompanhar conclusões, leia
concluded_atde cada pendência. - A ordenação usa
priority, um campo interno de priorização que não é devolvido na resposta pública.
Campos enum e traduções
Use exatamente os valores do enum conforme definidos pela API. As tabelas abaixo explicam os
valores aceitos nos filtros e devolvidos na resposta.
type_exam
| Valor | Significado (PT) | Observação |
|---|---|---|
HIRING | Admissional | — |
DISMISSAL | Demissional | — |
PERIODIC | Periódico | Único tipo que pode trazer periodicity e next_exam_date — e mesmo nele os dois podem vir null. |
RETURN | Retorno ao trabalho | — |
RISK_CHANGE | Mudança de risco | — |
INTERN_HIRING | Contratação interna | — |
PUNCTUAL | Pontual | — |
CRITICAL_ACTIVITY | Atividade crítica | — |
APPOINTMENT | Consulta médica | — |
APPOINTMENT_RETURN | Retorno de consulta | — |
MEDICAL_LEAVE | Licença médica | — |
INFIRMARY | Enfermagem | — |
THIRD_PARTY | Terceiros | — |
ANAMNESE | Anamnese | Legado do sistema de origem — não utilizar. |
EMPLOYEE_ACTION | Efetivação | Legado do sistema de origem — não utilizar. |
Os 15 valores podem aparecer na resposta. A criação pela API pública usa o subconjunto
descrito em Criar pendência.
status
| Valor | Significado (PT) | O que aconteceu |
|---|---|---|
ON_HOLD | Em aberto | Pendência criada com a comunicação ao colaborador programada para uma data futura. |
PENDING | Pendente | Aguardando agendamento. |
PRE_SCHEDULED | Pré-agendado | Agendamento em tratativa com clínica ou colaborador, sem data confirmada. |
SCHEDULED | Agendado | Exame marcado em clínica; schedule_appointment_time traz o horário marcado. |
MISSING_OHC | Busca ASO | O exame foi realizado e a Salú está atrás do ASO na clínica. |
DONE | Concluído | Pendência encerrada como realizada; concluded_at preenchido. No fluxo normal o ASO foi recebido, validado e anexado, mas existem concluídas sem ASO ativo. |
ABSENT | Ausente | O colaborador não compareceu ao exame marcado. |
NO_RESPONSE | Sem retorno | O colaborador não respondeu aos contatos de agendamento. |
CANCELED | Cancelado | Pendência encerrada sem realização do exame. |
ohc_status
| Valor | Significado (PT) | O que aconteceu |
|---|---|---|
WAITING_FOR_OHC | Aguardando ASO | Não há etapa de ASO em andamento: o agendamento vigente está em etapa anterior ao documento, o colaborador faltou (ABSENT), ou não existe agendamento não cancelado. Não significa que um ASO está a caminho. |
MISSING_OHC | Busca ASO | Exame realizado; a Salú está buscando o ASO na clínica. |
IN_ANALYSIS | Em análise | ASO recebido e em validação pela equipe da Salú. |
ATTACHED_OHC | ASO anexado | ASO validado e anexado ao colaborador — a pendência passa a DONE. |
DONE | Concluído | Agendamento concluído — a pendência passa a DONE. |
Exemplo de requisição
curl -X GET "https://public-api.salu.com.vc/dev/routes/v0/pendency/?page=0&limit=20&status=DONE" \
-H "Accept: application/json" \
-H "x-api-key: $SALU_PUBLIC_API_KEY"
Authorizations
Query Parameters
Filtra solicitações ativas.
Página, começando em 0.
Required range:
x >= 0Itens por página. Máximo de 500.
Required range:
1 <= x <= 500Filtra por identificadores de solicitação. Repetível.
Filtra por etapa operacional da solicitação. Repetível.
Available options:
ON_HOLD, PENDING, PRE_SCHEDULED, SCHEDULED, DONE, CANCELED, ABSENT, MISSING_OHC, NO_RESPONSE Filtra por tipo de exame ocupacional. Repetível.
Available options:
HIRING, DISMISSAL, PERIODIC, RETURN, RISK_CHANGE, INTERN_HIRING, PUNCTUAL, CRITICAL_ACTIVITY, APPOINTMENT, APPOINTMENT_RETURN, MEDICAL_LEAVE, INFIRMARY, THIRD_PARTY, ANAMNESE, EMPLOYEE_ACTION Filtra por empresa. Repetível. Quando omitido, devolve as empresas autorizadas para a chave de API.
Filtra pelas solicitações de um colaborador.
Filtra colaboradores admitidos exatamente nesta data (AAAA-MM-DD), conforme o cadastro atual.
Filtra colaboradores desligados exatamente nesta data (AAAA-MM-DD), conforme o cadastro atual.