Referência da API do NovoSGA
URL Base: https://novosga.mangati.com
Todos os endpoints estão sob /api. A autenticação usa tokens OAuth2 obtidos em POST /api/token.
Token
Obter Token
POST /api/token
Content-Type: application/x-www-form-urlencodedcurl -X POST https://novosga.mangati.com/api/token \
-d "grant_type=client_credentials&client_id=ID&client_secret=SEGREDO"Status
Status da API
GET /apiResposta:
{
"status": "ok",
"time": 1718460000,
"mercureUrl": "https://mercure.mangati.com/.well-known/mercure"
}Senhas e Atendimentos
Listar Atendimentos
GET /api/atendimentos
Authorization: Bearer <token>Suporta filtros por query string: status, resolucao, id.
Resposta:
[
{
"id": 456,
"senha": { "numero": "A001", "sigla": "A" },
"status": "waiting",
"dataChegada": "2024-06-15T09:00:00+00:00",
"dataChamada": null,
"dataInicio": null,
"dataFim": null,
"unidade": { "id": 1, "nome": "Unidade Central" },
"servico": { "id": 3, "nome": "Documentação" },
"prioridade": { "id": 1, "nome": "Normal" },
"cliente": null
}
]Obter Atendimento
GET /api/atendimentos/{id}
Authorization: Bearer <token>Chamar Senha
POST /api/atendimentos/{id}/chamar
Authorization: Bearer <token>
Content-Type: application/jsonCorpo da requisição:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
local | inteiro | Sim | ID do local de atendimento |
numeroLocal | inteiro | Não | Número da posição no local |
Exemplo:
curl -X POST https://novosga.mangati.com/api/atendimentos/456/chamar \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{"local": 2, "numeroLocal": 1}'Resposta (200): Objeto atendimento atualizado.
Erro (422):
{ "error": "Falha ao chamar o atendimento" }Iniciar Atendimento
POST /api/atendimentos/{id}/iniciar
Authorization: Bearer <token>Nenhum corpo de requisição necessário. Inicia o atendimento para o atendente autenticado.
Resposta (200): Objeto atendimento atualizado.
Encerrar Atendimento
POST /api/atendimentos/{id}/encerrar
Authorization: Bearer <token>
Content-Type: application/jsonCorpo da requisição:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
servicosRealizados | inteiro[] | Sim | IDs dos serviços efetivamente realizados |
servicoRedirecionado | inteiro|null | Não | Redirecionar para outro serviço |
novoUsuario | inteiro|null | Não | Transferir para atendente específico |
Exemplo:
curl -X POST https://novosga.mangati.com/api/atendimentos/456/encerrar \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"servicosRealizados": [3],
"servicoRedirecionado": null,
"novoUsuario": null
}'Resposta (200): Objeto atendimento atualizado.
Histórico de Atendimentos
GET /api/atendimentoshistorico
Authorization: Bearer <token>Retorna registros históricos de atendimentos encerrados.
Distribuição de Senhas
Emitir Nova Senha
POST /api/distribui
Authorization: Bearer <token>
Content-Type: application/jsonCorpo da requisição:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
unidade | inteiro | Sim | ID da unidade |
servico | inteiro | Sim | ID do serviço |
prioridade | inteiro | Sim | ID da prioridade |
cliente | objeto|null | Não | Dados do cliente |
Exemplo:
curl -X POST https://novosga.mangati.com/api/distribui \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"unidade": 1,
"servico": 3,
"prioridade": 1,
"cliente": {
"nome": "João Silva",
"documento": "123.456.789-00"
}
}'Resposta (201): Novo objeto atendimento com o número de senha gerado (senha).
Impressão de Senha
GET /api/print/{id}
Authorization: Bearer <token>Retorna dados para impressão da senha (validado por hash). Usado por impressoras de totem de triagem.
Estado da Fila
Obter Fila da Unidade
GET /api/filas/{unidadeId}
Authorization: Bearer <token>Retorna o estado atual da fila de todos os serviços de uma unidade.
Resposta:
[
{
"servico": { "id": 3, "nome": "Documentação" },
"fila": {
"total": 5,
"atendimento": {
"id": 456,
"senha": { "numero": "A001" },
"status": "waiting"
}
}
}
]Atualizar Status da Fila
PUT /api/filas
Authorization: Bearer <token>
Content-Type: application/jsonAtualiza o status da fila de um atendente (ex.: pausar, retomar).
Serviços
GET /api/servicos # Listar todos os serviços
GET /api/servicos/{id} # Obter serviço
POST /api/servicos # Criar serviço
PUT /api/servicos/{id} # Atualizar serviçoUnidades
GET /api/unidades # Listar todas as unidades
GET /api/unidades/{id} # Obter unidade
POST /api/unidades # Criar unidade
PUT /api/unidades/{id} # Atualizar unidadeClientes
GET /api/clientes # Listar clientes
GET /api/clientes/{id} # Obter cliente
POST /api/clientes # Criar cliente
PUT /api/clientes/{id} # Atualizar clienteObjeto cliente:
{
"id": 10,
"nome": "João Silva",
"email": "joao@mangati.com",
"telefone": "(11) 9 9999-9999",
"documento": "123.456.789-00"
}Departamentos
GET /api/departamentos # Listar departamentos
GET /api/departamentos/{id} # Obter departamento
POST /api/departamentos # Criar departamento
PUT /api/departamentos/{id} # Atualizar departamentoPrioridades
GET /api/prioridades # Listar prioridades
GET /api/prioridades/{id} # Obter prioridade
POST /api/prioridades # Criar prioridade
PUT /api/prioridades/{id} # Atualizar prioridadeUsuários
GET /api/usuarios # Listar usuários
GET /api/usuarios/{id} # Obter usuário
POST /api/usuarios # Criar usuário
PUT /api/usuarios/{id} # Atualizar usuárioAgendamentos
GET /api/agendamentos # Listar agendamentos
GET /api/agendamentos/{id} # Obter agendamento
POST /api/agendamentos # Criar agendamento
PUT /api/agendamentos/{id} # Atualizar agendamentoLocais de Atendimento
GET /api/locais # Listar locais (guichês, posições)
GET /api/locais/{id} # Obter local
POST /api/locais # Criar local
PUT /api/locais/{id} # Atualizar localPainéis
GET /api/paineis # Listar configurações de painéis
GET /api/paineis/{id} # Obter painelUsado pelo serviço de extensão Painel para buscar a configuração de exibição.
