API RaciMED
Endpoints para agenda, pacientes, convênios, planos, confirmações, comparecimento, elegibilidade e agendamentos — uso exclusivo de clientes autorizados.
Introdução
A API RaciMED permite integrar a base clínica (agenda, profissionais, convênios, planos e pacientes) com plataformas externas, como sistemas de confirmação de consulta, ferramentas de marketing (WhatsApp / e-mail) e outras soluções de automação.
Observação: esta não é uma API pública. Cada cliente possui URL própria e só tem acesso após liberação (cliente autoriza).
Endereços de acesso
Endereços exemplo:
https://racimed.api:90001/(endpoints) http://racimed.api:90001/(endpoints)
Lembrando: para cada cliente existe um endereço fixo de acesso. Os endereços serão habilitados após o cliente autorizar (não é API aberta).
Recomendação: utilizar sempre HTTPS.
Base URL (para copiar)
GET /medicos
Retorna lista de profissionais cadastrados e ativos no RaciMED.
Campos retornados
id— IDnome— nome do profissionalcrm(oucm) — CRM/nº do conselhoespecialidade
Exemplo de resposta
[
{
"id": 1,
"nome": "Dr. Carlos Alberto da Silva",
"crm": "99999",
"especialidade": "OTORRINO"
},
{
"id": 2,
"nome": "Dr. João Ricardo",
"crm": "99991",
"especialidade": "PEDIATRA"
},
{
"id": 3,
"nome": "Maria da Silva",
"crm": "444444",
"especialidade": "Fisioterapeuta"
}
]
Obs.: somente os médicos/profissionais ativos.
GET /medicoshorarios
Função: mostra os dias da semana e horários de atendimento (quadro de horários) dos profissionais ativos.
GET /medicoshorarios/:idprof
Função: a mesma informação do endpoint /medicoshorarios, mas filtrada por ID do profissional.
Exemplo: /medicoshorarios/2
Exemplo de resposta
[
{
"codmed": 2,
"profissional": "DR. JOÃO DA SILVA",
"codigo": 1,
"tipodeservico": "CONSULTA",
"segunda": 1,
"segHiniam": 9,
"segHfimam": 11.4,
"segHinipm": 13.3,
"segHfimpm": 17.3,
"segDuracao": 0.2,
"segDuracaopm": 0.2,
"terca": null,
"quarta": 1,
"quinta": 1,
"sexta": null,
"sabado": null
}
]
Obs.: somente médicos/profissionais ativos.
GET /convenios
Campos retornados
iddescricao
Exemplo de resposta
[
{ "id": 1, "descricao": "Convênio A" },
{ "id": 2, "descricao": "Convênio B" },
{ "id": 3, "descricao": "Convênio C" },
{ "id": 4, "descricao": "Convênio D" }
]
Obs.: somente os registros ativos.
GET /planos
Retorna planos vinculados aos convênios (quando houver).
Campos retornados
convenio(ID)descricaocodplano(ID)plano
Obs.: Nem todo convênio obrigatoriamente possui planos; mas todo plano tem um convênio.
Exemplo de resposta
[
{ "convenio": 25, "descricao": "INTERMEDICA", "codplano": 7, "plano": "CARE PLUS LASA" },
{ "convenio": 25, "descricao": "INTERMEDICA", "codplano": 8, "plano": "CARE PLUS LASA INFANTIL" },
{ "convenio": 31, "descricao": "AMIL ASSIST MED", "codplano": 1, "plano": "AMIL" }
]
GET /planos/:id
A mesma informação do endpoint /planos, mas filtrada pelo número do convênio.
Exemplo: /planos/25
GET /agendas
Função: listar marcações feitas no dia (geralmente para envio de mensagens).
Parâmetros (conforme documento)
- Por data:
/agendas/data=2021-10-30 - Por profissional:
/agendas/profissional=123 - Por profissional e data:
/agendas/data=2021-10-30/idprof=123
Exemplo de resposta
[
{
"id": 1112545,
"data": "15/07/2022",
"hora": "10:50",
"tipodeatendimento": "Consulta",
"paciente": "João Cleber Machado",
"profissional": "Dr. Joao"
}
]
Obs.: pode existir várias marcações com horários distintos para vários profissionais.
GET /agendas/:id
Função: traz as agendas por ID de profissional do dia em vigor.
Exemplo: /agendas/31
GET /agendasid/:id_agenda
Função: traz a marcação do paciente por seu ID (ID da agenda).
Exemplo: /agendasid/1112545
GET /agendas/:data/:idprof
Função: traz as agendas do dia em vigor por dia e ID de profissional.
Exemplo: /agendas/2025-07-15/31
GET /agendas/livres/:data/:idprof
Função: traz os horários livres das agendas, por data e profissional.
Exemplo de resposta
[
{ "hora": "13:00:00.000", "idAgenda": null, "codmed": null, "status": "LIVRE" },
{ "hora": "13:15:00.000", "idAgenda": null, "codmed": null, "status": "OCUPADO" },
{ "hora": "13:30:00.000", "idAgenda": null, "codmed": null, "status": "LIVRE" }
]
Obs.: o ID da agenda só é preenchido após a marcação existir.
GET /pacientes/:cpf
Função: traz informações do paciente por CPF somente números (sem pontos/traços/espaços).
Exemplo: /pacientes/09999999999
Exemplo de resposta
[
{
"codigo": 9999,
"nome": "PACIENTE TESTE API RACIMED",
"cgccpf": "999.999.999-99",
"idconv": 25,
"descricao": "DESCRIÇÃO CONVÊNIO",
"plano": 5,
"plano1": "DESCRIÇÃO PLANO PACIENTE",
"carteira": "123456789012345678901234567890"
}
]
GET /pacientesID/:id
Função: traz informações do paciente por CODIGO.
Exemplo: /pacientesID/9999
GET /pacientesCEL/:cel
Função: traz informações do paciente por celular (sem espaços/traços/parênteses).
Exemplo: /pacientesCEL/11999998888
GET /pacientesaniversariantes/:data
Parâmetro: :data no formato AAAA-MM-DD (ex.: 2025-07-10).
Função: busca todos os pacientes que fazem aniversário no dia do parâmetro.
Campos retornados
codigo(ID)nomeemailfone1idade
Exemplo de resposta
[
{ "codigo": 9999, "nome": "PACIENTE TESTE API RACIMED", "email": "info@racimed.com.br", "fone1": "9999-9999", "idade": 54 },
{ "codigo": 99100, "nome": "PACIENTE TESTE API RACIMED 2", "email": "suporte@racimed.com.br", "fone1": "11 9888-8888", "idade": 28 }
]
Obs.: registro único por consumo.
GET /tiposdeatendimentos
Função: lista tipos de agendamento usados pela clínica.
Exemplo de resposta
[
{ "codigo": 4, "descricao": "Exame de endoscopia" },
{ "codigo": 5, "descricao": "Exame X" },
{ "codigo": 6, "descricao": "Holter" },
{ "codigo": 7, "descricao": "Cirurgia em hospital" }
]
Obs.: os IDs 1, 2 e 3 são reservados internamente e representam: 1="1º Vez", 2="Consulta", 3="Retorno".
GET /agendaconfirmacao/:id
Função: confirma presença do paciente antecipadamente (por ID da agenda).
Exemplo: /agendaconfirmacao/10020
GET /agendadesconfirmacao/:id
Função: desconfirma presença do paciente antecipadamente (por ID da agenda).
Exemplo: /agendadesconfirmacao/10020
GET /desmarcarhorario/:id
Função: desmarcar a presença de uma agenda (por ID).
Exemplo citado no documento: /desmarcaragenda/10020 (confira no seu servidor se o endpoint é /desmarcarhorario ou /desmarcaragenda).
Obs.: encaminhar uma única vez. Essas marcações aparecem no módulo de Agenda através de um ícone.
GET /elegibilidaderetorno
Função: faz a elegibilidade da data de consulta e retorna a melhor data para a próxima consulta com base na última visita do paciente.
Parâmetros
data— data que o paciente quer marcar (AAAA-MM-DD)codmed— profissional/médicocodpac— paciente (código do cadastro)idcon— convênio (código do convênio)
Exemplo
/elegibilidaderetorno/2026-03-18/8/9999/41
Retorno
[] // vazio: pode agendar na data escolhida ["05/04/2026"] // melhor data para a consulta
GET /agendascomparecimento
Função: mostra as marcações que houveram comparecimento.
Exemplos
/agendascomparecimento/2025-07-15 /agendascomparecimento/2025-07-15/31
Obs.: o parâmetro data precisa ser uma data anterior, para mostrar as marcações que foram efetivamente comparecidas.
Ideal para envio de lembretes de agradecimento pelo comparecimento.
POST /agendarhorario
Função: marca um horário na agenda do cliente (agendar), ocupando um horário.
Exemplo de payload
{
"codpac": 0,
"paciente": "NOME DO PACIENTE COMPLETO",
"data": "2025-10-15",
"hora": "14:40",
"codmed": 1,
"codexame": 1,
"fone1": "(11) 98184-8560",
"codtipo": 1,
"tipo": "1º vez",
"codconv": 1,
"codplano": 1
}
Regras / observações
- Todos os campos são obrigatórios.
codpacpode ser preenchido usando/pacientes/:cpf(CPF) ou/pacientesID/:id(Código) ou/pacientesCEL/:cel(celular) — para obter o código do paciente.- Paciente novo: preencher
codpaccom0. - Tipos de atendimento com numeração maior que 3 seguem o endpoint
/tiposdeatendimentos. - Para consulta (1/2/3 internos): 1="Primeira vez", 2="Consulta", 3="Retorno".
Possíveis mensagens de retorno (exemplos)
Erro: Informe o nome do paciente Erro: Data inválida, precisa ser AAA-MM-DD Erro: Hora inválida, precisa ser HH:MM Erro: falta o número do profissional Erro: falta o número do convênio Paciente se encontra em período de RETORNO, melhor data: 26/04/2026
Obs.: Se o paciente já existir (via codpac) e estiver dentro do prazo de retorno, a API poderá sugerir a melhor data fora do período de retorno.
Códigos de erro & respostas HTTP
A API utiliza códigos HTTP padrão para indicar o resultado das operações.
| Código | Descrição | Quando pode ocorrer |
|---|---|---|
200 OK |
Requisição processada com sucesso. | GET bem-sucedido ou operação concluída. |
400 Bad Request |
Parâmetros inválidos ou payload em formato incorreto. | Data fora do padrão, JSON malformado etc. |
401 Unauthorized |
Credenciais ausentes ou inválidas. | Token expirado, usuário/senha incorretos. |
404 Not Found |
Recurso não encontrado. | ID inexistente ou endpoint incorreto. |
409 Conflict |
Conflito de negócio. | Ex.: horário já ocupado, validações etc. |
500 Internal Server Error |
Erro interno inesperado. | Falha de banco ou exceção não tratada. |
Mensagens de erro comuns (exemplos)
Erro: Informe o nome do paciente Erro: Data inválida, precisa ser AAA-MM-DD Erro: Hora inválida, precisa ser HH:MM Erro: falta o número do profissional Erro: falta o número do convênio Paciente se encontra em período de RETORNO, melhor data: 26/04/2026
Exemplos em cURL
Listar médicos
curl -X GET "https://racimed.api:90001/medicos" \ -H "Accept: application/json"
Buscar aniversariantes do dia
curl -X GET "https://racimed.api:90001/pacientesaniversariantes/2025-07-10" \ -H "Accept: application/json"
Elegibilidade de retorno
curl -X GET "https://racimed.api:90001/elegibilidaderetorno/2026-03-18/8/9999/41" \ -H "Accept: application/json"
Marcar horário (POST)
curl -X POST "https://racimed.api:90001/agendarhorario" \
-H "Content-Type: application/json" \
-d '{
"codpac": 0,
"paciente": "NOME DO PACIENTE COMPLETO",
"data": "2025-10-15",
"hora": "14:40",
"codmed": 1,
"codexame": 1,
"fone1": "(11) 98184-8560",
"codtipo": 1,
"tipo": "1º vez",
"codconv": 1,
"codplano": 1
}'
Exemplos em Delphi (Chilkat)
Exemplo simples usando Chilkat REST para consumir a API.
GET /medicos
var
rest: HCkRest;
success: Boolean;
json: PWideChar;
begin
rest := CkRest_Create;
try
success := CkRest_Connect(rest,'racimed.api',90001,True,True);
if not success then Exit;
CkRest_AddHeader(rest,'Accept','application/json');
// Ex.: autenticação básica
CkRest_SetAuthBasic(rest,'usuario','senha');
json := CkRest__fullRequestNoBody(rest,'GET','/medicos');
Memo1.Lines.Text := json;
finally
CkRest_Dispose(rest);
end;
end;
POST /agendarhorario
var
rest: HCkRest;
sbReq: HCkStringBuilder;
jsonResp: PWideChar;
begin
rest := CkRest_Create;
sbReq := CkStringBuilder_Create;
try
CkRest_Connect(rest,'racimed.api',90001,True,True);
CkRest_SetAuthBasic(rest,'usuario','senha');
CkRest_AddHeader(rest,'Content-Type','application/json');
CkStringBuilder_Append(sbReq,
'{"codpac":0,"paciente":"NOME DO PACIENTE COMPLETO","data":"2025-10-15","hora":"14:40",' +
'"codmed":1,"codexame":1,"fone1":"(11) 98184-8560","codtipo":1,"tipo":"1º vez","codconv":1,"codplano":1}');
jsonResp := CkRest__fullRequestSb(rest,'POST','/agendarhorario',sbReq);
Memo1.Lines.Text := jsonResp;
finally
CkStringBuilder_Dispose(sbReq);
CkRest_Dispose(rest);
end;
end;
Exemplo em JavaScript (fetch)
fetch('https://racimed.api:90001/pacientesaniversariantes/2025-07-10', {
method: 'GET',
headers: {
'Accept': 'application/json',
// 'Authorization': 'Basic ...' ou 'Bearer ...'
}
})
.then(r => r.json())
.then(data => console.log(data))
.catch(err => console.error(err));
Exemplo em Python (requests)
import requests
url = 'https://racimed.api:90001/medicos'
resp = requests.get(url, auth=('usuario', 'senha'))
if resp.status_code == 200:
print(resp.json())
else:
print('Erro:', resp.status_code, resp.text)