Files
KLINGO-CLINICAL-SYSLIFE-GCHAT/gti-scheduling-mcp/docs/klingo-openapi.json
T
GustavoandClaude Sonnet 5 257afe98c0 Snapshot: gti-scheduling-mcp (Z-PRO + Klingo adapters) e workflow n8n de agendamento funcionando de ponta a ponta
- gti-scheduling-mcp: MCP server com ZProAdapter e KlingoAdapter (agendar() completo pros dois)
- Workflow n8n 'Agendamento - GChat - Z-PRO': webhook -> AI Agent -> MCP -> Z-PRO, testado com sucesso real
- Documentacao: specs, plano, runbook de problemas reais e export do workflow

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 17:23:10 -03:00

3375 lines
91 KiB
JSON

{
"swagger": "2.0",
"info": {
"description": "Klingo API externa",
"version": "1.0.0",
"title": "Klingo API Externa",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"email": "suporte@klingo.com.br"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"tags": [
{
"name": "teste",
"description": "Teste da API."
},
{
"name": "sessao",
"description": "Autenticação do usuário."
},
{
"name": "cadastros",
"description": "Obtenção de dados cadastrais."
},
{
"name": "paciente",
"description": "Integração do cadastro de paciente."
},
{
"name": "agenda",
"description": "Funções da agenda."
},
{
"name": "voucher",
"description": "Gestão das agendas marcadas"
},
{
"name": "check-in",
"description": "Funções para realização do check-in do paciente"
},
{
"name": "webhook",
"description": "Documentação do webhook de retorno dos status das marcações"
},
{
"name": "atendimentos",
"description": "Consulta dos Atendimentos de uma Data"
}
],
"schemes": ["https"],
"paths": {
"/live": {
"get": {
"tags": ["teste"],
"summary": "Verifica se a API está no ar.",
"description": "Verifica se a API está no ar e exibe a versão.",
"operationId": "versao",
"responses": {
"200": {
"description": "OK"
},
"405": {
"description": "Invalid input"
}
}
}
},
"/externo/register": {
"post": {
"tags": ["sessao"],
"summary": "Realiza o pré-cadastro do paciente.",
"security": [
{
"app_token": []
}
],
"description": "Pré-Cadastro do Paciente",
"operationId": "register",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados do Paciente.",
"required": true,
"schema": {
"type": "object",
"properties": {
"paciente": {
"$ref": "#/definitions/paciente"
}
}
}
}
],
"responses": {
"200": {
"description": "Id do paciente criado.",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": "123",
"description": "Id do novo paciente registrado."
}
}
}
},
"403": {
"description": "dados inválidos."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/externo/login": {
"post": {
"tags": ["sessao"],
"summary": "Realiza a autenticação da aplicação, identificando o paciente.",
"security": [
{
"app_token": []
}
],
"description": "Autenticação da Aplicação. Para logar com o id do paciente, deve-se preceder o id com a letra P (Ex.: P123)",
"operationId": "login",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados para Autenticação.",
"required": true,
"schema": {
"$ref": "#/definitions/credencialLogin"
}
}
],
"responses": {
"200": {
"description": "Token da autenticação que deve ser enviado no header dos demais endpoints.",
"schema": {
"$ref": "#/definitions/sessao"
}
},
"403": {
"description": "dados inválidos."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/externo/portal/register": {
"post": {
"tags": ["sessao"],
"summary": "Realiza o pré-cadastro do paciente, como um usuário do portal.",
"security": [
{
"app_token": []
}
],
"description": "Cadastro do Paciente",
"operationId": "registerPortal",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados do Paciente.",
"required": true,
"schema": {
"type": "object",
"properties": {
"senha": {
"type": "string",
"example": "1234",
"description": "Senha do usuário no portal."
},
"paciente": {
"$ref": "#/definitions/paciente"
}
}
}
}
],
"responses": {
"200": {
"description": "Id do paciente criado.",
"schema": {
"$ref": "#/definitions/sessao"
}
},
"403": {
"description": "dados inválidos."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/externo/portal/login": {
"post": {
"tags": ["sessao"],
"summary": "Realiza a autenticação da aplicação, identificando o paciente, baseado no login/senha do portal de agendamentos do klingo.",
"security": [
{
"app_token": []
}
],
"description": "Autenticação da Aplicação.",
"operationId": "loginPortal",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados para Autenticação.",
"required": true,
"schema": {
"$ref": "#/definitions/credencialLoginPortal"
}
}
],
"responses": {
"200": {
"description": "Token da autenticação que deve ser enviado no header dos demais endpoints.",
"schema": {
"$ref": "#/definitions/sessao"
}
},
"403": {
"description": "dados inválidos."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/externo/portal/recuperar": {
"post": {
"tags": ["sessao"],
"summary": "Envio de e-mail para o usuário para recuperação de senha.",
"security": [
{
"app_token": []
}
],
"description": "Autenticação da Aplicação.",
"operationId": "recuperarPortal",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados para Autenticação.",
"required": true,
"schema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "teste@teste.com.br",
"description": "email do usuário para recuperação de senha."
}
}
}
}
],
"responses": {
"200": {
"description": "Token da autenticação que deve ser enviado no header dos demais endpoints.",
"schema": {
"type": "object",
"properties": {
"level": {
"type": "string",
"example": "success",
"description": "status de sucesso: success ou error."
},
"msg": {
"type": "string",
"example": "texto da mensagem",
"description": "mensagem de retorno."
}
}
}
},
"403": {
"description": "dados inválidos."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/paciente": {
"put": {
"tags": ["paciente"],
"summary": "Atualização dos dados do paciente",
"security": [
{
"bearer": []
}
],
"description": "Realiza a atualização dos dados do paciente",
"operationId": "updatePac",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados do paciente.",
"required": true,
"schema": {
"$ref": "#/definitions/paciente"
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/paciente"
}
},
"403": {
"description": "credenciais inválidas."
},
"405": {
"description": "Invalid input"
}
}
},
"get": {
"tags": ["paciente"],
"summary": "Obter dados do paciente",
"security": [
{
"bearer": []
}
],
"description": "Realiza a consulta do paciente",
"operationId": "getPac",
"produces": ["application/json"],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/paciente"
}
},
"403": {
"description": "credenciais inválidas."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/paciente/identificar": {
"post": {
"tags": ["paciente"],
"summary": "Realiza a identificação do do paciente pelo telefone, para integração via Whatsapp.",
"security": [
{
"app_token": []
}
],
"description": "Realiza a identificação do do paciente pelo telefone. Deve ser enviado adicional ao telefone, o CPF ou a data de nascimento (ou passando o parâmetro apenas_telefone = true).",
"operationId": "identificar paciente por telefone",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados do paciente.",
"required": true,
"schema": {
"type": "object",
"properties": {
"telefone": {
"type": "string",
"example": "1199999999"
},
"dt_nascimento": {
"type": "string",
"example": "1980-01-01"
},
"cpf": {
"type": "string",
"example": "enviar alternativa a data de nascimento"
},
"apenas_telefone": {
"type": "boolean",
"example": false
}
}
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/sessao"
}
},
"403": {
"description": "credenciais inválidas."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/paciente/cpf": {
"get": {
"tags": ["paciente"],
"summary": "Realiza a identificação do do paciente pelo CPF",
"security": [
{
"app_token": []
}
],
"description": "Realiza a identificação do do paciente pelo CPF.",
"operationId": "identificar paciente por CPF",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "cpf",
"description": "CPF do paciente (apenas números com 11 dígitos).",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/paciente"
}
},
"403": {
"description": "credenciais inválidas."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/atendimentos": {
"get": {
"tags": ["atendimentos"],
"summary": "Obter a lista de atendimentos de uma determinada data",
"security": [
{
"app_token": []
}
],
"description": "Realiza a consulta dos atendimentos de uma determinada data.",
"operationId": "getAtendimentos",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "data",
"description": "Data desejada no formato YYYY-MM-DD. Se não informada, busca-se os atendimentos do dia.",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/atendimento"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/resultado/{id_marcacao}": {
"get": {
"tags": ["resultados"],
"summary": "Obter resultados de um determinado voucher (marcação)",
"security": [
{
"app_token": []
}
],
"description": "Realiza a consulta dos resultados de um determinado voucher.",
"operationId": "getResultado",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "path",
"name": "id_marcacao",
"required": true,
"type": "number",
"description": "Número da Marcação"
}
],
"responses": {
"200": {
"description": "Lista de resultados enviada com sucesso.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/resultado"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/resultado/pdf/{id_marcacao}": {
"get": {
"tags": ["resultados"],
"summary": "Obter resultado laboratorial (PDF) de um determinado voucher (marcação)",
"security": [
{
"app_token": []
}
],
"description": "Realiza a consulta do resultado de um determinado voucher.",
"operationId": "getResultadoPdf",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "path",
"name": "id_marcacao",
"required": true,
"type": "number",
"description": "Número da Marcação"
}
],
"responses": {
"200": {
"description": "Resultado enviada com sucesso.",
"schema": {
"type": "object",
"properties": {
"id_marcacao": {
"type": "string"
},
"id_atendimento": {
"type": "string"
},
"pdf_base64": {
"type": "string"
}
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/resultado/pdf/an/{accession_number}": {
"get": {
"tags": ["resultados"],
"summary": "Obter resultado de exame de imagem (PDF) de um determinado accession number",
"security": [
{
"app_token": []
}
],
"description": "Realiza a consulta do resultado de um determinado accession number.",
"operationId": "getResultadoPdfAn",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "path",
"name": "accession_number",
"required": true,
"type": "string",
"description": "Accession Number"
},
{
"in": "body",
"name": "body",
"description": "Data de Nascimento (Opcional) ou Id do Paciente pra validar a consulta.",
"required": true,
"schema": {
"type": "object",
"properties": {
"dtnasc": {
"type": "string",
"example": "2000-01-01"
},
"patientid": {
"type": "string",
"example": "1234"
}
}
}
}
],
"responses": {
"200": {
"description": "Resultado enviada com sucesso.",
"schema": {
"type": "object",
"properties": {
"id_marcacao": {
"type": "string"
},
"id_atendimento": {
"type": "string"
},
"pdf_base64": {
"type": "string"
}
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/vouchers": {
"get": {
"tags": ["voucher"],
"summary": "Obter os vouchers do paciente (agendamentos)",
"security": [
{
"bearer": []
}
],
"description": "Realiza a consulta de agendamentos.",
"operationId": "getVouchers",
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/voucher"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/voucher": {
"delete": {
"tags": ["voucher"],
"summary": "Exclusão do voucher (agendamento)",
"security": [
{
"bearer": []
}
],
"description": "Realiza a exclusão do voucher.",
"operationId": "delVoucher",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Id do voucher a ser cancelado.",
"required": true,
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"type": "string",
"example": "Voucher cancelado"
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/requisicao": {
"get": {
"tags": ["voucher"],
"summary": "Obter os dados da requisição de exames do paciente",
"security": [
{
"bearer": []
}
],
"description": "Obter dados da requisição de exames do paciente.",
"operationId": "getRequisicao",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "id",
"description": "Id da requisição lida no QRCode da requisicão. RQ-ORIGEM-ID-TOKEN",
"required": true,
"type": "number"
},
{
"in": "query",
"name": "origem",
"description": "Origem da requisição lida no QRCode da requisicão. RQ-ORIGEM-ID-TOKEN",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "token",
"description": "Token da requisição lida no QRCode da requisicão. RQ-ORIGEM-ID-TOKEN",
"required": true,
"type": "string"
},
{
"in": "query",
"name": "pdf",
"description": "Se esse parâmetro for passado igual a 1, é retornado um PDF no lugar do json",
"required": false,
"type": "number"
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/requisicao"
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/agenda/horarios": {
"get": {
"tags": ["agenda"],
"summary": "Consultar horários disponíveis para marcação.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Consulta dos horários disponíveis para marcação.",
"operationId": "getTimes",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "especialidade",
"description": "CBOS da especialidade. Obrigatório somente se marcação de consulta.",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "exame",
"description": "Código do exame. Obrigatório somente se marcação de exame.",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "inicio",
"description": "Data inicial da busca. Se não informado, busca-se a partir da data atual.",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "fim",
"description": "Data final da busca. Se não informado, busca-se até 10 dias em relação a data inicial.",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "crm",
"description": "Filtra o médico pelo CRM informado. (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "cnes",
"description": "Filtra a unidade pelo CNES informado. (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "classe_unidade",
"description": "Filtra a unidade pela classificação da unidade. (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "plano",
"description": "Filtra operadora/plano. (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "revisao",
"description": "Indica se a consulta é de revisão. (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "adicao",
"description": "Indica se é uma busca adicional, na qual as reservas do paciente não devem ser liberadas. (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "remarcacao",
"description": "Indica se é uma busca para remarcação do procedimento. (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "subespecialidade",
"description": "Indica a subespecialidade do profissional. (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "sexo",
"description": "Sexo do Paciente, quando buscado sem o bearer token do paciente (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "nascimento",
"description": "Data de nascimento do paciente (YYYY-MM-DD), quando buscado sem o bearer token do paciente (opcional)",
"required": false,
"type": "string"
},
{
"in": "query",
"name": "id_regiao_cd",
"description": "Id da Região de Coleta Domiciliar (Necessário apenas para agendamentos de coleta domiciliar)",
"required": false,
"type": "number"
},
{
"in": "query",
"name": "telemed",
"description": "Indica se a consulta é apenas de agendas de telemedicina. (preencher com 1 ou 0) - (opcional)",
"required": false,
"type": "string"
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/horariosAgenda"
}
},
"403": {
"description": "procedimento não identificado. Vai ocorrer se o procedimento de consulta não for identificado."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/agenda/horario": {
"post": {
"tags": ["agenda"],
"summary": "Confirmar a marcação do horário..",
"security": [
{
"bearer": []
}
],
"description": "Realiza a marcação do horário na agenda do médico. O solicitante pode ser informado opcionalmente para marcações de exames.",
"operationId": "schedule",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados da marcação.",
"required": true,
"schema": {
"$ref": "#/definitions/horarioMarcar"
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/voucher"
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/agenda/horario_procedimentos": {
"get": {
"tags": ["agenda"],
"summary": "Consultar os procedimentos disponíveis para um determinado horário.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Consultar os procedimentos disponíveis para um determinado horário.",
"operationId": "getHorarioProcs",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "horario",
"description": "Chave do horário obtido na lista de horários. (Ex.: 2023-08-28|3|2|1|08:00)",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "Lista de Procedimentos.",
"schema": {
"$ref": "#/definitions/horarioProcedimentos"
}
},
"403": {
"description": "horário não identificado."
},
"405": {
"description": "Invalid input"
}
}
}
},
"/agenda/reservar": {
"post": {
"tags": ["agenda"],
"summary": "Realizar a reserva do horário.",
"security": [
{
"bearer": []
}
],
"description": "Realiza a reserva do horário para posterior confirmação da marcação. Essa ação não REALIZA a marcação, mas apenas segura o horário durante 10 minutos, caso ainda tenha alguma etapa para realizar a confirmação final.",
"operationId": "reserve",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados da marcação.",
"required": true,
"schema": {
"$ref": "#/definitions/horarioMarcar"
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/reserva"
}
},
"403": {
"description": "Invalid input"
}
}
},
"delete": {
"tags": ["agenda"],
"summary": "Cancelar a reserva de horário.",
"security": [
{
"bearer": []
}
],
"description": "Realiza o cancelamento da reserva do horário, passando o id da reserva realizada.",
"operationId": "reserveDelete",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados da marcação.",
"required": true,
"schema": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": 123
}
}
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"example": "ok"
}
}
}
},
"403": {
"description": "Invalid input"
}
}
}
},
"/agenda/procedimento": {
"put": {
"tags": ["agenda"],
"summary": "Alterar procedimento de uma marcação.",
"security": [
{
"bearer": []
}
],
"description": "Alterar procedimento de uma marcação.",
"operationId": "alterProc",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados da marcação.",
"required": true,
"schema": {
"type": "object",
"properties": {
"id_marcacao": {
"type": "number",
"example": 1234,
"description": "Id da marcação."
},
"id_procedimento": {
"type": "number",
"example": 1000,
"description": "Id do novo procedimento."
}
}
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/voucher"
}
},
"403": {
"description": "Invalid input"
}
}
}
},
"/agenda/verificar_horario": {
"get": {
"tags": ["agenda"],
"summary": "Verificar operadoras e procedimentos específicos para um horário.",
"security": [
{
"app_token": []
}
],
"description": "Verificar operadoras e procedimentos específicos para um horário.",
"operationId": "verificarHorario",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados da marcação.",
"required": true,
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "2021-07-19|71|2|1|18:30",
"description": "Id da horário selecionado."
}
}
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/regraHorario"
}
},
"403": {
"description": "Invalid input"
}
}
}
},
"/agenda/consultas": {
"get": {
"tags": ["cadastros"],
"summary": "lista os procedimentos de consulta disponíveis na base. Pode ser enviado o CBOS ou o id da especialidade para filtrar as consultas.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista os procedimentos de consulta.",
"operationId": "getConsultas",
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "cbos",
"type": "number",
"required": false
},
{
"in": "query",
"name": "id_especialidade",
"type": "number",
"required": false
},
{
"in": "query",
"name": "cnes",
"type": "string",
"required": false
}
],
"responses": {
"200": {
"description": "lista de consultas.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/procedimento"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/agenda/especialidades": {
"get": {
"tags": ["cadastros"],
"summary": "lista as especialidades disponíveis na base.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista as especialidades.",
"operationId": "getEspecialidades",
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "cbos",
"type": "number",
"required": false
},
{
"in": "query",
"name": "cnes",
"type": "string",
"required": false
},
{
"in": "query",
"name": "id_plano",
"type": "number",
"required": false
},
{
"in": "query",
"name": "consultas",
"type": "boolean",
"required": false
}
],
"responses": {
"200": {
"description": "lista de especialidades.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/especialidade"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/agenda/exames": {
"get": {
"tags": ["cadastros"],
"summary": "lista os exames disponíveis na base.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista os exames.",
"operationId": "getExames",
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "id",
"type": "number",
"required": false
},
{
"in": "query",
"name": "busca",
"type": "string",
"required": false
}
],
"responses": {
"200": {
"description": "lista de exames.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/procedimento"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/agenda/profissionais": {
"get": {
"tags": ["cadastros"],
"summary": "lista os profissionais disponíveis para um determinado procedimento.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista os profissionais.",
"operationId": "getProfissionais",
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "id_procedimento",
"type": "number",
"required": true
},
{
"in": "query",
"name": "id_plano",
"type": "number",
"required": true
},
{
"in": "query",
"name": "cnes",
"type": "number",
"required": false
}
],
"responses": {
"200": {
"description": "lista de profissionais.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/profissional"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/checkin": {
"post": {
"tags": ["check-in"],
"summary": "realiza o check-in de atendimento do paciente.",
"security": [
{
"bearer": []
}
],
"description": "Realiza o check-in de atendimento do paciente.",
"operationId": "checkIn",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Parâmetros para o checkin.",
"required": true,
"schema": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": 123,
"description": "Id do voucher"
},
"expresso": {
"type": "boolean",
"example": false,
"description": "Indica se deve ser realizado check-in expresso para o atendimento."
},
"preferencial": {
"type": "boolean",
"example": false,
"description": "Indica se é atendimento preferencial. Parâmetro opcional."
}
}
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"$ref": "#/definitions/checkinrealizado"
}
},
"405": {
"description": "Dados inválidos"
}
}
},
"delete": {
"tags": ["check-in"],
"summary": "realiza o cancelamento do check-in de atendimento do paciente.",
"security": [
{
"bearer": []
}
],
"description": "Realiza o cancelamento do check-in de atendimento do paciente. Somente se o atendimento não tiver sido iniciado.",
"operationId": "checkInCancel",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Parâmetros para o cancelamento do checkin.",
"required": true,
"schema": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": 123,
"description": "Id do voucher"
}
}
}
}
],
"responses": {
"200": {
"description": "requisição executada com sucesso.",
"schema": {
"type": "string",
"example": "Checkin cancelado"
}
},
"403": {
"description": "Dados inválidos"
}
}
}
},
"/webhook-configurado": {
"post": {
"tags": ["webhook"],
"summary": "Webhook disparado quando ocorre uma atualização no status da marcação.",
"description": "Essa não é uma rota da API, mas a descrição da requisição enviada quando uma atualização de status da agenda ocorre.",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "header",
"name": "X-APP-TOKEN",
"type": "string",
"required": true
},
{
"in": "header",
"name": "X-DOMAIN",
"type": "string",
"required": true
},
{
"in": "header",
"name": "X-EVENT",
"type": "string",
"required": true,
"description": "Possíveis Eventos: STATUS-MARCACAO, REMARCACAO, CHAMADA ou FIM-ATENDIMENTO"
},
{
"in": "body",
"name": "body",
"description": "Informações da Atualização de Status. A informação {nova} é enviada quando o evento é de REMARCACAO.",
"required": true,
"schema": {
"type": "object",
"properties": {
"id_marcacao": {
"type": "number",
"example": 123,
"description": "Id do marcação atualizada."
},
"status": {
"type": "string",
"example": "C",
"description": "Status atualizado: A - Aberto, B - Bloqueado ou C - Cancelado."
},
"motivo": {
"type": "string",
"example": "Motivo do cancelamento."
},
"checkin": {
"type": "string",
"example": "2020-01-01 10:00",
"description": "Quando o paciente realiza o check-in na clínica, é enviado o status A, com a data/hora do check-in."
},
"evento": {
"type": "object",
"description": "Evento de Chamada e Fim de Atendimento",
"properties": {
"nome": {
"type": "string",
"example": "chamada",
"description": "Evento Especial: chamada e fim-atendimento"
},
"local": {
"type": "string",
"example": "Consultório 10",
"description": "Local da chamada. Específico para o evento chamada"
}
}
},
"nova": {
"$ref": "#/definitions/voucher"
}
}
}
}
],
"responses": {
"200": {
"description": "Chamada com sucesso."
}
}
}
},
"/convenios": {
"get": {
"tags": ["cadastros"],
"summary": "lista de convênios.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista de convênios.",
"operationId": "getConvenios",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "cnes",
"type": "string",
"required": false
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"$ref": "#/definitions/convenios"
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/convenio/{cnpj}": {
"get": {
"tags": ["cadastros"],
"summary": "lista de convênios por CNPJ.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista de convênios por CNPJ.",
"operationId": "getConvenioCnpj",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "path",
"name": "cnpj",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"$ref": "#/definitions/convenios"
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/unidades": {
"get": {
"tags": ["cadastros"],
"summary": "lista de unidades.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista de unidades.",
"operationId": "getUnidades",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "classe_unidade",
"type": "string",
"description": "Filtra pela classificação da unidade. (opcional)",
"required": false
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/unidade"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/recepcoes": {
"get": {
"tags": ["cadastros"],
"summary": "lista de recepções.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista de recepções.",
"operationId": "getRecepcoes",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "cnes",
"type": "string",
"description": "Identificação da unidade.",
"required": true
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/recepcao"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/profissionais": {
"get": {
"tags": ["cadastros"],
"summary": "lista de profissionais.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista de profissionais. agenda_compartilhada=1, trás além dos profissionais, as agendas compartilhadas. Pode ser enviado o CBOS no parâmetro especialidade ou o id, no parâmetro id_especialidade.",
"operationId": "getMedicos",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "especialidade",
"type": "string",
"required": false
},
{
"in": "query",
"name": "id_especialidade",
"type": "string",
"required": false
},
{
"in": "query",
"name": "agenda_compartilhada",
"type": "number",
"required": false
},
{
"in": "query",
"name": "vinculos",
"type": "number",
"required": false
},
{
"in": "query",
"name": "cnes",
"type": "string",
"required": false
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/profissional"
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/profissional": {
"get": {
"tags": ["cadastros"],
"summary": "informação do profissional.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Informações do Profissional.",
"operationId": "getMedico",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "id_medico",
"type": "number",
"required": false
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"$ref": "#/definitions/profissional"
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/preco": {
"get": {
"tags": ["cadastros"],
"summary": "preço de procedimento.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Preço de Procedimento.",
"operationId": "getPreco",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "id_procedimento",
"type": "string",
"required": true
},
{
"in": "query",
"name": "id_plano",
"type": "number",
"required": true
},
{
"in": "query",
"name": "id_medico",
"type": "number",
"required": false
},
{
"in": "query",
"name": "id_unidade",
"type": "number",
"required": false
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "object",
"properties": {
"id_item_tabela": {
"type": "number",
"description": "Id",
"example": 123
},
"valor": {
"type": "number",
"description": "Valor",
"example": 100
}
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/precos": {
"get": {
"tags": ["cadastros"],
"summary": "preços de procedimento.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Preços de Procedimento. Resultado Paginado.",
"operationId": "getPrecos",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "id_plano",
"type": "number",
"required": true
},
{
"in": "query",
"name": "id_medico",
"type": "number",
"required": false
},
{
"in": "query",
"name": "id_unidade",
"type": "number",
"required": false
},
{
"in": "query",
"name": "page",
"type": "number",
"required": false
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id_item_tabela": {
"type": "number",
"description": "Id",
"example": 123
},
"valor": {
"type": "number",
"description": "Valor",
"example": 100
}
}
}
}
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/regiao_cd": {
"get": {
"tags": ["cadastros"],
"summary": "Regiões de Coleta Domiciliar.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Lista as regiões de coleta domiciliar de uma unidade de coleta domiciliar.",
"operationId": "getRegioes",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "query",
"name": "cnes",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "object",
"properties": {
"lista": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "Id",
"example": 123
},
"nome": {
"type": "string",
"description": "Nome",
"example": "Pituba"
}
}
}
}
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/formas_de_pagamento": {
"get": {
"tags": ["adiantamentos"],
"summary": "Lista de formas de pagamento para o registro do adiantamento.",
"security": [
{
"app_token": []
},
{
"bearer": []
}
],
"description": "Formas de Pagamento.",
"operationId": "getFormas",
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "object",
"properties": {
"lista": {
"type": "array",
"items": {
"$ref": "#/definitions/formaPag"
}
}
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/adiantamentos": {
"get": {
"tags": ["adiantamentos"],
"summary": "Lista de os adiantamentos registrados do paciente.",
"security": [
{
"bearer": []
}
],
"description": "Lista os Adiantamentos Registros do Paciente.",
"operationId": "getAdiantamentos",
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "object",
"properties": {
"lista": {
"type": "array",
"items": {
"$ref": "#/definitions/adiantamento"
}
}
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/adiantamento": {
"post": {
"tags": ["adiantamentos"],
"summary": "Registrar adiantamento do paciente.",
"security": [
{
"bearer": []
}
],
"description": "Registrar Adiantamento do Paciente.",
"operationId": "saveAdiantamento",
"consumes": ["application/json"],
"produces": ["application/json"],
"parameters": [
{
"in": "body",
"name": "body",
"description": "Dados do Adiantamento.",
"required": true,
"schema": {
"type": "object",
"properties": {
"id_externo": {
"type": "string",
"example": "Id no sistema de origem"
},
"data": {
"type": "string",
"example": "2025-01-01"
},
"cnes": {
"type": "string",
"example": "123456"
},
"valor_total": {
"type": "number",
"example": 50
},
"obs": {
"type": "string",
"example": "Lorem Ipsum"
},
"responsavel_financeiro": {
"type": "string",
"example": "Nome, somente quando for outro responável financeiro"
},
"responsavel_cpf_cnpj": {
"type": "string",
"example": "12345678901 - CPF/CNPJ somente números"
},
"responsavel_endereco": {
"type": "string",
"example": "Endereço"
},
"responsavel_email": {
"type": "string",
"example": "teste@teste.com"
},
"formas_de_pagamento": {
"type": "array",
"items": {
"properties": {
"id_forma_pagamento": {
"type": "number",
"example": 1
},
"id_bandeira_cartao": {
"type": "number",
"example": 1
},
"valor": {
"type": "number",
"example": 50
},
"parcelas": {
"type": "number",
"example": 2
},
"num_autorizacao": {
"type": "string",
"example": "1234"
}
}
}
}
}
}
}
],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "object",
"properties": {
"lista": {
"type": "array",
"items": {
"$ref": "#/definitions/adiantamento"
}
}
}
}
},
"405": {
"description": "Invalid input"
}
}
}
},
"/autorizacoes": {
"get": {
"tags": ["autorizacoes"],
"summary": "Lista as autorizações registradas do paciente.",
"security": [
{
"bearer": []
}
],
"description": "Lista as Autorizações Registradas do Paciente.",
"operationId": "getAutorizacoes",
"consumes": ["application/json"],
"produces": ["application/json"],
"responses": {
"200": {
"description": "lista com sucesso.",
"schema": {
"type": "object",
"properties": {
"lista": {
"type": "array",
"items": {
"$ref": "#/definitions/autorizacao"
}
}
}
}
},
"405": {
"description": "Invalid input"
}
}
}
}
},
"securityDefinitions": {
"bearer": {
"type": "apiKey",
"name": "Authorization",
"in": "header"
},
"app_token": {
"type": "apiKey",
"name": "X-APP-TOKEN",
"in": "header"
}
},
"definitions": {
"plano": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "id do plano",
"example": "01"
},
"nome": {
"type": "string",
"description": "nome do plano",
"example": "Básico"
},
"codigo": {
"type": "string",
"description": "código do plano",
"example": "123"
}
}
},
"addconvenio": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "id do convenio",
"example": "01"
},
"reg_ans": {
"type": "string",
"description": "registro na ANS",
"example": "12345"
},
"matricula": {
"type": "string",
"description": "matrícula no convênio",
"example": "12345"
},
"validade": {
"type": "string",
"description": "validade da matrícula no formato yyyy-mm-dd",
"example": "1980-06-01"
},
"id_plano": {
"type": "string",
"description": "Id do Plano",
"example": "01"
}
}
},
"convenio": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "id do convenio",
"example": "01"
},
"nome": {
"type": "string",
"description": "nome do convenio",
"example": "UNIMED"
},
"reg_ans": {
"type": "string",
"description": "registro na ANS",
"example": "12345"
},
"planos": {
"type": "array",
"items": {
"$ref": "#/definitions/plano"
}
}
}
},
"convenios": {
"type": "array",
"items": {
"$ref": "#/definitions/convenio"
}
},
"sessao": {
"type": "object",
"properties": {
"access_token": {
"type": "string",
"description": "Token de autenticação. Deve enviado nas demais requisições como Bearer Token",
"example": "ABCDE12345"
},
"token_type": {
"type": "string",
"description": "bearer",
"example": "bearer"
},
"expires_in": {
"type": "number",
"description": "Tempo para expiração do token.",
"example": 360000
},
"user": {
"type": "object",
"description": "Dados do Paciente",
"properties": {
"id": {
"type": "number",
"example": 1,
"description": "Id do Paciente"
},
"nome": {
"type": "string",
"example": "FULANO DA SILVA",
"description": "Nome do Paciente"
},
"id_paciente": {
"type": "number",
"example": 1,
"description": "ID do cadastro definitivo do paciente."
}
}
},
"unidade": {
"type": "object",
"description": "Dados da Unidade",
"properties": {
"nome": {
"type": "string",
"example": "Clinica Modelo",
"description": "Nome da Unidade Acessada"
}
}
}
}
},
"credencialLogin": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id do paciente que será tratado na sessão.",
"example": "123"
}
}
},
"credencialLoginPortal": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "e-mail da conta de acesso ao portal de agendamento.",
"example": "teste@teste.com.br"
},
"senha": {
"type": "string",
"description": "senha da conta de acesso ao portal de agendamento.",
"example": "1234"
}
}
},
"docs": {
"type": "object",
"properties": {
"cpf": {
"type": "string",
"example": "11111111111",
"description": "CPF do paciente."
},
"rg": {
"type": "string",
"example": "2222222222",
"description": "RG do paciente."
}
}
},
"contatos": {
"type": "object",
"properties": {
"celular": {
"type": "string",
"example": "11988884444"
},
"telefone": {
"type": "string",
"example": "112345678"
},
"email": {
"type": "string",
"example": "a@a.com.br"
}
}
},
"endereco": {
"type": "object",
"properties": {
"cep": {
"type": "string"
},
"endereco": {
"type": "string"
},
"numero": {
"type": "string"
},
"complemento": {
"type": "string"
},
"bairro": {
"type": "string"
},
"cidade": {
"type": "string",
"example": "São Paulo"
},
"uf": {
"type": "string",
"example": "SP"
}
}
},
"paciente": {
"type": "object",
"properties": {
"id_origem": {
"type": "integer",
"description": "Id do paciente no sistema de origem.",
"example": "1234"
},
"nome": {
"type": "string",
"description": "Nome do Paciente",
"example": "João da Silva"
},
"sexo": {
"type": "string",
"enum": ["M", "F"]
},
"dt_nasc": {
"type": "string",
"description": "yyyy-mm-dd",
"example": "1980-06-01"
},
"mae": {
"type": "string",
"description": "Nome da Mãe",
"example": "Maria das Graças"
},
"docs": {
"$ref": "#/definitions/docs"
},
"contatos": {
"$ref": "#/definitions/contatos"
},
"endereco": {
"$ref": "#/definitions/endereco"
},
"convenio": {
"$ref": "#/definitions/addconvenio"
}
}
},
"profissional": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id do Profissional"
},
"tratamento": {
"type": "string",
"description": "Tratamento",
"example": "Dr(a)."
},
"numero": {
"type": "string",
"description": "Número no Conselho",
"example": "1234"
},
"uf": {
"type": "string",
"description": "UF do Conselho do Médico",
"example": "SP"
},
"conselho": {
"type": "string",
"description": "Conselho do Médico",
"example": "CRM"
},
"nome": {
"type": "string",
"description": "Nome do Profissional",
"example": "Fulano da Silva"
},
"subespecialidade": {
"type": "string",
"description": "Subespecialidade do profissional.",
"example": "Catarata"
},
"foto": {
"type": "string",
"description": "URL da Foto do Profissional",
"example": "https://endereco-da-foto/"
},
"selecionado": {
"type": "boolean",
"example": false
}
}
},
"unidade": {
"type": "object",
"properties": {
"nome": {
"type": "string"
},
"cep": {
"type": "string"
},
"cnes": {
"type": "string"
},
"local": {
"type": "string"
}
}
},
"recepcao": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": 12
},
"nome": {
"type": "string",
"example": "Principal"
},
"sigla": {
"type": "string",
"example": "PC"
},
"id_externo": {
"type": "string",
"example": "123"
},
"senhas": {
"type": "array",
"description": "Senhas que podem ser retiradas nessa recepção",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": 123
},
"nome": {
"type": "string",
"example": "Atendimento"
},
"preferencial": {
"type": "boolean",
"example": false
},
"link": {
"type": "string",
"example": "Link para Geração da Senha (POST)"
}
}
}
}
}
},
"horarioMarcar": {
"type": "object",
"properties": {
"procedimento": {
"type": "string",
"description": "Código do Procedimento",
"example": "1000"
},
"id": {
"type": "string",
"description": "Id do horário a ser marcado"
},
"plano": {
"type": "number",
"description": "Id do plano sendo marcado.",
"example": 1
},
"email": {
"type": "boolean",
"description": "Indica se o e-mail será enviado ao paciente ao realizar a marcação.",
"example": true
},
"teleatendimento": {
"type": "boolean",
"description": "Indica se o atendimento será no formato de teleatendimento.",
"example": false
},
"revisao": {
"type": "boolean",
"description": "Para para indicar se a consulta deve ser marcada como revisão. Se não for passado o parâmetro como true, será marcado de acordo com o cálculo do sistema.",
"example": false
},
"remarcacao": {
"type": "number",
"description": "Id da marcação de origem, quando é um processo de remarcação.",
"example": 3333
},
"ordem_chegada": {
"type": "boolean",
"description": "Quando o horário consultado for de ordem de chegada, deve-se enviar esse parâmetro como true, para realizar a marcação",
"example": false
},
"lista": {
"type": "array",
"description": "Id dos procedimentos associados, para realização no mesmo horário (ex.: Procedimentos laboratoriais).",
"items": {
"type": "number",
"example": 123,
"description": "Id do procedimento associado."
}
},
"solicitante": {
"$ref": "#/definitions/solicitante"
},
"confirmado": {
"type": "string",
"description": "Se for passado um texto, a marcação já irá ser feita como confirmada."
},
"id_externo": {
"type": "string",
"description": "Id do sistema de origem."
},
"obs": {
"type": "string",
"description": "Observação da Marcação."
},
"duracao": {
"type": "number",
"example": 10,
"description": "Apenas para reserva de horário. Duração em minutos da expiração da reserva."
},
"id_ampliar": {
"type": "number",
"description": "Apenas para reserva de horário. Id da reserva anterior, a qual se deseja ampliar a expiração."
},
"anexos": {
"type": "array",
"items": {
"type": "string",
"example": "URL do anexo"
}
}
}
},
"procedimento": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"descr": {
"type": "string"
},
"abrev": {
"type": "string"
},
"tuss": {
"type": "string"
},
"sus": {
"type": "string"
},
"especialidade": {
"$ref": "#/definitions/especialidade"
}
}
},
"voucher": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id do Voucher",
"example": 123
},
"status": {
"type": "string",
"description": "Status do Voucher.",
"enum": ["agendado", "atendido", "checkin"]
},
"tipo": {
"type": "string",
"description": "Tipo de Voucher.",
"enum": ["A"]
},
"data": {
"type": "string",
"example": "2019-01-01"
},
"hora": {
"type": "string",
"example": "09:00"
},
"solicitante": {
"$ref": "#/definitions/profissional"
},
"realizador": {
"$ref": "#/definitions/profissional"
},
"unidade": {
"$ref": "#/definitions/unidade"
},
"procedimento": {
"$ref": "#/definitions/procedimento"
},
"especialidade": {
"$ref": "#/definitions/especialidade"
},
"id_externo": {
"type": "string",
"example": "1234"
}
}
},
"atendimento": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id do Atendimento",
"example": 123
},
"paciente": {
"$ref": "#/definitions/paciente"
},
"medico": {
"$ref": "#/definitions/profissional"
},
"plano": {
"$ref": "#/definitions/plano"
},
"procedimento": {
"type": "array",
"items": {
"$ref": "#/definitions/procedimento"
}
}
}
},
"horariosAgenda": {
"type": "object",
"properties": {
"procedimento": {
"type": "string",
"example": "CONS"
},
"horarios": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id da Data."
},
"data": {
"type": "string",
"description": "data do horário disponível.",
"example": "2019-01-01"
},
"procedimento": {
"type": "string",
"description": "procedimento para o qual o horário está disponível",
"example": "CONS"
},
"ordem_chegada": {
"type": "boolean",
"example": false,
"description": "Indica se a agenda é por ordem de chegada."
},
"faixa_ordem_chegada": {
"type": "string",
"description": "Preenchido quando é agenda por ordem de chegada."
},
"horarios": {
"type": "object",
"description": "Lista de Horários com ID e horário."
},
"profissional": {
"$ref": "#/definitions/profissional"
},
"unidade": {
"$ref": "#/definitions/unidade"
}
}
}
}
}
},
"horarioProcedimentos": {
"type": "object",
"properties": {
"chave": {
"type": "string",
"example": "2023-08-28|3|2|1|08:00"
},
"data": {
"type": "string",
"example": "2023-08-28"
},
"hora": {
"type": "string",
"example": "08:00"
},
"medico": {
"$ref": "#/definitions/profissional"
},
"unidade": {
"$ref": "#/definitions/unidade"
},
"procedimentos": {
"type": "array",
"items": {
"$ref": "#/definitions/procedimento"
}
}
}
},
"especialidade": {
"type": "object",
"properties": {
"codigo": {
"type": "string",
"example": "OFT"
},
"nome": {
"type": "string",
"example": "OFTALMOLOGIA"
},
"cbos": {
"type": "string",
"example": "225265"
},
"subespecialidade": {
"type": "array",
"items": {
"type": "string",
"example": "Especial"
}
}
}
},
"requisicao": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": 123
},
"origem": {
"type": "string",
"example": "origem"
},
"tipo": {
"type": "string",
"example": "requisicao"
},
"paciente": {
"type": "string",
"example": "FULANO DA SILVA"
},
"data": {
"type": "string",
"example": "01/01/2000"
},
"medico": {
"$ref": "#/definitions/solicitante"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/procedimento"
}
}
}
},
"solicitante": {
"type": "object",
"properties": {
"conselho": {
"type": "string",
"example": "CRM"
},
"uf": {
"type": "string",
"example": "BA"
},
"numero": {
"type": "number",
"example": 1234
},
"nome": {
"type": "string",
"example": "João da Silva"
},
"cbos": {
"type": "string",
"example": "225265"
}
}
},
"reserva": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": "123"
},
"expira": {
"type": "string",
"example": "2020-01-01 14:10",
"description": "Data/Hora da expiração da reserva."
},
"data": {
"type": "string",
"example": "2020-01-01"
},
"hora": {
"type": "string",
"example": "10:00"
},
"profissional": {
"$ref": "#/definitions/profissional"
},
"instrucao": {
"type": "object",
"properties": {
"procedimento": {
"type": "string",
"example": "instrução do procedimento"
},
"profissional": {
"type": "string",
"example": "instrução do profissional"
}
}
},
"validacao": {
"type": "array",
"items": {
"type": "object",
"properties": {
"procedimento": {
"type": "number",
"example": 123
},
"validado": {
"type": "boolean"
},
"id_requisicao": {
"type": "number",
"example": 456
},
"solicitante": {
"$ref": "#/definitions/profissional"
}
}
}
}
}
},
"laudo": {
"type": "object",
"properties": {
"id_laudo": {
"type": "number",
"example": 123
},
"id_marcacao": {
"type": "number",
"example": 123
},
"id_atendimento": {
"type": "number",
"example": 123
},
"id_atendimento_procedimento": {
"type": "number",
"example": 123
},
"dt_atendimento": {
"type": "string",
"example": "1900-01-01 00:00"
},
"procedimento": {
"$ref": "#/definitions/procedimento"
},
"status": {
"type": "string",
"example": "Status do Laudo"
},
"pronto": {
"type": "boolean",
"example": true
},
"medico": {
"$ref": "#/definitions/profissional"
},
"unidade": {
"$ref": "#/definitions/unidade"
},
"resultado_html": {
"type": "string",
"example": "Resultado em HTML"
},
"resultado_pdf": {
"type": "string",
"example": "Base 64 do PDF"
},
"anexos": {
"type": "array",
"items": {
"type": "string",
"example": "URL do anexo"
}
}
}
},
"resultado": {
"type": "object",
"properties": {
"lista": {
"type": "array",
"items": {
"$ref": "#/definitions/laudo"
}
}
}
},
"regraHorario": {
"type": "object",
"properties": {
"id_agenda": {
"type": "number",
"example": 123
},
"filtro_operadora": {
"type": "string",
"example": "T",
"description": "T - Todas, A - Apenas ou E - Exceto"
},
"operadoras": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"nome": {
"type": "string"
}
}
}
},
"procedimentos": {
"type": "array",
"items": {
"$ref": "#/definitions/procedimento"
}
}
}
},
"checkinrealizado": {
"type": "object",
"properties": {
"id": {
"type": "array",
"items": {
"type": "string",
"example": "Check-in Realizado",
"description": "Mensagem de Retorno"
}
},
"id_marcacao": {
"type": "number",
"example": 1234,
"description": "Id da marcação"
},
"preferencial": {
"type": "boolean",
"example": false
},
"expresso": {
"type": "string",
"example": "Check-in Expresso. Dirija-se ao consultório X.",
"description": "Mensagem para o paciente, no caso de check-in expresso."
},
"local": {
"type": "string",
"example": "consultório X",
"description": "Local de encaminhamento em caso de check-in expresso."
},
"recepcao": {
"type": "string",
"example": "Recepção Principal",
"description": "Recepção na qual o paciente fez o check-in. Exibir para o paciente, no caso de check-in não expresso."
}
}
},
"formaPag": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": "2",
"description": "Id da Forma de Pagamento"
},
"nome": {
"type": "string",
"example": "Cartão de Crédito",
"description": "Descrição da Forma de Pagamento"
},
"tipo_cartao": {
"type": "string",
"example": "C",
"description": "Quando cartão, tipo do cartão (C - Crédito ou D - Débito)"
},
"bandeiras": {
"type": "array",
"items": {
"properties": {
"id": {
"type": "number",
"example": 1,
"description": "Id da Bandeira do Cartão"
},
"nome": {
"type": "string",
"example": "AMEX",
"description": "Nome da Bandeira do Cartão"
}
}
}
}
}
},
"adiantamento": {
"type": "object",
"properties": {
"id_pagamento_atendimento": {
"type": "number",
"example": "1",
"description": "Id do Adiantamento"
},
"dt_data": {
"type": "string",
"example": "2025-01-01",
"description": "Data do Adiantamento"
},
"dc_valor_adiantado": {
"type": "number",
"example": 50,
"description": "Valor do Adiantamento"
},
"st_observacoes": {
"type": "string",
"example": "Lorem Ipsum",
"description": "Observação do Adiantamento"
},
"id_unidade_operacao": {
"type": "number",
"example": 1,
"description": "Id da Unidade do Adiantamento"
},
"item_pagamento_atendimentos": {
"type": "array",
"description": "Formas de Pagamento",
"items": {
"properties": {
"id_item_pagamento_atendimento": {
"type": "number",
"example": 1,
"description": "Id do Item da Forma de Pagamento"
},
"id_forma_pagamento": {
"type": "number",
"example": 1,
"description": "Id da Forma de Pagamento"
},
"id_bandeira_cartao": {
"type": "number",
"example": 1,
"description": "Id da Bandeira do Cartão"
},
"dc_valor": {
"type": "number",
"example": 50,
"description": "Valor da Forma de Pagamento"
}
}
}
}
}
},
"autorizacao": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": "1",
"description": "Id da Autorização"
},
"data": {
"type": "string",
"example": "2025-01-01",
"description": "Data da Autorização"
},
"procedimento": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": 123,
"description": "Id do Procedimento"
},
"nome": {
"type": "string",
"example": "EXAME ABC",
"description": "Nome do Procedimento"
},
"sigla": {
"type": "string",
"example": "ABC",
"description": "Sigla do Procedimento"
}
}
},
"quantidade": {
"type": "number",
"example": 1,
"description": "Quantidade"
},
"status_id": {
"type": "number",
"example": 0,
"description": "Status do Procedimento"
},
"status_nome": {
"type": "number",
"example": "Aberto",
"description": "Status do Procedimento"
},
"observacoes": {
"type": "string",
"example": "Lorem Ipsum",
"description": "Observação do Adiantamento"
},
"unidade": {
"type": "object",
"properties": {
"id": {
"type": "number",
"example": 1,
"description": "Id da Unidade"
},
"nome": {
"type": "string",
"example": "Central",
"description": "Nome da Unidade"
},
"sigla": {
"type": "string",
"example": "CEN",
"description": "Sigla da Unidade"
}
}
},
"autorizacao": {
"type": "object",
"properties": {
"codigo": {
"type": "string",
"example": "1234",
"description": "Código da Autorização (Senha)"
},
"data": {
"type": "string",
"example": "2000-01-01",
"description": "Data da Autorização"
},
"validade_inicio": {
"type": "string",
"example": "2000-01-01",
"description": "Validade Início"
},
"validade_termino": {
"type": "string",
"example": "2000-01-01",
"description": "Validade Término"
}
}
}
}
}
},
"externalDocs": {
"description": "klingo",
"url": "https://www.klingo.com.br/"
},
"host": "api-externa.klingo.app",
"basePath": "/api"
}