PUT/api/doctor-profiles/{user_id}

Editar perfil

Muda só os campos enviados de um perfil que já existe. Para criar, use o POST.

  • Exige o token de acesso — como obter
  • Permissão “Editar perfil do médico (CRM, especialidade)” (doctors.edit_profile)

Headers

NomeTipoObrig.Descrição
Authorization
stringSimBearer {access_token}, com o token que o login devolve.
Content-Type
stringSimapplication/json

Parâmetros do caminho

NomeTipoObrig.Descrição
user_id
uuidSimO médico (o id do usuário dele).

Corpo da requisição

NomeTipoObrig.Descrição
crm
stringNãoCRM. Texto vazio ou null apaga.
specialty
stringNãoEspecialidade. Texto livre; o catálogo do CFM está em /api/medical-specialties. Texto vazio ou null apaga.

Campos da resposta

NomeTipoDescrição
id
uuidO médico: é o id do usuário dele.
name
stringNome.
email
stringE-mail de acesso.
role
stringSempre medico.
is_active
booleanfalse quando o usuário foi desativado.
created_at
stringQuando o usuário foi criado (ISO 8601).
crm
string | nullCRM, do perfil. null sem perfil.
specialty
string | nullEspecialidade, do perfil. null sem perfil.
signature_url
string | nullA imagem da assinatura que sai no laudo impresso. O endereço pode expirar.

Request URL

https://api-endosystem.imagemais.com.br/api/doctor-profiles/5f0c8a52-3b1e-4f7a-9c2d-1a6e7b8c9d01
curl -X PUT "https://api-endosystem.imagemais.com.br/api/doctor-profiles/5f0c8a52-3b1e-4f7a-9c2d-1a6e7b8c9d01" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"specialty":"Ginecologia e Obstetrícia"}'
{
  "specialty": "Ginecologia e Obstetrícia"
}
{
  "specialty": "Ginecologia e Obstetrícia"
}

Respostas

{
  "id": "5f0c8a52-3b1e-4f7a-9c2d-1a6e7b8c9d01",
  "name": "Dra. Ana Souza",
  ...
{
  "id": "5f0c8a52-3b1e-4f7a-9c2d-1a6e7b8c9d01",
  "name": "Dra. Ana Souza",
  "email": "ana.souza@clinica.com.br",
  "role": "medico",
  "is_active": true,
  "created_at": "2026-08-01T09:00:00-03:00",
  "crm": "12345-PE",
  "specialty": "Ginecologia e Obstetrícia",
  "signature_url": "https://storage.exemplo.com/doctors/signatures/9f2c41ab/4e8d0c7b1a2f4c6e8a0b2d4f6a8c0e1b.png"
}
{
  "error": "ID inválido"
}
{
  "error": "ID inválido"
}
{
  "error": "Médico não encontrado"
}
{
  "error": "Médico não encontrado"
}
{
  "error": "Perfil do médico não encontrado"
}
{
  "error": "Perfil do médico não encontrado"
}
{
  "error": "Você não tem a permissão \"Editar perfil do médico (CRM, especialidade)\".",
  "code": "sem_permissao"
  ...
{
  "error": "Você não tem a permissão \"Editar perfil do médico (CRM, especialidade)\".",
  "code": "sem_permissao"
}
{
  "error": "Funcionalidade não contratada",
  "message": "Esta funcionalidade não está habilitada para a sua clínica.",
  ...
{
  "error": "Funcionalidade não contratada",
  "message": "Esta funcionalidade não está habilitada para a sua clínica.",
  "code": "FEATURE_NOT_ENABLED"
}
{
  "error": "Token ausente",
  "message": "Token de autenticação necessário.",
  ...
{
  "error": "Token ausente",
  "message": "Token de autenticação necessário.",
  "code": "TOKEN_MISSING"
}
{
  "error": "Token expirado",
  "message": "Sua sessão expirou. Faça login novamente.",
  ...
{
  "error": "Token expirado",
  "message": "Sua sessão expirou. Faça login novamente.",
  "code": "TOKEN_EXPIRED"
}
{
  "error": "Token inválido",
  "message": "Token de autenticação inválido. Faça login novamente.",
  ...
{
  "error": "Token inválido",
  "message": "Token de autenticação inválido. Faça login novamente.",
  "code": "TOKEN_INVALID"
}
{
  "error": "Acesso revogado",
  "message": "Seu acesso foi desativado. Procure o administrador da clínica.",
  ...
{
  "error": "Acesso revogado",
  "message": "Seu acesso foi desativado. Procure o administrador da clínica.",
  "code": "ACCESS_REVOKED"
}
{
  "error": "Erro interno do servidor"
}
{
  "error": "Erro interno do servidor"
}