Skip to main content
O recurso de pacientes existe para uma tarefa: ter o id do paciente certo antes de criar um agendamento. Você procura o paciente pelo CPF ou pelo telefone e, se ele não existir, cria o cadastro. Nenhuma rota tem barra final. Não existem PUT nem DELETE: inativar um paciente é feito no aplicativo. O id do paciente é numérico. É o mesmo patient.id que aparece nos agendamentos, o valor do filtro patient_id e o campo patient_id de POST /appointments.

O objeto paciente

O que a API não devolve

CPF, e-mail, data de nascimento e sexo são aceitos na criação e na alteração, mas nunca voltam nas respostas. Isso é deliberado. O cadastro de um paciente em uma clínica é dado de saúde (LGPD, art. 5º, II), e a identificação do paciente faz parte do prontuário (Resolução CFM 1.638/2002). Pelo princípio da necessidade (LGPD, art. 6º, III), a API devolve apenas o necessário para agendar. Você não precisa desses dados de volta para integrar:
  • o seu sistema já tem o que enviou;
  • para achar um paciente pelo CPF ou pelo telefone, use os filtros cpf e phone, que comparam o valor enviado sem nunca devolvê-lo.

Encontrar ou criar um paciente

Esta é a receita recomendada para não duplicar cadastros:
1

Procure pelo CPF

Se results trouxer um paciente, use o id dele. Sem CPF, procure por phone.
2

Se não existir, crie

3

Agende com o id

Envie o id devolvido como patient_id em POST /appointments, junto com professional_id e appointment_type_id das listas de profissionais e tipos de atendimento.

Listar pacientes

A resposta tem o mesmo formato paginado dos agendamentos: next, previous e results. A ordem é crescente por updated_at, então a receita de sincronização com updated_since funciona igual para pacientes.

Filtros

cpf e phone só encontram correspondência exata, nunca parcial.

Buscar um paciente

Um id inexistente ou de outra clínica responde 404 Not Found.

Criar um paciente

Requer o escopo patients:write. Responde 201 Created com o objeto paciente. Se outro paciente da sua clínica já tem o mesmo CPF, a API responde 409 com code: "patient_cpf_exists" e não cria nada. Busque o cadastro existente com GET /patients?cpf=. Um CPF cadastrado em outra clínica não interfere e nunca é revelado. O cabeçalho Idempotency-Key funciona como na criação de agendamentos: repetir a mesma requisição com a mesma chave em até 24 horas devolve o paciente já criado, com Idempotent-Replayed: true.

Alterar um paciente

Requer o escopo patients:write. Envie apenas os campos que mudam. O corpo vazio responde 400.
Os campos são os mesmos da criação, todos opcionais. null apaga phone, email, cpf ou birth_date; name e gender não podem ser apagados. Trocar o CPF para um que já pertence a outro paciente da clínica responde 409 patient_cpf_exists. Responde 200 OK com o objeto atualizado.

Webhooks

Não há eventos de webhook de pacientes. Para acompanhar mudanças, use updated_since.

Erros

As mensagens exatas de cada validação estão em Erros.