https://sua-clinica.zelosaude.com.br/api/clinic/
Você poderá gerar um Token de API no painel administrativo.
Atenção: Ao gerar um novo token, o anterior irá parar de funcionar imediatamente.POST
Criar Paciente
https://sua-clinica.zelosaude.com.br/api/clinic/create-patient/
Authorization: Bearer SEU_TOKEN_AQUI
Content-Type: application/json
Body (JSON):
{
/* Campos Obrigatórios */
"name": "João da Silva", /* OBRIGATÓRIO */
"cpf": "123.456.789-00", /* OBRIGATÓRIO */
/* Campos Opcionais */
"email": "joao@email.com", /* opcional */
"birth_date": "1990-01-01", /* opcional */
"phone": "11999999999", /* opcional */
"insurance_card_number": "123456789", /* opcional */
"insurance_plan_code": "PLANO001", /* opcional */
"plan_adherence_date": "2023-01-01", /* opcional - Data de adesão do plano */
"plan_expiry_date": "2024-12-31", /* opcional - Data de expiração do plano */
"extra_fields": { /* opcional - Campos customizados */
"custom_field_1": "valor1",
"custom_field_2": "valor2",
"any_field": "any_value"
},
"address": { /* opcional */
"street": "Rua Exemplo",
"number": "123",
"neighborhood": "Centro",
"city": "São Paulo",
"state": "SP",
"zip_code": "01234-567"
}
}
POST
Login de Paciente (Magic Link)
https://sua-clinica.zelosaude.com.br/api/clinic/login-patient/
Authorization: Bearer SEU_TOKEN_AQUI
Content-Type: application/json
Descrição:
Este endpoint permite gerar um link para o paciente acessar o painel diretamente sem autenticar.
A URL gerada poderá ser embedada em um iframe, exibindo o painel completo do paciente.
Caso deseje exibir somente o botão de Pronto Atendimento escondendo todo o restante do painel,
será necessário passar a flag "?mode=attendance_only" apos a última / da url gerada no src do
iframe.
Exemplo:
https://sua-clinica.zelosaude.com.br/paciente/patient-login/3945.1766785341.3896a0ac0946d2821cf3c88d2087a90b/?mode=attendance_only
Por questões de segurança os browsers modernos não permitem coockies third-party dentro de
iframes em janelas anônimas. Portanto, os testes deverão ser efetuados no browser aberto
normalmente.
{
"cpf": "123.456.789-00" /* OBRIGATÓRIO */
}
Resposta:
{
"magic_link": "https://sua-clinica.exemplo.com/patient-login/token_gerado/",
"expires_at": "2025-08-29T12:00:00Z",
"message": "Magic link gerado com sucesso"
}
POST
Ativar Paciente
https://sua-clinica.zelosaude.com.br/api/clinic/activate-patient/
Authorization: Bearer SEU_TOKEN_AQUI
Content-Type: application/json
Descrição:
Este endpoint permite ativar um paciente que esteja com o status desativado na plataforma.
Body (JSON):{
"cpf": "123.456.789-00" /* OBRIGATÓRIO */
}
Resposta:
{
"success": true,
"message": "Paciente reativado com sucesso"
}
POST
Desativar Paciente
https://sua-clinica.zelosaude.com.br/api/clinic/deactivate-patient/
Authorization: Bearer SEU_TOKEN_AQUI
Content-Type: application/json
Descrição:
Este endpoint permite desativar um paciente que esteja com o status ativo na plataforma.
Body (JSON):{
"cpf": "123.456.789-00" /* OBRIGATÓRIO */
}
Resposta:
{
"success": true,
"message": "Paciente desativado com sucesso"
}
GET
Filtrar Pacientes
https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/
Authorization: Bearer SEU_TOKEN_AQUI
Descrição:
Este endpoint permite filtrar pacientes por diversos critérios, incluindo dados pessoais, status, datas, endereço e campos customizados. Você pode combinar múltiplos parâmetros para refinar a busca. As datas também podem ser filtradas por intervalos. Os campos customizados (extra_fields) permitem filtrar por qualquer campo JSON armazenado no paciente.
Parâmetros de Consulta:| Parâmetro | Descrição |
|---|---|
name |
Filtra pacientes pelo nome (busca parcial) |
email |
Filtra pacientes pelo email (busca parcial) |
cpf |
Filtra pacientes pelo CPF (aceita formatação com pontos e hífens) |
phone |
Filtra pacientes pelo telefone (busca parcial) |
status |
Filtra pacientes pelo status (ACTIVE/INACTIVE) |
is_online |
Filtra pacientes pelo status online (true/false) |
birth_date_min |
Filtra pacientes com data de nascimento >= valor (YYYY-MM-DD) |
birth_date_max |
Filtra pacientes com data de nascimento <= valor (YYYY-MM-DD) |
plan_adherence_date_min |
Filtra pacientes com data de adesão do plano >= valor (YYYY-MM-DD) |
plan_adherence_date_max |
Filtra pacientes com data de adesão do plano <= valor (YYYY-MM-DD) |
plan_expiry_date_min |
Filtra pacientes com data de expiração do plano >= valor (YYYY-MM-DD) |
plan_expiry_date_max |
Filtra pacientes com data de expiração do plano <= valor (YYYY-MM-DD) |
invited_at_min |
Filtra pacientes com data de convite >= valor (YYYY-MM-DD) |
invited_at_max |
Filtra pacientes com data de convite <= valor (YYYY-MM-DD) |
holder_id |
Filtra pacientes pelo ID do titular |
is_holder |
Filtra pacientes que são titulares (true) ou dependentes (false) |
address__street |
Filtra pacientes pela rua do endereço (busca parcial) |
address__city |
Filtra pacientes pela cidade do endereço |
address__state |
Filtra pacientes pelo estado do endereço |
address__zip_code |
Filtra pacientes pelo CEP do endereço |
insurance_card_number |
Filtra pacientes pelo número da carteirinha (busca parcial) |
insurance_plan_code |
Filtra pacientes pelo código do plano do beneficiário (busca parcial) |
extra_fields__field_name |
Filtra pacientes por campos customizados dentro de extra_fields (busca exata) |
Sintaxe:
extra_fields__nome_do_campo=valor
Exemplos práticos:
extra_fields__department=TI - Filtra pacientes do departamento TIextra_fields__employee_id=EMP001 - Filtra paciente com ID específicoextra_fields__status=ativo - Filtra pacientes com status "ativo"extra_fields__priority=alta - Filtra pacientes com prioridade altaextra_fields__company=EmpresaXYZ - Filtra pacientes de empresa específica
Combinando múltiplos filtros:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?extra_fields__department=TI&extra_fields__status=ativo&name=João
| Parâmetro | Descrição | Exemplo |
|---|---|---|
page |
Número da página a ser retornada | page=1, page=2 |
page_size |
Número de resultados por página (máximo 50) | page_size=10, page_size=50 |
Primeira página (até 50 pacientes):
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/
Segunda página:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?page=2
Limitar a 25 resultados por página:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?page_size=25
Filtrar pacientes pelo nome:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?name=João
Filtrar pacientes pelo CPF (aceita diferentes formatações):
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?cpf=123.456.789-00
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?cpf=12345678900
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?cpf=123456789
Filtrar pacientes por intervalo de data de nascimento:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?birth_date_min=1990-01-01&birth_date_max=2000-12-31
Filtrar pacientes titulares ativos:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?is_holder=true&status=ACTIVE
Filtrar pacientes por cidade e estado:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?address__city=São Paulo&address__state=SP
Filtrar pacientes por número da carteirinha:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?insurance_card_number=123456789
Filtrar pacientes por código do plano:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?insurance_plan_code=PLANO001
Filtrar pacientes por data de adesão do plano:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?plan_adherence_date_min=2023-01-01&plan_adherence_date_max=2023-12-31
Filtrar pacientes por data de expiração do plano:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?plan_expiry_date_min=2024-01-01&plan_expiry_date_max=2024-12-31
Filtrar pacientes por campos customizados:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?extra_fields__custom_field_1=valor1
Filtrar pacientes por departamento:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?extra_fields__department=TI
Filtrar pacientes por ID do funcionário:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?extra_fields__employee_id=EMP001
Filtrar pacientes por múltiplos campos customizados:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?extra_fields__department=TI&extra_fields__status=ativo
Combinar filtros com paginação:
GET https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?status=ACTIVE&page=2&page_size=10
{
"count": 150, // Total de pacientes encontrados
"next": "https://sua-clinica.zelosaude.com.br/api/clinic/filter-patients/?page=2", // URL da próxima página
"previous": null, // URL da página anterior (null na primeira página)
"results": [ // Pacientes da página atual (máximo 50)
{
"name": "João da Silva",
"email": "joao@email.com",
"cpf": "12345678900",
"birth_date": "1992-05-15",
"phone": "11999999999",
"status": "ACTIVE",
"is_online": false,
"plan_adherence_date": "2023-01-01",
"plan_expiry_date": "2024-01-01",
"is_holder": true,
"holder_cpf": null,
"invited_at": null,
"insurance_card_number": "123456789",
"insurance_plan_code": "PLANO001",
"extra_fields": {
"custom_field_1": "valor1",
"custom_field_2": "valor2"
},
"address": {
"street": "Rua Exemplo",
"number": "123",
"complement": "Apto 45",
"neighborhood": "Centro",
"city": "São Paulo",
"state": "SP",
"zip_code": "01234-567"
}
},
{
"name": "Maria Oliveira",
"email": "maria@email.com",
"cpf": "98765432100",
"birth_date": "1995-08-23",
"phone": "11988888888",
"status": "ACTIVE",
"is_online": true,
"plan_adherence_date": "2023-02-01",
"plan_expiry_date": "2024-02-01",
"is_holder": true,
"holder_cpf": null,
"invited_at": null,
"insurance_card_number": "987654321",
"insurance_plan_code": "PLANO002",
"extra_fields": {
"department": "TI",
"employee_id": "EMP001"
},
"address": {
"street": "Av. Principal",
"number": "1500",
"complement": null,
"neighborhood": "Jardins",
"city": "São Paulo",
"state": "SP",
"zip_code": "04532-000"
}
}
// ... até 48 pacientes mais (total máximo de 50 por página)
]
}
Navegando pelas Páginas:
next e previous da resposta
para navegar automaticamente entre as páginas.
Estrutura da resposta:
count: Número total de pacientes encontradosnext: URL da próxima página (null se esta for a última)previous: URL da página anterior (null se esta for a primeira)results: Array com os pacientes da página atual (máximo 50)GET
Histórico de Atendimentos
https://sua-clinica.zelosaude.com.br/api/clinic/consultation-history/
Authorization: Bearer SEU_TOKEN_AQUI
Descrição:
Este endpoint permite obter o histórico completo de atendimentos (consultas) de um paciente específico. Você pode filtrar por diversos critérios incluindo status, tipo, médico, especialidade, datas e pagamento.
Parâmetros de Consulta:| Parâmetro | Descrição |
|---|---|
cpf |
CPF do paciente (OBRIGATÓRIO) |
status |
Filtra consultas pelo status (SCHEDULED, PENDING, WAITING_HELPDESK, ONGOING_HELPDESK, WAITING_DOCTOR, ONGOING_DOCTOR, FINISHED, CANCELED) |
type |
Filtra consultas pelo tipo (POOL, SCHEDULED) |
doctor_cpf |
Filtra consultas por CPF do médico |
speciality_name |
Filtra consultas por nome da especialidade |
start_date_min |
Filtra consultas com data de início >= valor (YYYY-MM-DD) |
start_date_max |
Filtra consultas com data de início <= valor (YYYY-MM-DD) |
end_date_min |
Filtra consultas com data de fim >= valor (YYYY-MM-DD) |
end_date_max |
Filtra consultas com data de fim <= valor (YYYY-MM-DD) |
scheduled_for_min |
Filtra consultas agendadas para >= valor (YYYY-MM-DD) |
scheduled_for_max |
Filtra consultas agendadas para <= valor (YYYY-MM-DD) |
is_paid |
Filtra consultas pagas (true/false) |
| Parâmetro | Descrição | Exemplo |
|---|---|---|
page |
Número da página a ser retornada | page=1, page=2 |
page_size |
Número de resultados por página (máximo 50) | page_size=10, page_size=50 |
Histórico completo de um paciente:
GET https://sua-clinica.zelosaude.com.br/api/clinic/consultation-history/?cpf=12345678901
Consultas finalizadas de um paciente:
GET https://sua-clinica.zelosaude.com.br/api/clinic/consultation-history/?cpf=12345678901&status=FINISHED
Consultas de um médico específico:
GET https://sua-clinica.zelosaude.com.br/api/clinic/consultation-history/?cpf=12345678901&doctor_cpf=98765432100
Consultas em um período específico:
GET https://sua-clinica.zelosaude.com.br/api/clinic/consultation-history/?cpf=12345678901&start_date_min=2024-01-01&start_date_max=2024-12-31
Consultas pagas:
GET https://sua-clinica.zelosaude.com.br/api/clinic/consultation-history/?cpf=12345678901&is_paid=true
Com paginação:
GET https://sua-clinica.zelosaude.com.br/api/clinic/consultation-history/?cpf=12345678901&page=2&page_size=10
{
"count": 25, // Total de consultas encontradas
"next": "https://sua-clinica.zelosaude.com.br/api/clinic/consultation-history/?cpf=12345678901&page=2", // URL da próxima página
"previous": null, // URL da página anterior (null na primeira página)
"results": [ // Consultas da página atual (máximo 50)
{
"code": "ABC1234567",
"type": "SCHEDULED",
"meeting_status": "FINISHED",
"requested_at": "2024-01-15T10:30:00Z",
"scheduled_for": "2024-01-15T14:00:00Z",
"start_at": "2024-01-15T14:05:00Z",
"end_at": "2024-01-15T14:45:00Z",
"duration_total_seconds": 2400,
"duration_formatted": "00:40:00",
"price": 150.00,
"is_paid": true,
"paid_at": "2024-01-15T13:30:00Z",
"chief_complaint": "Dor de cabeça persistente",
"doctor_notes": "Paciente apresentou melhora após medicação",
"patient": {
"name": "João da Silva",
"cpf": "12345678900"
},
"doctor": {
"name": "Dr. Maria Santos",
"cpf": "98765432100",
"crm": "123456"
},
"speciality": {
"name": "Neurologia"
},
"helpdesk_agent": {
"name": "Ana Costa",
"cpf": "11122233344"
}
}
// ... outras consultas
]
}
GET
Histórico de Anexos
https://sua-clinica.zelosaude.com.br/api/clinic/attachment-history/
Authorization: Bearer SEU_TOKEN_AQUI
Descrição:
Este endpoint permite obter o histórico completo de anexos (receitas, atestados, exames, etc) de um paciente específico. Você pode filtrar por tipo de arquivo, origem, consulta específica e datas.
file_url são
URLs temporárias que expiram em 30 minutos e não requerem autenticação para download.
| Parâmetro | Descrição |
|---|---|
cpf |
CPF do paciente (OBRIGATÓRIO) |
consultation_code |
Filtra anexos por código da consulta |
file_type |
Filtra anexos por tipo (PATIENT_CERTIFICATE, COMPANION_CERTIFICATE, PRESCRIPTION, EXAM, FORWARDING, PATIENT_UPLOAD) |
origin |
Filtra anexos por origem (PATIENT, DOCTOR, HELPDESK) |
created_at_min |
Filtra anexos criados em >= valor (YYYY-MM-DD) |
created_at_max |
Filtra anexos criados em <= valor (YYYY-MM-DD) |
| Tipo | Descrição |
|---|---|
PATIENT_CERTIFICATE |
Atestado do paciente |
COMPANION_CERTIFICATE |
Atestado do acompanhante |
PRESCRIPTION |
Receita médica |
EXAM |
Exame médico |
FORWARDING |
Encaminhamento |
PATIENT_UPLOAD |
Upload do paciente |
Todos os anexos de um paciente:
GET https://sua-clinica.zelosaude.com.br/api/clinic/attachment-history/?cpf=12345678901
Apenas receitas médicas:
GET https://sua-clinica.zelosaude.com.br/api/clinic/attachment-history/?cpf=12345678901&file_type=PRESCRIPTION
Anexos de uma consulta específica:
GET https://sua-clinica.zelosaude.com.br/api/clinic/attachment-history/?cpf=12345678901&consultation_code=ABC1234567
Anexos criados pelo médico:
GET https://sua-clinica.zelosaude.com.br/api/clinic/attachment-history/?cpf=12345678901&origin=DOCTOR
Anexos de um período específico:
GET https://sua-clinica.zelosaude.com.br/api/clinic/attachment-history/?cpf=12345678901&created_at_min=2024-01-01&created_at_max=2024-12-31
Com paginação:
GET https://sua-clinica.zelosaude.com.br/api/clinic/attachment-history/?cpf=12345678901&page=2&page_size=10
{
"count": 15, // Total de anexos encontrados
"next": "https://sua-clinica.zelosaude.com.br/api/clinic/attachment-history/?cpf=12345678901&page=2", // URL da próxima página
"previous": null, // URL da página anterior (null na primeira página)
"results": [ // Anexos da página atual (máximo 50)
{
"file_type": "PRESCRIPTION",
"origin": "DOCTOR",
"file_name": "receita_medicamento_20240115.pdf",
"file_url": "https://sua-clinica.exemplo.com/consultations/attachments/temp/eyJhdHRhY2htZW50X2lkIjoxMDEsImV4cGlyZV90aW1lIjoxNzA0MDY0MDAwLCJzaWduYXR1cmUiOiJhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAifQ/download/",
"file_icon": "vaccine-bottle",
"created_at": "2024-01-15T14:30:00Z",
"consultation": {
"code": "ABC1234567",
"type": "SCHEDULED",
"meeting_status": "FINISHED",
"scheduled_for": "2024-01-15T14:00:00Z",
"start_at": "2024-01-15T14:05:00Z",
"end_at": "2024-01-15T14:45:00Z",
"patient": {
"name": "João da Silva",
"cpf": "12345678900"
},
"doctor": {
"name": "Dr. Maria Santos",
"cpf": "98765432100",
"crm": "123456"
},
"speciality": {
"name": "Neurologia"
}
}
}
// ... outros anexos
]
}